XDM: eXtendable Download Manager. Plugin based media collection manager.
XDM is in BETA
Current official site http://xdm.lad1337.de
Official main plugin repository at https://github.com/lad1337/XDM-main-plugin-repo/
- python 2.7.x
optional but recomended when running on source
- git 1.8.x
- Movies: Movies and find and Postprocess
- Music: Albums and find and Postprocess (only for Mac OSX adding to iTunes)
- Games: PC, Xbox360, PS3 and Wii Games and find and Postprocess
- Books: Books
- TV: TV shows
- Anime: Animes
For more info on available first party plugins see the main repository at https://github.com/lad1337/XDM-main-plugin-repo/.
Note: At some point in the future all MediaTypeManagers and corresponding plugins will be moved into the repository and out of the core.
is available online at https://xdm.readthedocs.org
or in the source and can be build using sphinx
- CherryPy: A Minimalist Python Web Framework
- Requests: HTTP for Humans
- pyDes: This is a pure python implementation of the DES encryption algorithm.
- profilehooks: Profiling/tracing wrapper
- peewee: a small, expressive orm
- Jinja2: Jinja2 is a full featured template engine for Python.
- pylint: analyzes Python source code looking for bugs and signs of poor quality
- astng: common base representation of python source code for projects such as pychecker, pyreverse, pylint
- guessit: a library for guessing information from video files.
- JSONRPClib: A Python JSON-RPC over HTTP that mirrors xmlrpclib syntax.
- pbs: Python subprocess wrapper (fallback for windows, see sh).
- sh: sh (previously pbs) is a full-fledged subprocess interface for Python that allows you to call any program as if it were a function.
- Bootstrap: Sleek, intuitive, and powerful front-end framework for faster and easier web development.
- Font Awesome: The iconic font designed for Bootstrap.
- jQuery: is a fast, small, and feature-rich JavaScript library.
- jQuery UI: is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.
- modernizr: is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.
- fancyBox: fancyBox is a tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.
- Raphaël: JavaScript Vector Library
- noty: jquery notification plugin
- jQuery resize event: With jQuery resize event, you can now bind resize event handlers to elements other than window.
- JQuery Countdown Timer: A simple jQuery Countdown Timer with callback
- jQuery YouTube Popup Player: A simple and light weight plugin to display YouTube videos in a jQuery dialog box.
- pjax: pushState + ajax = pjax http://pjax.heroku.com
- TouchSwipe: A jquery plugin to be used on touch devices such as iPad, iPhone, android etc
(Plugins may use more libraries)
Plugin and reposetory managment
usage: XDM [-h] [-d] [-v] [-D] [-p PIDFILE] [-P PORT] [-n] [-b DATADIR] [--config_db CONFIG_DB] [--data_db DATA_DB] [--history_db HISTORY_DB] [--dev] [--noApi] [--apiPort APIPORT] [--noWebServer] [--pluginImportDebug] [--profile [PROFILE [PROFILE ...]]] optional arguments: -h, --help show this help message and exit -d, --daemonize Run the server as a daemon. -v, --version Print Version and exit. -D, --debug Print debug log to screen. -p PIDFILE, --pidfile PIDFILE Store the process id in the given file. -P PORT, --port PORT Force webinterface to listen on this port. -n, --nolaunch Don't start the browser. -b DATADIR, --datadir DATADIR Set the directory for created data. --config_db CONFIG_DB Path to config database --data_db DATA_DB Path to data database --history_db HISTORY_DB Path to history database --dev Developer mode. Disables the censoring during log and the plugin manager follows symlinks --noApi Disable the api --apiPort APIPORT Port the api runs on --noWebServer Don't start the webserver --pluginImportDebug Extra verbosy debug during plugin import is printed. --profile [PROFILE [PROFILE ...]] Wrap a decorated(!) function in a profiler. By default all decorated functions are profiled. Decorate your function with @profileMeMaybe
You will need an instlled version of babel
Build message catalog $ pybabel extract -F babel.cfg -o ./i18n/messages.pot .
Create language po $ pybabel init -i ./i18n/messages.pot -d i18n -l ``language name``
Update language po $ pybabel update -i ./i18n/messages.pot -d i18n
Compile mo files $ pybabel compile -d i18n -f
XDM: Xtentable Download Manager. Plugin based media collection manager.
Copyright (C) 2013 Dennis Lutter
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.