summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* [WebUI] Add test for torrent files containing md5sumsHans Ole Hatzel2021-03-24
| | | | | | | | Some torrent files built with py3createtorrent fail to produce a file listing in the WebUI when uploading them. This made it impossible to add such files. Specifically this is caused by the additional metadata when using py3createtorrent with the `--md5` flag.
* [CI/CD] Fix Tox SSL error in Windows Travis jobCalum Lind2021-03-24
| | | | | The tox sdist-make step failed with SSL: CERTIFICATE_VERIFY_FAILED so fix by install certifi to ensure updated SSL certificates are available.
* [CI/CD] Add Travis windows buildCalum Lind2021-02-23
| | | | | | | | | * Added APPDATA to tox passenv so it is available to common module. * Fixed windows path issue in httpdownloader tests * Skipped torrentmanager test due to the following error from loading a Linux pickled state file with a different line ending. ModuleNotFoundError: No module named 'deluge.core.torrentmanager\r' * Removed appveyor build
* [#3440] Fix httpdownloader reencoding torrent file downloadsCalum Lind2021-02-20
| | | | | | | | | | | | | | Torrent downloads from rutracker responds with the header: Content-Type: application/x-bittorrent; charset=Windows-1251 The problem is that httpdownloader was using the charset to re-encode the downloaded file, corrupting the binary torrent file download. Fixed by only re-encoding text content types, since it is very rare that non-text content types would actually have a non-utf8 codeset and if there is a requirement we would need to determine it on a type by type basis.
* [GTKUI] Fix torrentdetails tab bar position not savingCalum Lind2021-02-20
| | | | | | | | | The GTKUI tests were failing and the saved config for the tab bar position was not being restored. Fixed by moving the setting of notebook.tabs_pos to TorrentDetail init. Replaced more deprecated methods that were showing up in tests.
* [#3441|GTKUI] Add a torrentdetails tabs position menuCalum Lind2021-02-20
| | | | | | | The tabs placement for the torrentdetails notebook might not be to everyone's liking so add a menu item to configure it. Default the position back to top.
* Hide pygame community banner in consoleCalum Lind2021-02-20
| | | | | | | | Notifications plugin uses pygame for sound notifications however pygame show a console message "Hello from the pygame community." whenever starting deluge from console. Refs: https://stackoverflow.com/a/55769463/175584
* [#3337|Core] Fix lt listen_interfaces not comma-separatedCalum Lind2021-02-06
| | | | | | | A typo meant that the interfaces supplied to libtorrent were not comma-separated. Refs: https://github.com/arvidn/libtorrent/blob/RC_1_1/include/libtorrent/string_util.hpp#L70
* [#3325|Core] Fix unable to remove magnet with delete_copies enabledCalum Lind2021-02-05
| | | | | | | | | | | | | | | | Users were encountering the following error while attempting to delete magnet torrents and had the config 'Delete copy of torrent file' enabled. This was due to removing a magnet before the metadata was downloaded and the torrent.filename was still set to None so raises exceptions when string operations are performed with it. File "/usr/lib/python3/dist-packages/deluge/core/torrent.py", line 1317, in delete_torrentfile os.path.join(self.config['torrentfiles_location'], self.filename) ... TypeError: join() argument must be str or bytes, not 'NoneType' Fixed by both setting a default empty string for self.filename and only deleting the torrent file copy if filename is set.
* [WebUI] Add country flag alt/title for accessibilityVasilij Schneidermann2021-01-29
| | | | | This allows viewing the country in textual form by hovering the flag image and displays it if the image couldn't be loaded.
* [Tests] Fix console tests sometimes failing due to hard coded portbendikro2021-01-29
| | | | | | | | | The tests in ConsoleUIWithDaemonBaseTestCase could fail to the hard coded port 58900 being busy. Fix by using the proper port found in self.listen_port Also convert unnecessary use of assertTrue where more appropriate assert functions should be used, such as assertEqual and assertIn
* [WebUI] Fix tracker icon download errorEFS2021-01-29
| | | | | | | | | | Encoutering an error when webui attempts to download tracker icon: Error occurred downloading file from "http://b'acg.rip'/": invalid hostname: b'acg.rip' Fixed by ensuring the request.tracker_name is decoded from bytes before looking up the icon name.
* [Console] Fix setting 'Skip' priority on consoleneeshy2021-01-29
| | | | | | | Selecting priorities 'Low' and 'Skip' on console will both set the actual priority to 'Low'. Fixed typo in previous commit 6655fe67c372
* [#3439] Execute plugin fails to run on Windowsscudre2021-01-29
| | | | Fixed TypeError: a bytes-like object is required, not 'str'
* [Lint] Update pre-commit hook and isort versionsCalum Lind2021-01-24
| | | | | | | | | | | | | * Fixed black hook requiring Py3.6 to installed locally. Will now assume Py3.6+ in installed. * Added isort traceback in pre-commit flake8 hook fails * Updated versions of Black, Prettier and isort * Keep Flake8 at 3.7.9 due to E402 issue: https://gitlab.com/pycqa/flake8/-/issues/638 * New pyproject config for isort v5 with fixes for Python 2 imports. * Fixed travis config to run Python 3.6 for lint run. Replaced the virtualenv with_system_site_packages config with Travis specific Python config value so lint run doesn't attempt to append with_system_site_packages to Python 3.6 command.
* [#3309|GTK] Fix cmp function for None typesCalum Lind2020-04-30
| | | | | | | | | | Comparisons on Python 3 are much stricter resulting in the following error comparing with None: TypeError: '>' not supported between instances of 'NoneType' and 'str' Fix this by getting the type of the other value and getting it's default value.
* [Console] Fix hostlist status lookup errorsCalum Lind2020-04-27
| | | | | | | | | | | | If a host in hostlist failed DNS lookup or other issue it was returning a tuple instead of deferred. Fix this in hostlist by returning a defer.succeed. A race condition with BaseMode was also encountered when update_hosts_status calls update_select_host_popup and ConnectionManager does not have a rows attribute. Fix this by init BaseMode before update_hosts_status and remove already called update_select_host_popup.
* [#3348] Fix TypeError adding peers to torrentsCalum Lind2020-04-25
| | | | | | | | | | | Python3 has stricter type checking and passing a port as string results in libtorrent raising a TypeError. Fixed by casting port to int, along with refactoring to ensure ipv6 is correctly parsing and a useful error is output to user with invalid ip or port details. https://dev.deluge-torrent.org/ticket/3348
* Ctl+Q to quit Deluge GTK without killing daemonNitzan Raz2020-04-25
|
* [Config] Fix loading config with double-quotes in stringCalum Lind2020-04-25
| | | | | | | | | | | | | If a password or other string contained a double-quote then the config would fail to be loaded on startup and reset. This occurred due to fixing a similar issue with curly braces for #3079 in commit 33e9545cd44 and the checking for double-quotes had unforseen consequences. To resolve both these issues the code to check for json objects in config files was simplified and utilises the json module raw_decode method to ensure the extracted string indexes are json objects.
* [Tests] Add pytest markers to tox.inibendikro2020-04-23
| | | | Remove pytest warnings due to unknown markers
* [Tests] Fix tests failing when deluged fails to listenbendikro2020-04-23
| | | | | | | | Commit b32c5d824 changed the logged message in deluge/core/daemon_entry.py when libtorrent fails to listen on the given port, without updating the trigger expression in deluge/tests/common.py:start_core to match the new output. Fix by updating the trigger match expressions to match the new log output
* [Tests] Fix PytestDeprecationWarning from pytestbendikro2020-04-23
| | | | | | | | Accessing pytest.config is deprecated and produces: PytestDeprecationWarning: the pytest.config global is deprecated. Please use request.config or pytest_configure (if you're a pytest plugin) instead. Fix by using a pytest.fixture
* [GTK] Remove PyGIWarning in gtk3/files_tab.pybendikro2020-04-23
| | | | Remove warning: PyGIWarning: Gtk was imported without specifying a version first
* [GTK] Add more width to outgoing ports spinbuttons in network preferencesbendikro2020-04-23
| | | | | The spinbuttons would sometimes be truncated. Fix by increasing the width
* [GTK] Destroy the dialog before running the callbackbendikro2020-04-23
| | | | | | | | Currently, the dialog window is displayed until after the callback has returned. The result is that if a new dialog is opened from the callback, the first dialog is still displayed until the new dialog is destroyed. Fix by destroying the dialog before running the callback.
* [GTK] Fix showing correct error on libtorrent import errorbendikro2020-04-23
| | | | | | | | | | The exception string "No module named libtorrent" was changed to "No module named 'libtorrent'" in python 3.3, which results in a "unknown Import Error" message being displayed instead of the message meant for libtorrent import error. Change to raising LibtorrentImportError in _libtorrent.py and catch this error to display libtorrent specific import errors.
* Fix warning related to gettextneeshy2020-04-23
|
* Fix template config.ui naming in create_plugin script.Alex Knaust2020-04-20
|
* [Tests] Fix tox, pytest and travis issuesCalum Lind2020-04-12
| | | | | | | | | | * Error occurring with Pytest 5.4 so pin to below that version. * Fix minor issues with Travis config. * Use full command-switches for pytest in tox config. * Remove pin for pip as issue with pip-wheel-metadata was fixed in 19.3 * Remove tox-venv as causing issues of incompatible packages installed. The latest versions of the virtualenv package should handle these duties.
* [Console] Fix AttributeError setting config valuesCalum Lind2019-11-28
| | | | | | | | | | | | | | | | | | | | | GitHub user JohnDoee reported that config settings are not decoded correctly, this error can be reproduced with a command like deluge-console -c /config/ "config --set download_location /downloads" > AttributeError: 'str' object has no attribute 'decode' The tokenize code was using 'string-escape' to decode strings but there is no direct replacement in Python 3 but also unnecessary. However the tokenize code is complex and buggy and not really suitable for the task of evaluating config values. A better alternative is to evaluate the config values using the json decoder with some additional logic to allow for previous syntax usage, such as parentheses. Added a comprehensive set of tests to check for potential config values passed in from command line.
* [Logging] Fix findCaller with unknown sourceminus2019-11-19
| | | | | In case no source was found, a 3-tuple was returned instead of a 4-tuple in Python 3
* [Logging] Fix Python 3.8 compatibilityminus2019-11-19
| | | | | | | Deluge's logger class extends Python's `logging.Logger`. Since Python 3.8, it takes an additional argument `stacklevel`. The implementation in Deluge does not support that. Work around the problem by ignoring additional arguments.
* [Tests] Skip buggy pytest 5.2.3Calum Lind2019-11-15
| | | | | | Plugins test fails due to: https://github.com/pytest-dev/pytest/issues/6194
* [Lint] Fix Black and Flake8 issuesCalum Lind2019-11-13
| | | | | | | For a single element unpack black now also encloses with parentheses to make it clearer: https://github.com/psf/black/issues/1108 Fix flake8 warnings
* [Core] Fix potential "dictionary changed size during iteration" on shutdownAnders Jensen2019-11-12
|
* [Docs] Fix changlog symlink and markdown issueCalum Lind2019-11-12
|
* [Docs] Update dev environment instructionst0obz2019-11-12
| | | | | | I'm going through these instructions on a clean Ubuntu 19.04 VM These are the changes I needed to make to get Deluge to build/run
* [#3298|Core] Fix pickle loading non-ascii state errorCalum Lind2019-11-12
| | | | | | | | | | | | When trying to load a torrents.state from version 1.3 users were encountering the following error: UnicodeDecodeError: 'ascii' codec can't decode byte This was due to the way that Python 2 was pickling state with torrent filenames that contained non-ascii characters and Python 3 was unpickling the state using ascii encoding and failing. The fix is to specify utf-8 encoding when loading torrents.state.
* [GTK] Remove orphaned codeCalum Lind2019-10-31
| | | | | Changes were made to sidebar theming in commit 5a6f202 and this code was forgotten to be removed.
* [Docs] Typo corrections in testing.mdChristopher Beard2019-10-31
|
* [GTK] Fix typo in preferences language labelPere Orga2019-10-31
|
* Fix privilege dropping when setting process ownershipJack O'Sullivan2019-10-31
| | | | | `os.setgid()` should be called to set the GID, and it should be called before `os.setuid()` to prevent reinstatement of privileges.
* [GTK] Add missing translation markupCalum Lind2019-10-31
| | | | Found some text needing marked for translation.
* [GTK] Fix Status tab download speed and uploadedCalum Lind2019-10-31
| | | | | Previous work on the status tab caused these labels to not be in the correct position so this commit swaps them back..
* [Label] Fix Options/Add windows not reopeningDjLegolas2019-06-25
| | | | | | | | When a user clicked ESC key or X button, the Options and Add windows didn't open again. This happened because the windows were closed and not hidden, which deleted the instance of those windows. This fix changed the behavior of the close action to 'hide'.
* [WebUI] Fix class-header for Deluge.EditTrackersWindowDjLegolas2019-06-25
|
* [Notifications] Fix unhandled TypeErrors on Python 3Calum Lind2019-06-25
| | | | | | | - Notify requires GLib.Variant for set_hint - Twisted defer.fail only accepts Exceptions. Fixes: #3267
* [Common] Fix creation of pidfile via command optionDjLegolas2019-06-25
| | | | | | Python 3 raises a TypeError for binary file mode and writing text string. Fixes: #3278
* [Core] Fix for peer.client UnicodeDecodeErrorCalum Lind2019-06-24
| | | | | | | | | | | Some users have been reporting unhandled UnicodeDecodeErrors and the traces show it occuring in the call to `peer.client`. Although unable to replicate it seems prudent to put a try..except around the call to ensure it does not break the UIs. Refs: https://github.com/arvidn/libtorrent/issues/3858 Closes: #3279