- Notifications
You must be signed in to change notification settings - Fork59
dosage is a comic strip downloader and archiver
License
webcomics/dosage
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Dosage is designed to keep a local copy of specific webcomics and otherpicture-based content such as Picture of the Day sites. With the dosagecommandline script you can get the latest strip of a webcomic, or catch-up tothe last strip downloaded, or download a strip for a particular date/index (ifthe webcomic's site layout allows this).
Multiple webcomics can be downloaded in parallel, making the update of comicstrips faster.
Dosage is licensed under theMIT license
This software is in no way intended to publically "broadcast" comic strips, itis purely for personal use. Please be aware that by making downloaded stripspublically available (without the explicit permission of the author) you may beinfringing upon various copyrights.
In any case, you should support the authors of the comics you are downloading,either by buying some of their products or even donating them some money sincethey provide the comics you like and read.
Additionally, Dosage respects (part of) therobots.txt
exclusion protocol.This makes it easy for publishers to disallow Dosage access to their site. Onthe other hand, Dosage is no classic "crawler" oder "bot", so global rules inrobots.txt
are ignored.
If you are a publisher of comics and don't want Dosage to access your files,either open an issue and request removal (this is the preferred solution, sinceit documents your wishes to us) or add the following entry to your robots.txtfile:
User-agent: DosageDisallow: *
List available comics (ca. 3000 at the moment):
$ dosage --list
Get the latest comic of for example CalvinAndHobbes and save it in the "Comics"directory:
$ dosage CalvinAndHobbes
If you already have downloaded several comics and want to get the latest stripof all of them:
$ dosage @
To help others find good comics, you can vote for your favourite ones:
$ dosage --vote @
For advanced options and features executedosage --help
.
Some comics contain adult content and require age confirmation. These comicscan only be downloaded by using the--adult
option, which confirms that youare old enough to view them.
Since dosage is written inPython, a Pythoninstallation is required: Dosage needs at least Python 3.8. Dosage requiressome Python modules from PyPI, so installation withpip
is recommended.
Some features require optional dependencies, which can be installed by specifying themwhile installing Dosage:
bash
- Installs shell completion support using theargcomplete package.You still need to register support in your shell usingeval "$(register-python-argcomplete dosage)"
or usingargcomplete
'sglobal completion mode.argcomplete
officially only supports bash & zsh, buthas limited support forother shells.compression
- Enables Brotli & zstandard compression - These modern HTTPcompression methods can reduce transferred file size and improve performance.dev
- Dependencies only required for running Dosage's test suite.
Windows users can download a complete binary (including Python) from therelease page.
The simplest way to install and upgrade dosage is withpipx. To install thenewest stable version with all optional features use:
pipx install dosage[bash,compression]
To install the newest development version, use:
pipx install "dosage[bash,compression] @ git+https://github.com/webcomics/dosage.git"
To upgrade such installations, just run:
pipx upgrade dosage
If you want to run dosage directly from the source code, you should installit in "editable" mode, preferable in avirtual environment:
pip install -e .[bash,compression,dev]
After that,dosage
should be available as a normal command.
This project currently has a pretty "loose" code style. Please usepre-commit
to keep the code styleconsistent. You can ignore flake8 warnings in code you didn't touch (SetSKIP=flake8
before commiting ifpre-commit
doesn't let you).
You can report bugs, patches or requests at theGitHub issuetracker - Dosage currentlysupports a large number of comics and that number grows on a regular basis. Ifyou feel that there are comics that Dosage does not currently support, butshould support, please feel free to request them.
In order to add a new webcomic, a new module class has to be created in one ofthe *.py files in one thedosagelib/plugins
subdirectory. Look at thedocumentation for adding modules and atexisting module classes for examples.
Dosage has unit tests to ensure code quality. GitHub Actions are used forcontinuous build and test integration. See the badges at the top of this pagefor the current status.
About
dosage is a comic strip downloader and archiver
Topics
Resources
License
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.