Deluge BitTorrent client - Git mirror, PRs only

Overview

Deluge BitTorrent Client

build-status docs-status

Deluge is a BitTorrent client that utilizes a daemon/client model. It has various user interfaces available such as the GTK-UI, Web-UI and a Console-UI. It uses libtorrent at it's core to handle the BitTorrent protocol.

Install

From PyPi:

pip install deluge

From source code:

python setup.py build
python setup.py install

See DEPENDS and Installing/Source for dependency details.

Usage

The various user-interfaces and Deluge daemon can be started with the following commands.

Use the --help option for further command options.

Gtk UI

deluge or deluge-gtk

Console UI

deluge-console

Web UI

deluge-web

Open http://localhost:8112 with default password deluge.

Daemon

deluged

See the Thinclient guide to connect to the daemon from another computer.

Contact

Comments
  • Update Windows Packaging

    Update Windows Packaging

    • [x] Check that deluge-console works.

    • [x] Plugins Execute & Extractor Won't start:

    09:58:44.350 [ERROR   ][deluge.pluginmanagerbase          :78  ] Unable to instantiate plugin 'Execute' from 'e:\\program files\\deluge\\deluge\\plugins\\execute-1.3-py3.10.egg'!
    09:58:44.350 [ERROR   ][deluge.pluginmanagerbase          :78  ] No module named 'twisted.internet.utils'
    Traceback (most recent call last):
      File "deluge\pluginmanagerbase.py", line 147, in enable_plugin
      File "e:\program files\deluge\deluge\plugins\execute\deluge_execute\__init__.py", line 14, in __init__
        from .core import Core as _pluginCls
      File "e:\program files\deluge\deluge\plugins\execute\deluge_execute\core.py", line 14, in <module>
        from twisted.internet.utils import getProcessOutputAndValue
    ModuleNotFoundError: No module named 'twisted.internet.utils'
    

    Answer: https://github.com/deluge-torrent/deluge/pull/331/commits/3aec79f30f39d76d3afefa8e64895f331784b133

    • [x] Check for compatibility with newer python versions.
    • [x] Twisted error: https://github.com/twisted/twisted/pull/1679 Answer: https://github.com/deluge-torrent/deluge/pull/331/commits/e8874aab8fa0ab526845d424bdf69fe1ab398889
    • [x] Edit path for openssl? Why? Answer: libtorrent + pyinstaller requires a lib(ssl/crypto)-1_1.dll and lib(ssl/crypto)-1_1-x64.dll odd quirk but solveable by just having two copies. Maybe later compiling our own libtorrent.
    • [x] vc-redist check Answer: Not needed libtorrent isn't build static and pyinstaller grabs the redist files.
    • [x] With UI/Plugin files copied to data, do not need the deluge folder. Answer: Not needed but comes from collect_all('deluge'):hiddenimports which is needed.
    opened by doadin 131
  • Feature GTK3UI

    Feature GTK3UI

    To prevent confusion I think it will be best to create a new module for GTK3, it will make development a bit harder with duplicate code but should help with moving users to GTK3. Also, it can be independent of GTK2 and released as it becomes ready and hopefully make it easier for plugin authors to add support.

    This branch does display the main windows with torrents (even under Python 3) but there are a lot of errors still needing to be fixed.

    • [x] Split gtk3 code into a separate module
    • [x] Update plugin GTK3 code
    • [x] Remove deprecated from UI files with a script.
    • [x] Document the migration process to aid plugin authors.
    • [x] Bump plugin versions.
    • [x] Review and fix all FIXME comments.
    • ~Move from GtkBox to GtkGrid for future-proofing: https://developer.gnome.org/gtk3/3.10/gtk-migrating-GtkGrid.html~

    More fixes from hugo merging PR:

    • [x] Remove interface-naming-policy project-wide
    • [x] Add Generated with
    • [x] Add alternative to purged props (align, padding)
    • [x] Fix icon-size
    • ~Add test for windowing~

    Found a useful porting guide:

    https://github.com/sugarlabs/sugar-docs/blob/master/src/gtk3-porting-guide.md

    opened by cas-- 31
  • [3499][Core] Stopped using deprecated functions

    [3499][Core] Stopped using deprecated functions

    As we intend to support LT 2.0, we should stop using the deprecated methods and functions. We should not remove the usage of them, as we still need to support older versions of LT, but when using the latest version of LT, we should use the latest API.

    Closes: https://dev.deluge-torrent.org/ticket/3499

    Issues that still needs to be fixed:

    • [x] the url member is deprecated - usage of url in add_torrent_params is deprecated
    • [x] resume_data is deprecated - fix in alertmanager.py:128
    • [x] has_metadata() is deprecated - fix in torrent.py:871
    • [x] name() is deprecated - fix in torrent.py:963
    opened by DjLegolas 27
  • [Core] Test mixing in async/await syntax

    [Core] Test mixing in async/await syntax

    This is maybe a bit more ambitious alternative to #351

    Instead of using inlineCallbacks we could switch over to the await syntax. In order to make it the most nice, we'd have to start at the top of the call chain and convert over to async/await as we go down, to not have to mix in a lot of ensureDeferred calls. We could also make a decorator for ensureDeferred that works more like inlineCallbacks, which would make the transition easier, but would remove some of the nicer benefits of await syntax like the improved tracebacks (I think?)

    opened by gazpachoking 20
  • Initial Appveyor Support

    Initial Appveyor Support

    Goal was same tests as travis.ci. Outcome here is that while most tests run with this setup only flake8 runs 100% as it should(produces same output as travis).

    However while the other tests run the tests need to be adjusted/modified to be windows compatible. For example in one test the ui.console gets tested which uses python curses... python curses doesn't exist so the test runs but fails. In "wintrial" (skips=1, failures=7, errors=41, successes=115).

    Currently even on travis.ci "docs" is failing and the only addition fail comes from the curses issue which that "test" should probably just be ignored/skiped on windows since it will never work.

    opened by doadin 15
  • [#2478] [Blocklist] Add WebUI plugin page

    [#2478] [Blocklist] Add WebUI plugin page

    Icons are missing and whitelist not working due to bug in core as I mentioned in the PM. Everything else is done, progress bar, info, etc. Please let me know if everything is ok.

    opened by omaralvarez 15
  • #3171 Add Option To Specify Outgoing Connection Interface

    #3171 Add Option To Specify Outgoing Connection Interface

    Currently if you specify -i only the libtorrent listen_interfaces is set.

    I believe one of two options should be used:

    -i sets listen_interfaces and outgoing_interfaces.

    or

    -i sets listen_interface and a new -o sets outgoing_interfaces.

    Im sure for some reason or another someone would want to use two interfaces so the second option is probably best.

    opened by doadin 14
  • [Core] Return plugin keys with get_torrents_status

    [Core] Return plugin keys with get_torrents_status

    When requesting all keys, get_torrents_status was missing plugin added keys This commit brings the behavior in line with get_torrent_status, and deluge 1.3

    Closes: 3357

    Re-created from #344 because I accidentally pushed to the wrong remote.

    opened by gazpachoking 13
  • Add maybe_coroutine decorator to easily mix in async/await syntax

    Add maybe_coroutine decorator to easily mix in async/await syntax

    Continuation of #351 and #352. Started fresh again, this time with some tests.

    Goals:

    • Clean up callback hell by making more code inline
    • Use async/await syntax as it has more modern niceties than inlineCallbacks
      • Also gets us closer if we want to transition to asyncio in the future
      • await is usable in places that yield is not. e.g. return await thething func(await thething, 'otherparam')
      • IDEs know async semantics of async/await syntax to help more than with inlineCallbacks
    • maybe_coroutine decorator has nice property (over ensureDeferred) that when used in a chain of other coroutines, they won't be wrapped in deferreds on each level, and so traceback will show each await call leading to the error.
    • All async functions wrapped in maybe_coroutine are 100% backwards compatible with a regular Deferred returning function. Whether called from a coroutine or not.
    opened by gazpachoking 11
  • [Packaging] Pinned Pyinstaller to v4.10 and readme update

    [Packaging] Pinned Pyinstaller to v4.10 and readme update

    Pin Pyinstaller to latest v4.x until issue of aborting upon missing typelibs for various unbuilt gst-modules can be properly investigated and resolved. Specific error for one of the modules being:

    36738 INFO: Loading module hook 'hook-gi.repository.Gst.py' from 'C:\\hostedtoolcache\\windows\\Python\\3.9.13\\x64\\lib\\site-packages\\PyInstaller\\hooks'...
    Traceback (most recent call last):
      File "<string>", line 7, in <module>
    gi.repository.GLib.GError: g-irepository-error-quark: Typelib file for namespace 'Gst', version '1.0' not found (0)
    36870 ERROR: gi repository 'GIRepository 2.0' not found. Please make sure corresponding package is installed.
    Traceback (most recent call last):
      File "<string>", line 4, in <module>
      File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\gi\__init__.py", line 139, in require_version
        raise ValueError('Namespace %s not available' % namespace)
    ValueError: Namespace Gst not available
    
    package 
    opened by mhertz 10
  • Modify the transfer protocol in a couple ways.

    Modify the transfer protocol in a couple ways.

    Replace the 'D' header with an unsigned byte that indicates the protocol version. This will allow easier changes to protocol in the future. Replace the signed integer used for message length with an unsigned 32-bit integer. There is no need for a signed value here as a message length must always be positive. This also doubles the max message length.

    opened by aresch 10
  • Losslessly compress PNG images

    Losslessly compress PNG images

    Using Efficient-Compression-Tool, we managed to reduge image sizes by 9.13KB out of 241.88KB (3.7741%) without changing visual appearence.

    It's a small improvement, but we get something for nothing and that's nice.

    opened by anthonyryan1 0
  • [UI][Common] Add support for BitTorrent V2 file tree

    [UI][Common] Add support for BitTorrent V2 file tree

    In BEP52, a new tiles structure was introduce, a file tree. This change added support for this structure in the TorrentInfo class.

    Ref: https://www.bittorrent.org/beps/bep_0052.html

    opened by DjLegolas 0
  • Fixing alignment issues with the FilesTab progress bar

    Fixing alignment issues with the FilesTab progress bar

    What

    Two issues:

    • Height offset for the white overlayed text was slightly off, causing the background darker text to be slightly visible when replaced with the foreground white text:

    • Progress offset caused the white foreground text to be 10 pixels ahead in progress, meaning the replacement text wasn't aligned with the background progress bar:

    Now

    opened by GetOutOfMyBakery 1
  • [Label] fix torrent deletion not removes from config

    [Label] fix torrent deletion not removes from config

    when deleting a torrent, the on deletion hook deletes the torrent from the local config but does not save the new config to disk. note that when setting a new label to a torrent, the config does save.

    closes: https://dev.deluge-torrent.org/ticket/3545

    opened by DjLegolas 0
Owner
Deluge team
The development team maintaining the Deluge BitTorrent client
Deluge team
ZeroNet - Decentralized websites using Bitcoin crypto and BitTorrent network

ZeroNet Decentralized websites using Bitcoin crypto and the BitTorrent network - https://zeronet.io / onion Why? We believe in open, free, and uncenso

ZeroNet 17.8k Jan 3, 2023
Bittorrent software for cats

NyaaV2 Setting up for development This project uses Python 3.7. There are features used that do not exist in 3.6, so make sure to use Python 3.7. This

null 3k Dec 30, 2022
Tiny Git is a simplified version of Git with only the basic functionalities to gain better understanding of git internals.

Tiny Git is a simplified version of Git with only the basic functionalities to gain better understanding of git internals. Implemented Functi

Ahmed Ayman 2 Oct 15, 2021
Privacy enhanced BitTorrent client with P2P content discovery

Tribler Towards making Bittorrent anonymous and impossible to shut down. We use our own dedicated Tor-like network for anonymous torrent downloading.

null 4.2k Dec 31, 2022
A python package for your Kali Linux distro that find the fastest mirror and configure your apt to use that mirror

Kali Mirror Finder Using Single Python File A python package for your Kali Linux distro that find the fastest mirror and configure your apt to use tha

MrSingh 6 Dec 12, 2022
Bagas Mirror&Leech Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive. Based on python-aria-mirror-bot

- [ MAYBE UPDATE & ADD MORE MODULE ] Bagas Mirror&Leech Bot Bagas Mirror&Leech Bot is a multipurpose Telegram Bot written in Python for mirroring file

null 4 Nov 23, 2021
A prometheus exporter for torrent downloader like qbittorrent/transmission/deluge

downloader-exporter A prometheus exporter for qBitorrent/Transmission/Deluge. Get metrics from multiple servers and offers them in a prometheus format

Lei Shi 41 Nov 18, 2022
A Web app to Cross-Seed torrents in Deluge/qBittorrent/Transmission

SeedCross A Web app to Cross-Seed torrents in Deluge/qBittorrent/Transmission based on CrossSeedAutoDL Require Jackett Deluge/qBittorrent/Transmission

ccf2012 76 Dec 19, 2022
ZeroNet - Decentralized websites using Bitcoin crypto and BitTorrent network

ZeroNet Decentralized websites using Bitcoin crypto and the BitTorrent network - https://zeronet.io / onion Why? We believe in open, free, and uncenso

ZeroNet 17.8k Jan 3, 2023
Bittorrent software for cats

NyaaV2 Setting up for development This project uses Python 3.7. There are features used that do not exist in 3.6, so make sure to use Python 3.7. This

null 3k Dec 30, 2022
Send GitHub Issues, PRs or Discussions Updates to Wechat

Send GitHub Issues, PRs or Discussions Updates to Wechat

Hollow Man 2 Jul 12, 2022
Fetch PRs from GitHub and analyze which ones are unmergeable

Set up token Generate a personal access token on GitHub. Add repo permissions. export GH_TOKEN="abcdefg" Pull PR data make Usually, GitHub doesn't h

Stefan van der Walt 1 Nov 5, 2021
Auto updating website that tracks closed & open issues/PRs on scikit-learn/scikit-learn.

Repository Status for Scikit-learn Live webpage Auto updating website that tracks closed & open issues/PRs on scikit-learn/scikit-learn. Running local

Thomas J. Fan 6 Dec 27, 2022
Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine.

Explorer Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine. About The Project Screenshots Supported features Number Feature 1 DH

null 51 Jun 14, 2022
Git Plan - a better workflow for git

git plan A better workflow for git. Git plan inverts the git workflow so that you can write your commit message first, before you start writing code.

Rory Byrne 178 Dec 11, 2022
git-cola: The highly caffeinated Git GUI

git-cola: The highly caffeinated Git GUI git-cola is a powerful Git GUI with a slick and intuitive user interface. Copyright (C) 2007-2020, David Agu

git-cola 2k Dec 30, 2022
git git《Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking》(CVPR 2021) GitHub:git2] 《Masksembles for Uncertainty Estimation》(CVPR 2021) GitHub:git3]

Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking Ning Wang, Wengang Zhou, Jie Wang, and Houqiang Li Accepted by CVPR

NingWang 236 Dec 22, 2022
git-partial-submodule is a command-line script for setting up and working with submodules while enabling them to use git's partial clone and sparse checkout features.

Partial Submodules for Git git-partial-submodule is a command-line script for setting up and working with submodules while enabling them to use git's

Nathan Reed 15 Sep 22, 2022
A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands

PIGIT A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands. For example: git status --short, this project c

Zachary 1 Apr 9, 2022
Dicionario-git-github - Dictionary created to help train new users of Git and GitHub applications

Dicionário ?? Dicionário criado com o objetivo de auxiliar no treinamento de nov

Felippe Rafael 1 Feb 7, 2022