This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
![Chandere](https://raw.github.com/TsarFox/chandere/master/Chandere_Logo.png "Chandere")
========
## A utility programmed and maintained by [Jakob.](http://tsar-fox.com/)
An image/file downloader and thread archiver for Futaba-styled imageboards, such as 4chan.

Chandere is designed to work on both Python2 and Python3, and as of version 0.1.0 has no dependencies outside of the Python standard library.

Chandere is free software, licensed under the [GNU General Public License.](http://gnu.org/licenses/gpl.html)

[![Build Status](https://travis-ci.org/TsarFox/chandere.svg?branch=master)](https://travis-ci.org/TsarFox/chandere) [![PyPI Downloads](https://img.shields.io/pypi/dm/Chandere.svg)](https://pypi.python.org/pypi/Chandere/) [![License](https://img.shields.io/github/license/tsarfox/chandere.svg)](https://www.gnu.org/licenses/gpl.html)


Primary Features
================

* Capable of downloading files and archiving entire threads.
* Able to scrape from multiple boards and threads at once.
* Offers official support for 4chan, 8chan and Lainchan.
* Optional post filtering similar to that used by 4chan.


Installation
------------

Currently, the most reliable way to install Chandere is through Pip.

# It is recommended that you use the latest version of pip and setuptools when installing Chandere.
$ pip install --upgrade pip setuptools

$ pip install --upgrade chandere


Tutorial
--------

Chandere only really requires one argument to run. The following command will attempt to make a connection to http://boards.4chan.org/g/ and show the response headers.

$ chandere /g/
[MainThread] INFO: Response from http://a.4cdn.org/g/threads.json:
[MainThread] INFO: Date: Thu, 16 Jun 2016 19:01:02 GMT
[MainThread] INFO: Content-Type: application/json
...

Accessing multiple boards at once is just as simple, just add another one as an argument.

$ chandere /g/ /3/
...

A specific thread can also be specified by placing the thread number after the board.

$ chandere /g/51971506

Now with the basics of specifying where to scrape from, we can actually use the tool. The default mode of operation is "test connection", but we can do more than that. To download every file in a board/thread use the "-d" or "--download" argument.

$ chandere /g/51971506 -d
[Connection Thread] INFO: Starting...
...

This will download everything into the current working directory, though. Maybe we don't want that. We can specify the output path with the "-o" or "--output" parameter.

$ chandere /g/51971506 -d -o Stallman

Pretty neat, but maybe we're a lainon and don't care much for 4chan. The imageboard can be specified with -c. An alias can be used if it is listed by the "--list-chans" parameter.

$ chandere --list-chans
Available Imageboard Aliases: lainchan, 4chan
$ chandere /cyb/ -d -o Cyberpunk -c lainchan

If the imageboard isn't a valid alias, it can still be passed with the "-c" parameter as long as it is in the form of an URL.

$ chandere /c/ -c http://krautchan.net


Options
-------
**Documentation**
* -h, --help | Display a list of available command-line flags.
* -v, --version | Display the version of Chandere that is currently installed.
* --list-chans | List available imageboard aliases.

**Connection**
* targets | Positional argument of a board and thread to connect to. Can be given in various forms, but as a rule of thumb - the board initial should come first, followed by an optional thread number. An example is "/g/51971506".
* -c, --chan | Specify the imageboard to connect to. Can be an alias listed with --list-chans, but can also be the URL to an imageboard. Defaults to "4chan".
* --threads | Specify the number of threads to utilize when making connections. Please be aware that making several requests per second is typically against an imageboard's API rules and can potentially get your IP banned.
* --ssl | Use HTTPS if available. Chandere does not attempt to verify the signature of the server it is connecting to.

**Scraper**
* -d, --download | Crawl for and download all of the files in a board/thread.
* -a, --archive | Crawl for and archive all of the posts in a board/thread to a plaintext file.
* --filters | Add filters. Chandere utilizes pattern-matching very similar to that used by 4chan. Exact terms are enclosed in brackets, separate terms are separated by escaped spaces, regular expressions are enclosed in forward slashes, and wildcards can be used by throwing a "*" character into the filter pattern.
* --filter-file | Filters of the above format can be loaded from a file with this parameter. They should be separated by newlines.
* --continuous | If Chandere is run with this flag, it will attempt to continuously refresh and check for new posts until a SIGINT is received, rather than quitting as soon as the task is done.
* --debug | Indicates that every log message should be shown during runtime. This is helpful when opening a bug report.

**Write**
* -o, --output | Designates the output directory if Chandere is operating in File Downloading mode, or the file to output to if Chandere is operating in Archiving mode. Defaults to the current working directory.


TODO
----
[TODO](/TODO.md)
Release History

Release History

1.0.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.0.post1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.3.post2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.3.post1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.2a1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1a2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1a1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0a2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0a1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2.dev1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1.dev1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0.dev1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
Chandere-1.0.0-py3-none-any.whl (18.3 kB) Copy SHA256 Checksum SHA256 3.5 Wheel Sep 6, 2016
Chandere-1.0.0.tar.gz (29.0 kB) Copy SHA256 Checksum SHA256 Source Sep 6, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting