summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Merge branch 'release-2.1.1'deluge-2.1.1masterCalum Lind2022-07-10
|\
| * Release 2.1.1Calum Lind2022-07-10
| |
| * [Docs] Update changelog and install detailsCalum Lind2022-07-08
| |
| * Fix parsing magnet with tracker tiersCalum Lind2022-07-08
| | | | | | | | | | | | | | | | | | Magnets with trackers specified with tr.x param were not being unquoted so unusable raw tracker string was being set. Fixed by unquoting tracker and adding test See-also: https://dev.deluge-torrent.org/ticket/2716
| * Fix missing trackers adding magnetsCalum Lind2022-07-05
| | | | | | | | | | | | | | | | | | | | | | The changes to remove deprecated lt methods didn't account for magnet trackers so magnets are missing trackers when added. Previously the addition of trackers was handled by libtorrent when a url was passed in add_torrent_params. The url parameter is deprecated so instead we need to add both the info_hash and trackers. Trac: https://dev.deluge-torrent.org/ticket/3530
| * [CI] Bump ifaddr to 0.2.0Calum Lind2022-06-30
| | | | | | | | | | With release of ifaddr 0.2.0 no longer need to pin to github commit to resolve Windows decoding issues.
| * [CI] Fix failing Windows Python 3.10 testsCalum Lind2022-06-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A recent dependency change caused the tests running on GitHub Actions under Python 3.10.5 on Windows to fail when starting pytest run: ... INTERNALERROR> File "<frozen importlib._bootstrap>", line 123, in acquire INTERNALERROR> KeyError: xxxx The cause seems to have been a newer version of chardet package released recently. * Fixed by pinning chardet to v4 * Also pin Windows version to 2019 to match packaging workflow See-also: https://github.com/deluge-torrent/deluge/actions/runs/2578427588 Issue: https://github.com/chardet/chardet/issues/265
| * back to developmentdeluge-2.1.1.dev0Calum Lind2022-06-28
| |
| * Release 2.1.0Calum Lind2022-06-28
| |
* | Release 2.1.0deluge-2.1.0Calum Lind2022-06-28
|/
* [Docs] Fix ReadTheDocs theme rendering issueCalum Lind2022-06-28
| | | | | | | | | | Fix rendering issues in ReadTheDocs by specifying latest version of sphinx-rtd-theme. Normally not an issue to install this latest dependency from doc/requirement.txt but RTD installs in the env an older version (<0.5) before running requirements file install thus sphinx-rtd-theme is not upgraded unless a version is specified. See-also: https://github.com/readthedocs/sphinx_rtd_theme/issues/1115
* [Core] Fix typo in AUTH_LEVEL_MAPPINGN91992022-06-19
| | | | Closes: https://github.com/deluge-torrent/deluge/pull/387
* Update Changelog entriesCalum Lind2022-06-19
|
* [CD] Cleanup pip cache in Win buildsCalum Lind2022-06-13
| | | | | | - Use the more reliable setup-python cache - Move the pip install to GTK install step for consistency - Don't update pip to ensure consistent version
* [Packaging] Pinned Pyinstaller to v4.10 and readme updateMartin Hertz2022-06-13
| | | | | | | | | | | | | | | | | | | 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` Added `--no-index` to ensure pip doesn't install from Pypi Closes: https://github.com/deluge-torrent/deluge/pull/386
* [Packaging] Bump Win dependenciesCalum Lind2022-06-12
| | | | | * Update Twisted and libtorrent to latest releases * Update to v3 github actions that now use node 16
* [Web] Accept charset in content-type for json messagesibizaman2022-06-12
| | | | | Trac: https://dev.deluge-torrent.org/ticket/3521 Closes: https://github.com/deluge-torrent/deluge/pull/385
* [WebUI] Fixed 'Complete Seen' and 'Completed' sortingMartin Hertz2022-05-17
| | | | Closes: https://github.com/deluge-torrent/deluge/pull/384
* [Notifications] Fix UnicodeEncodeError upon non-ascii torrent nameMartin Hertz2022-05-17
| | | | | | | | | smtplib.SMTP.sendmail expects 'msg' in string of ascii chars or bytes, where the former gets encoded to bytes through ascii codec, hence raising said error, but now fixed by encoding to bytes ourself through utf-8 Closes: https://github.com/deluge-torrent/deluge/pull/383
* [Core] Refactor prefetch_metadata for more clarityChase Sterling2022-05-17
| | | | | | | | | | | | | | | | | | | | | | | | Just trying to clean up some of the more complicated callback logic. Notable changes: * The test was awaiting a DeferredList. By default that will eat exceptions and just add them to the result list (including test assertion exceptions.) Added fireOnOneErrback=True to make sure that wasn't happening. * Moved the logic for multiple calls to await the same response into torrentmanager from core, so no matter where the prefetch is called from it will wait for the original call. * Implemented the multiple calls with an explicit queue of waiting callbacks, rather than a callback callback chain. * Moved to one inline async function rather than split into a main and callback after alert function. * Added some more type hints to the stuff I changed. Adjusted test since we are using prefetch as an async function now we have to schedule the alert to come after we start awaiting the prefetch call. Closes: https://github.com/deluge-torrent/deluge/pull/368
* [Console] Fix curses.init_pair raise ValueError on Py3.10Calum Lind2022-05-01
| | | | | | | Fix ValueError crash for console users with Python 3.10 Trac: https://dev.deluge-torrent.org/ticket/3518 See-also: https://docs.python.org/3/whatsnew/3.10.html#curses
* [Core] Cleanup temp files in add_torrent_urlCalum Lind2022-05-01
| | | | | | | | | | | | | Temporary torrent files are not deleted by add_torrent_url. Not as big a problem as with tracker icons pages but should be removed after use. Fixed by updating the method to use async and a try..finally cleanup block. Perhaps could be refactored to not require temporary files and instead store the downloaded torrent as object for passing to add_torrent_file. Trac: https://dev.deluge-torrent.org/ticket/3167
* [TrackerIcons] Cleanup tmp files created by downloading pageCalum Lind2022-05-01
| | | | | | | | | | | | | Temporary files created while download host html page are no cleaned up if the download fails. Fixed by adding a 'finally' step in the callback chain to delete any created temporary files. Added tests to ensure the temporary files are deleted, using a fixture that creates a known filename for the test. Trac: https://dev.deluge-torrent.org/ticket/3167
* [TrackerIcon] Use httpdownloader page redirect handlingCalum Lind2022-05-01
| | | | | | | | | | | User reported infinite redirecting when attempting to fetch tracker icon. Fixed by allowing httpdownloader and RedirectAgent to handle page redirects including catching infinite redirects Trac: https://dev.deluge-torrent.org/ticket/3167 See-also: https://github.com/twisted/twisted/blob/5c24e9/src/twisted/web/client.py#L168
* [Tests] Remove winreg interface name checkCalum Lind2022-05-01
| | | | | | | GitHub CI tests on Windows failing for get_windows_interface_name so remove the fragile tests since not a requirement to be this specific with testing whether name exists for these methods relying on standard lib or 3rd-party libs.
* [AutoAdd] Verify torrent decode and errors cleanly if invaliddeaddrop92022-05-01
| | | | | | | | Watch folder was disabled in AutoAdd and torrent filename is unchanged if an invalid torrent was added. Trac: https://dev.deluge-torrent.org/ticket/3515 Closes: https://github.com/deluge-torrent/deluge/pull/381
* [lint] update black packageDjLegolas2022-05-01
| | | | | | | | Previous version (22.1.0) didn't support `click` version 8.1.0. Updating to 22.3.0 to resolve. See: https://github.com/psf/black/issues/2964 Closes: https://github.com/deluge-torrent/deluge/pull/382
* [CI] Use setup-python action pip cacheCalum Lind2022-03-02
| | | | | Replace custom pip cache that didn't work correctly on Windows with option to use pip cache in setup-python action
* [Core] Fixed KeyError in sessionproxy after torrent deleteDjLegolas2022-03-02
| | | | | | | | | | | When several torrents are being removed from session, an exception was being raised in a callback function `on_status` with the `torrent_id` of one (or more) of the removed torrents. Now we will catch when the torrent does not exist anymore and print a debug log about it. Closes: https://dev.deluge-torrent.org/ticket/3498 Closes: https://github.com/deluge-torrent/deluge/pull/341
* [CI] Use libtorrent pypi installDjLegolas2022-03-02
| | | | | | | | | | Up until now, the linux installation source of libtorrent was launchpad, because there was no other source, and we wanted a debug version of lt. With pypi wheel versions now available use lt in the requirements.txt file. Closes: https://github.com/deluge-torrent/deluge/pull/364
* [CI] Changed tested python version to 3.7 and 3.10DjLegolas2022-03-02
| | | | | | We cannot add python 3.6 because there is no precompiled version of it to used. Therefor, will be using 3.7 as the minimum version in CI. In addition, dropped version limits from pytest.
* [Tests] Remove reference to Twisted TrialCalum Lind2022-03-02
| | | | | With the move to pytest remove remainings documentation or comments that refer to Trial.
* [Tests] Skip SNI icon testCalum Lind2022-03-02
| | | | | | | The SNI icon test is failing due to seo.com removing their favicon. A new test to replace it would be needed to check SNI support. Ideally new tests would not rely on external sites.
* [Console] Swap j and k key's behavior to fit vim modemarik2022-03-02
| | | | | | | | | There is a problem in the Deluge's Console UI. This UI supports the j and k keys as up and down, but for some reason they are inverted. This commit inverts back the behaviour of j and k in several places. Resolves: https://dev.deluge-torrent.org/ticket/3483 Closes: https://github.com/deluge-torrent/deluge/pull/377
* [GTK] Remove unneeded glade icon activatable False propertyCalum Lind2022-03-02
| | | | | | This propery cause issue with added extra space in the entries, likely a minor GTK bug and property being leftover from GTK2 migration. The default is True and should have no effect since no icon is shown.
* [GTK] Refactor Connection Manager Add Host dialogCalum Lind2022-03-02
| | | | Replace table with grid and use single column for entries.
* [GTK] Fix obscured port number in Connection Manager Add HostCalum Lind2022-03-02
| | | | | | | | | | | | | | A visual problem with the port spin button meant that the port number was not fully visible in the entry field. The problem is related to icon activatable property value set to False when default is True. Although no icon is used is creates a left-hand 5px space in the entry which narrows the available text space and the entry does not expand to account for this. Fixed by removing primary_icon_activatable and secondary_icon_activatable properies so that default values of True is used.
* [Packaging] Add systemd user servicesHugo Osvaldo Barrera2022-03-02
| | | | | | | | | | | | | | | | | Files should be installed into /usr/lib/systemd/user/ Unlike the existing service file, this one configures deluge to run as a desktop session user. The difference between the services files is the use of multi-user.target in system service which does not exist for user services so requires default.target. Including the Slice indicates to the service manager that this is a background service. This can be used to handle OOM situations, or prioritising foreground processes. There's no equivalent for system services. Refs: https://dev.deluge-torrent.org/ticket/2034 Closes: https://github.com/deluge-torrent/deluge/pull/380
* [Hostlist] Support IPv6 in host liststbkizle2022-02-18
| | | | | | | socket.gethostbyname does not support IPv6 name resolution, and getaddrinfo() should be used instead for IPv4/v6 dual stack support. Closes: https://github.com/deluge-torrent/deluge/pull/376
* [Console] Fix torrent details status errorCalum Lind2022-02-17
| | | | | | | | The torrent status num_peers and num_seeds was replaced for session status keys by accident as part of replacing deprecated session keys so revert those changes Ref: 2bd095e5bf
* [Core] Fix Twisted fromCoroutine AttrErrorCalum Lind2022-02-16
| | | | | | | | | | | | | | | Users with older versions of Twisted <= 21.2 were encoutering the following error: File "/home/calum/projects/deluge/deluge/decorators.py", line 191, in activate d = defer.Deferred.fromCoroutine(self.coro) builtins.AttributeError: type object 'Deferred' has no attribute 'fromCoroutine' Fixed by falling back to ensureDeferred since fromCoroutine was introduced in Twisted 21.2 as a saner name for handling of coroutines. Ref: https://twistedmatrix.com/trac/ticket/9825
* [Docs] Add permanent discord invite linkCalum Lind2022-02-15
| | | | | Default discord invites expire after 7 days so replace with non-expiring invite
* Automatically refresh and expire the torrent status cache.Chase Sterling2022-02-15
| | | | | | | | | | Stop at ratio was not working when no clients were connected, because it was using a cached version of the torrent status, and never calling for a refresh. When a client connected, it called for the refresh and started working properly. Closes: https://dev.deluge-torrent.org/ticket/3497 Closes: https://github.com/deluge-torrent/deluge/pull/369
* [Docs] Remove custom mock to fix autodoc typing errorsCalum Lind2022-02-15
| | | | | | | | | | | | | | | | | | If a libtorrent return type was specified e.g. def get_lt_status(self) -> 'lt.torrent_status' Even as a string autodoc_typehints module would raise and error: Handler <function process_docstring at 0x7f6c16c8ec10> for event 'autodoc-process-docstring' threw an exception (exception: getattr(): attribute name must be string) This was a result of using a custom mock in Sphinx autodoc config and this Mock object name or qualname returns an object instead of str. Testing with putting modules in autodoc_mock_imports again showed no issues so removing custom mock Ref: https://github.com/tox-dev/sphinx-autodoc-typehints/issues/220
* [WebUI] Move HTML entity encoding to clientCalum Lind2022-02-14
| | | | | | | | | | | | | | | | | | | We should not be mangling the torrent data in the JSON API since this can have unintended consquences with names and filepaths that can be edited. If we escape those symbols in the JSON API then the data no longer matches that stored by core. Therefore shift the encoding to the client and consider dealing separetely with these entities when the user first adds a torrent. * Created a modified htmlEncode in Deluge Formatter based on extjs method that also encodes single quotes. * Removed renderers in ListViews since only templates specified via tpl are used and any render attribute specified was a no-op. * Removed old buggy escapeHtml Resolves: https://dev.deluge-torrent.org/ticket/3459 Ref: https://docs.sencha.com/extjs/6.5.3/modern/src/String.js.html#Ext.String-method-htmlEncode Ref: https://docs.sencha.com/extjs/3.4.0/source/Format.html#Ext-util-Format-method-htmlEncode
* [WebUI] Fix encoding HTML entities for torrent attributesCalum Lind2022-02-14
| | | | | | | | | | Ensure all torrent attributes that might contain malicious HTML entities are encoded. By allowing HTML entities to be rendered it enable malicious torrent files to perform XSS attacks. Resolves: https://dev.deluge-torrent.org/ticket/3459
* [GTK] Increase connection mgr default heightCalum Lind2022-02-13
| | | | | | | | | Could not see more than one host when connection manager opens so need to scroll or resize window Increased default height to now show three hosts when first opens Closes: https://dev.deluge-torrent.org/ticket/3431
* [GTK] Fix ui logic/bug of checked move_completedHenry Kwan2022-02-13
| | | | | | | | | | | | if move_completed is checked/True, options should be updated, not the other way round The path was updated the first time the move_completed option is selected and then ignored on further updated to the path. Fixed by checking instead if the path has changed. Closes: https://github.com/deluge-torrent/deluge/pull/374
* [Lint] Update linter version and fix issuesCalum Lind2022-02-13
| | | | | | | | | | | Notable changes: * Prettier >=2.3 with more consistent js assignments * Black now formats docstrings * Added isort to list of autoformaters * Update flake8 config for v4 Ref: https://prettier.io/blog/2021/05/09/2.3.0.html
* [Core] Stopped using libtorrent deprecated functionsDjLegolas2022-02-13
| | | | | | | | | | | | | | | | | As part of the process of adding support to LT 2.0, we should stop using all deprecated function, as some (if not all) were removed. For this process, we should use the LT 1.2 upgrade (guide)[1]. The change includes: * stop using file entries directly * start using the torrent handle's set/unset flags * stop using url key in add_torrent_params (for magnet) * stop accessing resume_data from save_resume_data_alert * stop using deprecated session status keys in UI [1] https://libtorrent.org/upgrade_to_1.2-ref.html Closes: https://dev.deluge-torrent.org/ticket/3499 Closes: https://github.com/deluge-torrent/deluge/pull/342