dosage/doc/web/content/index.md
2014-01-05 17:26:03 +01:00

141 lines
4.1 KiB
Markdown

title: a comic strip downloader and archiver
description: a comic strip downloader and archiver
---
Introduction
-------------
Dosage is designed to keep a local copy of specific webcomics
and other picture-based content such as Picture of the Day sites.
With the dosage commandline script you can get the latest strip of
a webcomic, or catch-up to the last strip downloaded, or download a
strip for a particular date/index (if the webcomic's site layout
allows this).
Notice
-------
This software is in no way intended to publically "broadcast" comic strips,
it is purely for personal use. Please be aware that by making downloaded
strips publically available (without the explicit permission of the author)
you may be infringing upon various copyrights.
Additionally, Dosage respects the robots.txt exclusion protocol.
This makes sure no content is accessed in an automatic way without consent
by the publishers.
If you are a publisher of comics and want Dosage to access your files,
add the following entry to your robotst.txt file:
```
User-agent: Dosage
Allow: *
```
Adult content
--------------
Some comics contain adult content and require age confirmation.
These comics can only be downloaded by using the --adult option,
which confirms that you are old enough to view them.
Usage
------
List [available comics](comic-index.html) (ca. 3000 at the moment):
```bash
$ dosage --list
```
Get the latest comic of for example CalvinAndHobbes and save it in the "Comics"
directory:
```bash
$ dosage CalvinAndHobbes
```
If you already have downloaded several comics and want to get the latest
strip of all of them:
```bash
$ dosage @
```
To help others find good [comics](comic-index.html), you can vote for your
favourite ones:
```bash
$ dosage --vote @
```
For advanced options and features execute `dosage --help` or look at the
[dosage(1) manual page](dosage.1.html).
Note that the old commandline program `maintool` has been renamed to
`dosage`.
Dependencies
-------------
[Python](http://www.python.org/): for Python 2.x at least 2.7.0, for Python 3.x at least Python 3.3.
Also the [python-requests module](http://docs.python-requests.org/en/latest/) must be installed
Installation
-------------
The easy way with pip:
```shell
pip install dosage
```
You can invoke Dosage directly from the source code as
`./dosage`. Alternatively,
you can install Dosage using python distutils by invoking
setup.py in the root of the distribution. For example:
```shell
python setup.py install
```
or if you do not have root permissions:
```shell
python setup.py install --home=$HOME
```
Reporting Bugs
---------------
You can report bugs, patches or requests at the
[Github issue tracker](https://github.com/wummel/dosage/issues)
Dosage currently supports a large number of comics and that number
grows on a regular basis. If you feel that there are comics that
Dosage does not currently support but should support, please
feel free to request them.
Technical Description
----------------------
Dosage is written in Python and relies on regular expressions to
do most of the grunt work.
For each webcomic Dosage has a plugin module, found in the
`dosagelib/plugins` subdirectory. Each module is a subclass of
the `_BasicScraper` class and specifies where to download its comic images.
Some comic syndicates (ucomics for example) have a standard layout for all
comics. For such cases there are general base classes derived from
`_BasicScraper` which help define the plugins for all comics of this syndicate.
Extending Dosage
-----------------
In order to add a new webcomic, a new module class has to be created in
one of the *.py files in the `dosagelib/plugins` subdirectory.
Look at the
[documentation for adding modules](https://github.com/wummel/dosage/blob/master/doc/adding_new_comics.md)
and at
[existing module classes](https://github.com/wummel/dosage/tree/master/dosagelib/plugins)
for examples.
Test suite status
------------------
Dosage has extensive unit tests to ensure the code quality.
[Travis CI](https://travis-ci.org/) is used for continuous build
and test integration.
[![Build Status](https://travis-ci.org/wummel/dosage.png)](https://travis-ci.org/wummel/dosage)