All Projects → tasdikrahman → Xkcd Dl

tasdikrahman / Xkcd Dl

Licence: mit
⏬ Download ALL xkcd's which have been uploaded till date. Ever!

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Xkcd Dl

Warezz
It's illegal cuz they can't tax you!
Stars: ✭ 386 (+179.71%)
Mutual labels:  comics
Pycyanide
Stars: ✭ 13 (-90.58%)
Mutual labels:  comics
Webcomic
Comic publishing power for the web. Turn your WordPress-powered site into a comic publishing platform with Webcomic.
Stars: ✭ 100 (-27.54%)
Mutual labels:  comics
Lanraragi
Web application for archival and reading of manga/doujinshi. Lightweight and Docker-ready for NAS/servers.
Stars: ✭ 450 (+226.09%)
Mutual labels:  comics
Ehviewer cn sxj
因为ehviewer近一年多没更新了,所以想copy过来试着更新下
Stars: ✭ 744 (+439.13%)
Mutual labels:  comics
Lector
Qt based ebook reader
Stars: ✭ 1,218 (+782.61%)
Mutual labels:  comics
Pixiv.moe
😘 A pinterest-style layout site, shows illusts on pixiv.net order by popularity. https://pixiv.moe
Stars: ✭ 259 (+87.68%)
Mutual labels:  comics
Spittoon
🖼 Sequential-art comic-strip generator written in Ruby which uses RMagick (2005)
Stars: ✭ 109 (-21.01%)
Mutual labels:  comics
Sickzil Machine
Manga/Comics Translation Helper Tool
Stars: ✭ 934 (+576.81%)
Mutual labels:  comics
Noboru
Application for PlayStation Vita to read manga or comics
Stars: ✭ 87 (-36.96%)
Mutual labels:  comics
Homehost
self-hosted, Netflix-like app made for streaming
Stars: ✭ 564 (+308.7%)
Mutual labels:  comics
Komga
Media server for comics/mangas/BDs with API and OPDS support
Stars: ✭ 647 (+368.84%)
Mutual labels:  comics
Work crawler
Download comics novels 小说漫画下载工具 小説漫画のダウンローダ 小說漫畫下載:腾讯漫画 大角虫漫画 有妖气 知音漫客 咪咕 SF漫画 哦漫画 看漫画 漫画柜 汗汗酷漫 動漫伊甸園 快看漫画 微博动漫 733动漫网 大古漫画网 漫画DB 無限動漫 動漫狂 卡推漫画 动漫之家 动漫屋 古风漫画网 36漫画网 亲亲漫画网 乙女漫画 comico webtoons 咚漫 ニコニコ静画 ComicWalker ヤングエースUP モアイ pixivコミック サイコミ;アルファポリス カクヨム ハーメルン 小説家になろう 起点中文网 八一中文网 顶点小说 落霞小说网 努努书坊 笔趣阁→epub.
Stars: ✭ 1,224 (+786.96%)
Mutual labels:  comics
Happypandax
A cross-platform server and client application for managing and reading manga and doujinshi
Stars: ✭ 432 (+213.04%)
Mutual labels:  comics
Q comic
一款仿知音漫客的漫画APP
Stars: ✭ 107 (-22.46%)
Mutual labels:  comics
Comic Dl
Comic-dl is a command line tool to download manga and comics from various comic and manga sites. Supported sites : readcomiconline.to, mangafox.me, comic naver and many more.
Stars: ✭ 365 (+164.49%)
Mutual labels:  comics
Readmarvel
ReadMarvel's open sourced code
Stars: ✭ 31 (-77.54%)
Mutual labels:  comics
Kotatsu
Manga reader for Android
Stars: ✭ 117 (-15.22%)
Mutual labels:  comics
Comics
comics is a web comics aggregator
Stars: ✭ 108 (-21.74%)
Mutual labels:  comics
Gazee
A WebApp for reading your comics. Built in Python on top of CherryPy.
Stars: ✭ 85 (-38.41%)
Mutual labels:  comics

.. figure:: https://raw.githubusercontent.com/tasdikrahman/xkcd-dl/master/assets/logo.png :alt: logo

|PyPI version| |License| |Travis|

Download each and every xkcd <http://xkcd.com>__ comic uploaded! Like ever!

:Author: Tasdik Rahman

.. contents:: :backlinks: none

.. sectnum::

Features

  • Can download all the xkcd's uploaded till date(1603 as I am writing this!).

  • Download individual xkcd's and store them

  • Download ranges of xkcd's and store them

  • Download the latest issue xkcd

  • Download the meta text inside each xkcd and store it

  • No duplicacy in your XKCD database.

  • Stores each xkcd in a separate file named as the title of the xkcd at your home directory

  • Writes a description.txt for each xkcd. Storing meta-data like

    • date-publised
    • url value
    • a small description of that xkcd
    • The alt text on the comic
  • written in uncomplicated python.

Demo

.. figure:: https://raw.githubusercontent.com/tasdikrahman/xkcd-dl/master/assets/usage.gif :alt: Usage

Usage

Each Comic is stored in it's own individual folder with a description.txt placed in it. It contains meta-data like - img-link - title - date-published - alt

Here's a little example for the same

.. figure:: https://raw.githubusercontent.com/tasdikrahman/xkcd-dl/master/assets/directory_struc.jpg :alt: xkcd_archive Structure

xkcd_archive Structure

Usage

When running for the first time, do a xkcd-dl --update-db

.. code:: bash

$ xkcd-dl --update-db
XKCD link database updated
Stored it in 'xkcd_dict.json'. You can start downloading your XKCD's!
Run 'xkcd-dl --help' for more options
$

--help

.. code:: bash

$ xkcd-dl --help
usage: xkcd-dl [-h] [-u] [-l] [-d XKCD_NUM | -a]
               [-r [DOWNLOAD_RANGE [DOWNLOAD_RANGE ...]]] [-v] [-P PATH]
               [-s XKCD_NUM]

Run `xkcd-dl --update-db` if running for the first time.

optional arguments:
  -h, --help            show this help message and exit
  -u, --update-db       Update the database
  -l, --download-latest
                        Download most recent comic
  -d XKCD_NUM, --download XKCD_NUM
                        Download specified comic by number
  -a, --download-all    Download all comics
  -r [DOWNLOAD_RANGE [DOWNLOAD_RANGE ...]], --download-range [DOWNLOAD_RANGE [DOWNLOAD_RANGE ...]]
                        Download specified range
  -v, --version         show program's version number and exit
  -P PATH, --path PATH  set path
  -s XKCD_NUM, --show XKCD_NUM
                        Show specified comic by number

--download-latest

This downloads the last uploaded xkcd comic and stores under the home directory of the user with a brief description

.. code:: bash

$ xkcd-dl --download-latest
Downloading xkcd from 'http://imgs.xkcd.com/comics/flashlights.png' and storing it under '/home/tasdik/xkcd_archive/1603'
$

If it has been downloaded, will not do anything

This command will work even if you have not run --update-db yet.

--download=XKCDNUMBER

Downloads the particular XKCDNUMBER\ (given that it exists and has not been downloaded already) and stores it in the home directory

.. code:: bash

$ xkcd-dl --download=143
Downloading xkcd from 'http://xkcd.com/143/' and storing it under '/home/tasdik/xkcd_archive/143'
$ xkcd-dl --download=1603
Downloading xkcd from 'http://xkcd.com/1603/' and storing it under '/home/tasdik/xkcd_archive/1603'
xkcd  number '1603' has already been downloaded!
$

--download-range <START> <END>

Will take two number parameters and download all the xkcd's between the two, inclusive.

.. code:: bash

$ xkcd-dl --download-range 32 36
Downloading xkcd from 'http://xkcd.com/32/' and storing it under '/home/tasdik/xkcd_archive/32'
Downloading xkcd from 'http://xkcd.com/33/' and storing it under '/home/tasdik/xkcd_archive/33'
Downloading xkcd from 'http://xkcd.com/34/' and storing it under '/home/tasdik/xkcd_archive/34'
Downloading xkcd from 'http://xkcd.com/35/' and storing it under '/home/tasdik/xkcd_archive/35'
Downloading xkcd from 'http://xkcd.com/36/' and storing it under '/home/tasdik/xkcd_archive/36'

--download-all

As the name suggests, will download all the xkcd's uploaded till date and store them under the home directory of the user.

.. code:: bash

$ xkcd-dl --download-all
Downloading all xkcd's Till date!!
Downloading xkcd from 'http://xkcd.com/1466' and storing it under '/home/tasdik/xkcd_archive/1466'
Downloading xkcd from 'http://xkcd.com/381' and storing it under '/home/tasdik/xkcd_archive/381'
Downloading xkcd from 'http://xkcd.com/198' and storing it under '/home/tasdik/xkcd_archive/198'
Downloading xkcd from 'http://xkcd.com/512' and storing it under '/home/tasdik/xkcd_archive/512'
Downloading xkcd from 'http://xkcd.com/842' and storing it under '/home/tasdik/xkcd_archive/842'
Downloading xkcd from 'http://xkcd.com/920' and storing it under '/home/tasdik/xkcd_archive/920'
....
....

--path=PATH

To use a custom directory to store your xkcd_archive, you can append --path=./any/path/here to the end of any download method. Absolute and relative paths work, but the directory must already exist.

.. code:: bash

$ xkcd-dl --download=3 --path=comic
Downloading xkcd from 'http://xkcd.com/3/' and storing it under '/home/tasdik/comic/xkcd_archive/3'
$ xkcd-dl --download-range 54 56 --path=/home/tasdik/xkcd
Downloading xkcd from 'http://xkcd.com/54/' and storing it under '/home/tasdik/xkcd/xkcd_archive/54'
Downloading xkcd from 'http://xkcd.com/55/' and storing it under '/home/tasdik/xkcd/xkcd_archive/55'
Downloading xkcd from 'http://xkcd.com/56/' and storing it under '/home/tasdik/xkcd/xkcd_archive/56'

--show XKCD_NUM

Opens the specified comic. Downloads it, if not downloaded already. Prints the alt text and metadata to stdout.

.. code:: bash

$ xkcd-dl --show 32
Downloading xkcd from 'http://xkcd.com/32/' and storing it under '/home/bk/Documents/xkcd-dl/xkcd_dl/xkcd_archive/32'
title : Pillar
date-publised: 2006-1-1
url: http://xkcd.com/32/
alt: A comic by my brother Doug, redrawn and rewritten by me
 
$ xkcd-dl -s 1000
Downloading xkcd from 'http://xkcd.com/1000/' and storing it under '/home/bk/Documents/xkcd-dl/xkcd_dl/xkcd_archive/1000'
xkcd  number '1000' has already been downloaded!
title : 1000 Comics
date-publised: 2012-1-6
url: http://xkcd.com/1000/
alt: Thank you for making me feel less alone.

Installation

Option 1: installing through pip <https://pypi.python.org/pypi/xkcd-dl>__ (Suggested way)

pypi package link <https://pypi.python.org/pypi/xkcd-dl>__

$ pip3 install xkcd-dl

If you are behind a proxy

$ pip3 --proxy [username:[email protected]]domain_name:port install xkcd-dl

Note: If you get command not found then $ sudo apt-get install python3-pip should fix that

Option 2: installing from source

.. code:: bash

$ git clone https://github.com/tasdikrahman/xkcd-dl.git
$ cd xkcd-dl/
$ pip3 install -r requirements.txt
$ python3 setup.py install

Upgrading

.. code:: bash

$ pip3 install -U xkcd-dl

Uninstalling

$ pip3 uninstall xkcd-dl

For Arch distributions

Here is the AUR link for you

  • Arch package <https://aur4.archlinux.org/packages/xkcd-dl-git/>__

Contributing

I hacked this up in one night, so its a little messy up there. Feel free to contribute.

  1. Fork it.
  2. Create your feature branch (git checkout -b my-new-awesome-feature)
  3. Commit your changes (git commit -am 'Added <xyz> feature')
  4. Push to the branch (git push origin my-new-awesome-feature)
  5. Create new Pull Request

Contributors

Big shout out to

  • Ian C <https://github.com/GrappigPanda>__ for fixing issue #2 <https://github.com/tasdikrahman/xkcd-dl/issues/2>__ which stopped the download if a title of a comic had a special character in it and BlitzKraft <https://github.com/BlitzKraft>__ for pointing it out.
  • BlitzKraft <https://github.com/BlitzKraft>__ for adding the feature to download the alt-text from the the xkcd and major clean ups!
  • Braden Best <https://github.com/bradenbest>__ for pointing out the issues when installing from source apart from his valuable input.

To-do

  • [x] add xkcd-dl --download-latest
  • [x] add xkcd-dl --download=XKCDNUMBER
  • [x] add xkcd-dl --download-all
  • [x] add xkcd-dl download-range <START> <END>
  • [x] add path setting with [--path=/path/to/directory] option
  • [x] add exclude list to easily recognize and ignore dynamic comics i.e. comics without a default image.
  • [x] Remove redundant code in download_xkcd_number(), download_latest() and download_all() (Refactoring!!)
  • [x] Adding support to open a particular xkcd at the CLI itself. Implemented using xdg-open. Opens using your default image viewer.
  • [x] Add tests

Known Issues

  • There have been issues when installed from source if you are using python 2.* as discussed in #5 <https://github.com/tasdikrahman/xkcd-dl/issues/5#issuecomment-159868497>__. So using python3.* is suggested.
  • If you get command not found when installing, it may mean that you don't have pip3 installed. $ sudo apt-get install python3-pip should fix that. To check your version of pip
  • Dynamic comics have to be added manually using the excludeList

.. code:: bash

$ pip3 --version
pip 1.5.6 from /usr/lib/python3/dist-packages (python 3.4)
$

Bugs

Please report the bugs at the issue tracker <https://github.com/tasdikrahman/xkcd-dl/issues>__

OR

You can tweet me at @tasdikrahman <https://twitter.com/tasdikrahman>__ if you can't get it to work. In fact, you should tweet me anyway.

Changelog

  • 0.1.2: bug: fixed relative import error in setup.py added support for gif files when renaming downloaded image (#38)

Motivation

xkcd-dl is inspired by an awesome package called youtube-dl <https://github.com/rg3/youtube-dl/>__ written by Daniel Bolton <https://github.com/rg3>__ (Much respect!)

How about you get to download all of the xkcd which have been uploaded till date? This does just that!

Now I don't know about you, but I just love reading xkcd's! Had a boring Sunday night looming over, thought why not create something like youtube-dl but for downloading xkcd's!

And hence xkcd-dl <https://github.com/tasdikrahman/xkcd-dl>__

Cheers to a crazy night!

Legal stuff

Built with ♥ by Tasdik Rahman <http://tasdikrahman.me>__ (@tasdikrahman) <https://twitter.com/tasdikrahman>__ and others <https://github.com/tasdikrahman/xkcd-dl/graphs/contributors>__ released under MIT License <http://prodicus.mit-license.org>__

You can find a copy of the License at http://prodicus.mit-license.org/

Donation

If you have found my little bits of software of any use to you, you can help me pay my internet bills :)

|Paypal badge|

|Instamojo|

|gratipay|

|patreon|

.. |PyPI version| image:: https://badge.fury.io/py/xkcd-dl.svg :target: https://badge.fury.io/py/xkcd-dl .. |License| image:: https://img.shields.io/pypi/l/xkcd-dl.svg :target: https://img.shields.io/pypi/l/xkcd-dl.svg .. |Paypal badge| image:: https://www.paypalobjects.com/webstatic/mktg/logo/AM_mc_vs_dc_ae.jpg :target: https://www.paypal.me/tasdik .. |gratipay| image:: https://cdn.rawgit.com/gratipay/gratipay-badge/2.3.0/dist/gratipay.png :target: https://gratipay.com/tasdikrahman/ .. |Instamojo| image:: https://www.soldermall.com/images/pic-online-payment.jpg :target: https://www.instamojo.com/@tasdikrahman .. |Travis| image:: https://travis-ci.org/tasdikrahman/xkcd-dl.svg?branch=master :target: https://travis-ci.org/tasdikrahman/xkcd-dl .. |Travis| image:: https://travis-ci.org/tasdikrahman/xkcd-dl.svg?branch=master :target: https://travis-ci.org/tasdikrahman/xkcd-dl .. |patreon| image:: http://i.imgur.com/ICWPFOs.png :target: https://www.patreon.com/tasdikrahman/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].