Skip to main content

An XDCC Downloader

Project description

XDCC Downloader
===============

.. figure:: xdcc_dl/resources/logo/logo_256.png
:alt: Logo

Logo
An XDCC File downloader based on the
`irclib <https://github.com/jaraco/irc>`__ framework.

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

Via Pip (Preferred):
~~~~~~~~~~~~~~~~~~~~

**As User (Preferred)**

::

$ pip install xdcc_dl --user

**Systemwide**

::

# pip install xdcc_dl
or
$ sudo pip install xdcc_dl

Via setup.py
~~~~~~~~~~~~

**As User (Preferred)**

::

$ python setup.py install --user

**Systemwide**

::

# python setup.py install
or
$ sudo python setup.py install

Binaries
~~~~~~~~

The supplied binaries at the `Github
Releases <https://github.com/namboy94/xdcc-downloader/releases>`__ page
do not require installation nor any dependencies. They can simply be
executed.

Usage
-----

Message-based CLI
~~~~~~~~~~~~~~~~~

XDCC Packlists usually list xdcc commands in the folowing form:

::

/msg <BOTNAME> xdcc send #<PACKNUMBER>

By supplying this message as the ``-m`` parameter, the pack can be
downloaded.

**Examples:**

::

# This is the xdcc message: '/msg the_bot xdcc send #1'

# This command downloads pack 1 from the_bot
$ xdcc_dl -m "/msg the_bot xdcc send #1"

# It's possible to download a range of packs (1-10 in this case):
$ xdcc_dl -m "/msg the_bot xdcc send #1-10"

# Range stepping is also possible:
$ xdcc_dl -m "/msg the_bot xdcc send #1-10,10"
# (This will download packs 1,3,5,7,9)

# you can also specify the destination file or directory:
$ xdcc_dl -m "/msg the_bot xdcc send #1" -d /home/user/Downloads
# The destination defaults to your current working directory

# if the bot is on a different server than irc.rizon.net, a server
# has to be specified:
$ xdcc_dl -m "/msg the_bot xdcc send #1" --server irc.freenode.org

# You can also specify an IRC username. If none was supplied, a
# random string of numbers will be used instead
$ xdcc_dl -m "/msg the_bot xdcc send #1" --user Me

# To specify how verbose the program is, you can pass the
# verbosity parameter as a number between 0 and 6:
$ xdcc_dl -m "/msg the_bot xdcc send #1" --verbosity 3

GUI
~~~

By calling the program with the ``-g`` flag (or without arguments on
Windows) a graphical user interface is started. It offers searching for
packs using various web scrapers or adding packs manually like with the
CLI, adding these packs to a download queue and then downloading these
queued packs.

.. figure:: xdcc_dl/resources/screenshots/opm_gui_example.png
:alt: Screenshot

Screenshot
CLI
~~~

Similar to the GUI, a textual user interface can be used by calling the
program in conjunction with the ``-t`` flag.

.. figure:: xdcc_dl/resources/screenshots/tui_basic_screenshot.png
:alt: Screenshot

Screenshot
As a library:
~~~~~~~~~~~~~

xdcc-downloader is built to be used as a library for use in other
projects. To make use of the XDCC downloader in your application, you
will first need to create a list of
`XDCCPack <xdcc_dl/entitites/XDCCPack.py>`__ objects, either by hand or
by using the `PackSearcher <xdcc_dl/pack_searchers/PackSearcher.py>`__.

Once this list of XDCCPacks is created, use one of the following
classes:

- `XDCCDownloader <xdcc_dl/xdcc/XDCCDownloader.py>`__, if you can
guarantee that every pack is on the same server
- `MultipleServerDownloader <xdcc_dl/xdcc/MultipleServerDownloader>`__,
if the packs are on different IRC servers

Do not use any classes in ``xdcc_dl.xdcc.layers``, those all work in
tandem to create these two higher-level classes.

Both classes are initialized using the following parameters:

**user**: Either a string, or a `User <xdcc_dl/entitites/User.py>`__
object which specifies the username for connecting to the IRC network. A
random username can be generated when passing 'random' as the username

**logger**: Either pass an integer value between 0 and 6 to set the
verbosity, a `Logger <xdcc_dl/logging/Logger.py>`__ object or another
object of a class that implements all of Logger's methods.

Once initialized, start the XDCC downloads by passing the list of
XDCCPacks to the downloader's download() method.

A second optional Parameter is the progress. This parameter is an
instance of the `Progress <xdcc_dl/entitites/Progress.py>`__ class and
can be used to see the progress of the downloads from a different point
in the application

Projects using xdcc-downloader
------------------------------

- `toktokkie <https://gitlab.namibsun.net/namboy94/toktokkie>`__

Further Information
-------------------

- `Changelog <https://gitlab.namibsun.net/namboy94/xdcc-downloader/raw/master/CHANGELOG>`__
- `Gitlab <https://gitlab.namibsun.net/namboy94/xdcc-downloader>`__
- `Github <https://github.com/namboy94/xdcc-downloader>`__
- `Python Package Index Site <https://pypi.python.org/pypi/xdcc_dl>`__
- `Documentation(HTML) <https://docs.namibsun.net/html_docs/xdcc_downloader/index.html>`__
- `Documentation(PDF) <https://docs.namibsun.net/pdf_docs/xdcc_downloader.pdf>`__
- `Git Statistics
(gitstats) <https://gitstats.namibsun.net/gitstats/xdcc_downloader/index.html>`__
- `Git Statistics
(git\_stats) <https://gitstats.namibsun.net/git_stats/xdcc_downloader/index.html>`__
- `Test
Coverage <https://coverage.namibsun.net/xdcc-downloader/index.html>`__

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xdcc_dl-1.0.0.tar.gz (43.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xdcc_dl-1.0.0-py3-none-any.whl (93.1 kB view details)

Uploaded Python 3

xdcc_dl-1.0.0-py2-none-any.whl (94.0 kB view details)

Uploaded Python 2

File details

Details for the file xdcc_dl-1.0.0.tar.gz.

File metadata

  • Download URL: xdcc_dl-1.0.0.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xdcc_dl-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c604d01d3175cc44e46aeb133ef7f4e152622cf946202f527f6b8cd554c50d55
MD5 cee321b75121c439a0c216bbe3abc537
BLAKE2b-256 ed2eac6e29e84ebc9cd7e356c3d1a4a5983292019f58e4ffa17b02e3c05afbcb

See more details on using hashes here.

File details

Details for the file xdcc_dl-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for xdcc_dl-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc756a2aff1966d5a24b071e7fbf7adfd25182f07faa6607d1d4f92bd7ee32e3
MD5 829edd2ffe7fe1ef475fa9b188a3ec92
BLAKE2b-256 be11fb242e26412a21bc9960d679f50fa3acf1d73b44f68122300a1e5fb43b03

See more details on using hashes here.

File details

Details for the file xdcc_dl-1.0.0-py2-none-any.whl.

File metadata

File hashes

Hashes for xdcc_dl-1.0.0-py2-none-any.whl
Algorithm Hash digest
SHA256 8e25b72079863e366c3df20bc1ea4c177a1b113f383a259cd6e1571303d812a0
MD5 8a231168a9d62ab22708113f9e0a03a5
BLAKE2b-256 9343c200a4bb71590f9568f975ddb5808b3feca4b9055d354a613a6f5e458a90

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page