# RS Comics Viewer

This project was developed in 2009, when I was 16 years old, since there was no comfortable way to go through comics, and so I found the opportunity to practice my screen-scraping skills. It is now deprecated, as the sites it interacts with have greatly changed since, and as a result none of the comics work. This page only exists for archival purposes.

## Project summary

Initial WinForms application

WPF rewrite of the application

RS Comics Viewer is a webcomic downloader. This is my first WPF application, which also means at least .Net Framework 3.5 is required to run this software.

It is based on my previous software by the same name, which used Windows Forms. In this version, the comics are displayed on an Aero glass window.

[Note from 2016 me: Since I didn't have a screenshot for the first version, I had to find the project and fire it up. Interestingly some sites, such as xkcd, still fully work.]

## List of webcomics

Currently 23 webcomics are supported:

Plus similar support for browsing submissions to /r/comics.

If you know regular expressions you can add more comics to the list. The comics’ regular expressions are stored in the comics.xml file.

To add a new comic to the list append the following lines to the <comics> tree:

<comic name="" url="" icon="">
<title date="">
<![CDATA[]]>
</title>
<image before="" after="">
<![CDATA[]]>
</image>
<previous before="">
<![CDATA[]]>
</previous>
<next before="">
<![CDATA[]]>
</next>
</comic>


Where:

<comic>
name — name of the comic
url — url of the page where the today’s comic image URL is located
icon — if host/favicon.ico is missing, you can provide an URL for the icon (optional)
<title> — regular expression to extract the title
date — if there’s no title, only date (like 20090103.png), then extract date and provide a format style; for example 20090103 is yyyyMMdd (optional)
<image> — regular expression to extract the comic image
before — if there’s no absolute path to image, then you can provide a string to complete the URL (optional)
after — if you couldn’t extract the full URL, you can append something to the URL, for example the extenstion (optional)
<previous> — regular expression to extract the previous page’s URL (previous -> older comics)
before — if there’s no absolute path to the prevous page, then you can provide a string to complete the URL (optional)
<next> — regular expression to extract the next page’s URL (next -> newer comics)
before — if there’s no absolute path to the next page, then you can provide a string to complete the URL (optional)

Example entry for xkcd:

<comic name="xkcd" url="http://xkcd.com/">
<title>
<![CDATA[<img src=".*?" title=".*?" alt="(.*?)" />]]>
</title>
<image>
<![CDATA[<img src="(.*?)" title=".*?" alt=".*?" />]]>
</image>
<previous before="http://xkcd.com">
<![CDATA[<a href="(.*?)".*?>&lt; Prev</a>]]>
</previous>
<next before="http://xkcd.com">
<![CDATA[<a href="(.*?)".*?>Next &gt;</a>]]>
</next>
<archive url="http://xkcd.com/archive/" before="http://xkcd.com" order="desc">
<![CDATA[<a href="(.*?)" title=".*?">(.*?)</a><br/>]]>
</archive>
</comic>


## FAQ

Is this legal?

Since most of the comics have a license that allows redistribution with attribution, yes, it is.

However there are comics where I didn’t found any licenses. If you’re a webcomic owner which is supported by this application, and you want to remove yourself, just contact me and I’ll remove your webcomic.

Is this stressing to servers of the webcomic owners?

This application downloads only 2 files (the HTML page to extract the image’s URL, and then the image), unlike browsers do.

Once an image has been downloaded, it is cached, so you won’t download the same image again. In case the server refuses the request or hangs, no other requests will be sent, unlike some browsers which are aggressively trying to reconnect.

So no, this application is not stressing the servers of the webcomic owners.

A site is broken, I found a bug in the application…

Contact me, I’ll fix it.

## Get the software

The software saw two separate releases, one developed for Windows Forms, and another in WPF, however they both used the same core and as a result, supported the same sites.

To run this software, .Net 3.5 is required, freely available from Microsoft’s Download Center.