dosage/doc/README.txt

122 lines
3.8 KiB
Text
Raw Normal View History

2012-06-20 19:58:13 +00:00
Dosage
=======
2013-03-25 18:46:48 +00:00
Dosage is a comic strip downloader and archiver.
2012-06-20 19:58:13 +00:00
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
2013-01-29 17:46:05 +00:00
strip for a particular date/index (if the webcomic's site layout
makes this possible).
2012-06-20 19:58:13 +00:00
Notice
-------
This software is in no way intended to publically "broadcast" comic strips,
2012-06-20 20:28:58 +00:00
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.
2012-06-20 19:58:13 +00:00
2013-01-29 17:46:05 +00:00
Additionally, Dosage respects the robots.txt exclusion protocol. This
2012-12-12 16:41:29 +00:00
makes sure no content is accessed in an automatic way without consent
by the publishers.
2013-01-29 17:46:05 +00:00
If you are a publisher of comics and want Dosage to access your files,
2012-12-12 16:41:29 +00:00
add the following entry to your robotst.txt file:
```
User-agent: dosage
Allow: *
```
2012-06-20 19:58:13 +00:00
Usage
------
2012-12-12 16:41:29 +00:00
List available comics (ca. 3000 at the moment):
2012-06-20 20:05:54 +00:00
2013-03-25 18:46:48 +00:00
`$ dosage --list`
2012-06-20 19:58:13 +00:00
Get the latest comic of for example CalvinAndHobbes and save it in the "Comics"
directory:
2012-06-20 20:05:54 +00:00
2012-06-20 19:58:13 +00:00
`$ dosage CalvinAndHobbes`
If you already have downloaded several comics and want to get the latest
2013-03-25 18:46:48 +00:00
strips of all of them:
2012-06-20 20:05:54 +00:00
2013-03-25 18:46:48 +00:00
`$ dosage --continue @`
2012-06-20 19:58:13 +00:00
On Unix, ``xargs`` can download several comic strips in parallel,
for example using up to 4 processes:
2013-03-25 18:46:48 +00:00
`$ cd Comics && find . -type d | xargs -n1 -P4 dosage --basedir . --verbose`
2013-03-25 18:46:48 +00:00
For advanced options and features execute `dosage --help` or look at the dosage
2012-06-20 19:58:13 +00:00
manual page.
2013-03-25 18:46:48 +00:00
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.
2013-01-29 17:46:05 +00:00
Installation
2012-06-20 19:58:13 +00:00
-------------
2013-04-03 18:27:55 +00:00
The most convenient method is to use pip:
2013-04-03 18:27:55 +00:00
`pip install requests dosage`
2012-06-20 19:58:13 +00:00
2013-01-29 17:46:05 +00:00
If you install Dosage from source, the `dosage` script can be run directly with
`./dosage`. Alternatively, you can install Dosage using python distutils by invoking
setup.py in the root of the distribution. For example:
2012-06-20 19:58:13 +00:00
`python setup.py install`
or if you do not have root permissions:
`python setup.py install --home=$HOME`
2013-01-29 17:46:05 +00:00
Dependencies
-------------
Python version 2.7 or higher, which can be downloaded
from http://www.python.org/
2012-12-09 19:15:31 +00:00
2013-01-29 17:46:05 +00:00
Also the python-requests module is used, which can be downloaded
from http://docs.python-requests.org/en/latest/
2012-12-09 19:15:31 +00:00
2012-06-20 19:58:13 +00:00
Technical Description
----------------------
Dosage is written in Python and relies on regular expressions to
2012-06-20 19:58:13 +00:00
do most of the grunt work.
For each comic Dosage has a plugin module, found in the "plugins"
2012-06-20 19:58:13 +00:00
subdirectory of the dosagelib directory. Each module is a subclass of
2013-03-26 16:27:56 +00:00
the _BasicScraper class and specifies where to download its comic images.
2013-01-29 17:46:05 +00:00
Some comic syndicates (GoComics for example) have a standard layout for all
2013-03-26 16:27:56 +00:00
comics. For such cases a generator function creates all _BasicScraper class
2013-01-29 17:46:05 +00:00
instances from a given list of comic strips.
2012-06-20 19:58:13 +00:00
Extending Dosage
-----------------
In order to add a new comic, a new module class has to be created in
2012-12-08 20:30:41 +00:00
one of the *.py files in the dosagelib/plugins subdirectory.
Look at the existing module classes for examples.
2012-06-20 19:58:13 +00:00
Reporting Bugs
---------------
You can report bugs, patches or requests at the Github issue tracker at
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.
2013-03-28 06:21:37 +00:00
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)