Comic Collection

by Robert Synnott - Visit My Webpage!

Version 1.04

Version 1.04 is now released. It fixes the recent problem accessing Keenspace comics, and contains a few misc. fixes besides. You should upgrade if you view these comics.

Improvements as of 13/03/03

Onto version 1.03 now :). You can now use a double small y ("yy") to specify two digit years, allowing comics like Garfield to work in a proper, though non y2k.1 :) compliant way. You can now automatically get configurations for comics from the internet by clicking on "Get New Comics" in the program, and you should be able to make your own using those as examples. Integrated comic editor coming soon. Configuration is now red from a file ".comiccollection" in your home directory, set up as described below. You can continue using the old method if you want, though. If you have any trouble at all setting all this up, please email me and I'll try to help.


This is an application for keeping a local copy of web-comics and downloading them each day, written in Java (AWT, 1.1). It uses a MySQL backend and allows the addition of a title and description to each strip, and subsequent searching by these. Strips are categorised by comic. With correct configuration, it should be able to download strips from most sites; currently tested are Keenspace and Keenspot sites (eg., United Media sites (eg. Dilbert), and User Friendly.
Comic list and config rows
Screenshot, not showing a comic as I don't want to violate anyone's copyright

Getting It

The software can be downloaded here as a JAR, and you can get it by CVS by doing:
cvs login

cvs -z3 co comiccollection
. The SourceForge Project Page is at

Software Needed

If you don't have them already, you need:


Put the JAR where-ever, and create a configuration file called '.comiccollection' in your home directory in the format:
driverName=<Your MySQL driver> or <sun.jdbc.odbc.JdbcOdbcDriver&rt;
url=jdbc:mysql://<server>/<db> or <ODBC URL to DB>
imagePath=<Path to directory to contain images>
prefix=<A short prefix for the table names (I use "cc_")>
proxyHost=<proxy host name, if a proxy is used>
proxyPort=<proxy port, if one is used>
As an example, here's mine.
Create the database with this SQL dump: comiccollection.sql (This one uses "cc_" as a prefix, for your configuration file. Populate the cc_comiclist table as follows; leave id blank (auto-allocating), put the name you want to give the comic in name, put the URL of the image with the year, month and day components as "YYYY", "MM" and "DD", without extension, in access_string, for comics with a single image per day, else leave blank. multi_access_string is the same, but for comics with more than one strip per day, with "AA" representing a single letter; leave blank for those that are always one per day. For ext_list, put a comma-seperated list of file types that could be used; if a comic is sometimes whatever.gif and others whatever.GIF, both must be specified seperately. Ignore auto_get and system_type. For order, "s" means to only try single images, "m" means to try multi only, "sm" means to try single, then multi, and "ms" means to try multi, then single. inc is how much to increment the letter that specifies position in a multi-image comic; for instance, Ubersoft comics go "a", "c", "e"... as prefixes, therefore inc is 2. For the moment, field names must be back-quoted because order is a MySQL reserved word; I'll try to fix this soon.
INSERT INTO `cc_comiclist` (`name`, `access_string`, `multi_access_string`, `ext_list`, `auto_get`, `system_type`, `order`, `inc`) VALUES ('Ubersoft', '', '', 'png', 'no', 'unix', 'm', 2);
INSERT INTO `cc_comiclist` (`name`, `access_string`, `multi_access_string`, `ext_list`, `auto_get`, `system_type`, `order`, `inc`) VALUES ('General Protection Fault', '', NULL, 'gif', 'yes', 'unix', 's', NULL);
Once all that's done the program can be started by doing:
java -jar <path to JAR file>
To use a proxy, do:
java -jar <path to JAR file>
filling in appropriate host and port values.

Help & Support

If you have a problem, you can email me at There is a user's mailing list; you can subscribe at You're welcome to help with development; just grab the source from the CVS and make what improvements you want.


This software is under the GNU Public License. Logo