summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [GtkUI] Reword preferences to prefer dark themeHEADdevelopCalum Lind2024-02-19
| | | | | | The GTK option for dark theme only provides a preference to use the dark theme, there is not a similar option for light theme so the settings should only refer to 'prefer dark theme' and whether it's on or off.
* [WebUI] Refactor changing themeCalum Lind2024-02-19
| | | | | | | Simplify searching for themes and ensure theme is ordered last. Ideally themes would be set client-side but seems to be quite tricky to accomplish with ExtJS.
* [GtkUI] Add a way to change themesDjLegolas2024-02-19
| | | | | | | | Currently, the only way to change the themes is by manually set a value in the command line or set it as env variable. Closes: https://dev.deluge-torrent.org/ticket/3536 Closes: https://github.com/deluge-torrent/deluge/pull/392
* [WebUI] Add a way to change themesDjLegolas2024-02-19
| | | | | | | Currently, the only way to change the themes is by manually set a value in the `web.conf` file itself. Closes: https://dev.deluge-torrent.org/ticket/3536
* [WebUI] Fix tracker icon to fit within tracker column rowsChris Ross2024-01-21
| | | | | | | | | | | For me at least, Safari on Mac OS X, the tracker icon significantly overflows in the Tracker column of the torrent list. (It does show the correct size in the Trackers filter, though. Different CSS.) This change causes it to constrain down to the height of the column and display correctly. Closes: https://github.com/deluge-torrent/deluge/pull/440
* [WebUI] Fix progress divide by 0 error with empty dirfreddy26592024-01-21
| | | | | | | | | | | | | | If a dir exists with no contents then the following error occurred: ``` Traceback (most recent call last): ... File "/usr/lib/python3.10/site-packages/deluge/ui/web/json_api.py", line 608, in _on_got_files dirinfo['progress'] = sum(progresses) / dirinfo['size'] * 100 builtins.ZeroDivisionError: float division by zero ``` Closes: https://github.com/deluge-torrent/deluge/pull/439
* [Docs] Bump sphinx version requirementsCalum Lind2024-01-21
| | | | | There are still warnings that need to be resolved but the build is passing.
* [Alerts] Fix alert handler segfault on lt.pop_alertsCalum Lind2024-01-21
| | | | | | | | | | | | | | | We cannot handle an alert after calling lt.pop_alerts for a subsequent time since the alert objects are invalidated and with cause a segfault. To resolve this issue add a timeout to the handler calls and wait in the alert thread for either the handlers to be called or eventually be cancelled before getting more alerts. This is still not an ideal solution and might leave to backlog of alerts but this is better than crashing the application. Perhaps the timeout could be tweaked to be shorter for certain alert types such as stats. Related: https://github.com/arvidn/libtorrent/issues/6437
* [GTK3] Fix changing torrent ownershipCalum Lind2023-12-02
| | | | | | | | | | | | The change ownership menu item was broken due to Gtk deprecation changes in commit #bcaaeac. Fixed by correctly setting the RadioMenuItem group Refactored to simplify the code Removed dead or unneeded code Fixes: https://dev.deluge-torrent.org/ticket/3610
* [Core] Remove usage of deprecated torrent status.pausedCalum Lind2023-12-02
| | | | | | | | | | Noticed mismatch with current lt docs and found usage of deprecated status.paused. The actual check here is not required we should just attempt to pause the torrent. Issue: https://dev.deluge-torrent.org/ticket/3499
* [Tests] Refactor parse_human_size testCalum Lind2023-11-30
|
* [Common] Fix order of size_units for parse_human_sizeCalum Lind2023-11-27
| | | | The previous commit changed the order of the size
* [Common] Add extra size units suffixes for user inputArkadiusz Bulski2023-11-27
| | | | | | Minor updates to docstrings Closes: https://github.com/deluge-torrent/deluge/pull/437
* [Tests] Fix unhandled ProcessTerminated trying to kill daemon in cleanCalum Lind2023-11-27
| | | | | | | | | | The GitHub CI tests on Linux were failing due to ProcessTerminated > await daemon.kill() E twisted.internet.error.ProcessTerminated: A process has ended with a probable error condition: process ended by signal 6. Added a try..except in daemon as a quick solution but might need to investigate the ProcessOutputHandler.kill method.
* [Core] Refactor Alertmanager to retry unhandled alertsCalum Lind2023-11-27
| | | | | | | | | | | | | | | We are currently creating a copy of each alert to avoid segfaults when the next pop_alerts invalidates the lt alert objects we are holding for handler callbacks. However these alert copies are not deep enough since need to also resolve the alert object methods e.g. message() therefore it is still possible to result in lt segfaults. The workaround is to check for any handlers not called, give them some more time and eventually discard if still not handled. Ref: https://github.com/arvidn/libtorrent/issues/6437
* [Core] Call wait_for_alert in a threadDjLegolas2023-11-27
| | | | | | | | This spawns a thread in alertmanager to call wait_for_alert in a thread. This reduces latency to deluge responding to events. And removes all `hasattr` checks in Component Closes: https://github.com/deluge-torrent/deluge/pull/221
* [CI] Fix windows packaging buildCalum Lind2023-11-24
| | | | | | | | | With recent update to pyinstaller 6.0 the libraries are now placed in an `_internal` folder within the bundle. This has resulted in the failure to create copies of libssl. However after examining the new _internal dir it appears that the x64 lib are now created so this step is no longer required.
* [UI][Common] Add daemon version checkDjLegolas2023-11-20
| | | | | | | | | For new UI features to be added, one should make sure the backend daemon is supported and add fallback in case it doesn't. Here we add the ability to get the daemon version from the `Client` class and also check the version against a desired version. Closes: https://github.com/deluge-torrent/deluge/pull/427
* [Core] Support creating v2 torrentsRadu Carpa2023-11-20
| | | | | | | | | | | | | | | | | | | | | | Add support for v2 torrents in create_torrent, but keep the old default of only adding the v1 metadata. Unify the single-file and directory cases to avoid code duplication. V2 torrents require files to be piece-aligned. The same for hybrid v1/v2 ones. To handle both cases of piece-aligned and non-aligned files, always read the files in piece-aligned chunks. Re-slice the buffer if needed (for v1-only multi-file torrents). Also, had to adapt to progress event. It now depends on the number of bytes hashed rather than the number of pieces. To avoid sending and excessive amount of event when handling a directory with many small files, add a mechanism to limit event period at 1 per piece_length. Closes: https://github.com/deluge-torrent/deluge/pull/430
* [Core] Make create_torrent return a deferredRadu Carpa2023-11-20
| | | | | This allows to create a torrent file on the remote server and get its content in one call.
* [Core] Don't always write create_torrent metafile to diskRadu Carpa2023-11-20
| | | | | | | | | If target=None and add_to_session is True, the torrent will be directly added to the session without writing the torrent file to disk. This will allow to programmatically control deluge via RPC without creating .torrent files all over the place. Also, make most create_torrent parameters optional.
* [Lint] Fixup filesCalum Lind2023-11-19
|
* [Tests] Fix console tests stalling by pinning pytest to 7.4.2Calum Lind2023-11-19
| | | | | | | | | | Tests were stalling in deluge_ui_entry with pytest 7.4.3 likely due to changes in the way it handles stderr but it is not clean the extact issue. For now we will pin the pytest version and look to fix the issue later. Reference: https://docs.pytest.org/en/stable/changelog.html#pytest-7-4-3-2023-10-24
* [UI] Further compress Deluge iconsCalum Lind2023-11-19
|
* [Scripts] Replace icon bash script with python versionCalum Lind2023-11-19
| | | | | | | Preferable to be working with Python scripts for easier development. This is direct port of the original bash script with the slight modification to also use pngquant to reduce file size further.
* [Stats] Fix creating test artifacts in tmp not pwdCalum Lind2023-11-19
|
* [UI] Minor improvements to create_deluge_pngsCalum Lind2023-11-19
| | | | | | | | Change the default compression tool to oxipng since it produces smaller files faster than zopfli. Add the ECT tool as an option to get maximum compression but is quite slow to complete.
* [UI] Losslessly compress PNG imagesAnthony Ryan2023-11-19
| | | | | | | | | | | Using Efficient-Compression-Tool, we managed to reduge image sizes by Saved 9.45KB out of 241.88KB (3.9065%) without changing visual appearence. It's a small improvement, but we get something for nothing and that's nice. ect -keep --allfilters-b --pal_sort=120 -30060 -recurse --mt-file ./ Closes: https://github.com/deluge-torrent/deluge/pull/405
* [i18n] Update translations from launchpadCalum Lind2023-11-13
|
* Fix tweaking logging levelsSébastien Luttringer2023-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | When you set a config directory path (-c) on the command line, and only when, a file named logging.conf is read to set fine grained log levels. This allows to have per module/plugin log levels. A simple logging.conf could be: -<8 ------------------- deluge:info deluge.plugin.foo:debug ----------------------- The file is parsed and the log levels are set in the deluge.log.tweak_logging_levels. This function set the appropriate logger to the desired level. Despite the log level is changed, log levels less than ERROR are still not logged. The reason is that the log level check is done twice, in the logging.Logger class and in the logging.Handler class. The fix is to not set the logging level in the Handler in deluge.log.setup_logger and let only the logging.Logger check the level. Closes: https://github.com/deluge-torrent/deluge/pull/428
* i18n: Fix language wordMyrmecophaga tridactyla2023-09-18
| | | | Closes: https://github.com/deluge-torrent/deluge/pull/429
* [CI] Bump Pyinstaller version for Windows packagingCalum Lind2023-09-18
| | | | | | | | | Pyinstaller was pinned due to problems with v5 but these should now be resolved with latest version. Bump Twisted to latest minor version Closes: https://github.com/deluge-torrent/deluge/pull/435
* [CI/CD] Fix Pillow packaging build errorsCalum Lind2023-09-18
| | | | | | | Pillow have dropped 32-bit wheels from v10 onwards so force install of older v9 wheels since we don't want to build from src. Refs: https://github.com/python-pillow/Pillow/issues/6941#issuecomment-1604058002
* [GTKUI] Fix cairo crashes by not storing current contextCalum Lind2023-09-18
| | | | | | | | | | | | | | | Windows users have reported Deluge crashes when resizing the window with Piecesbar or Stats plugins enabled: Expression: CAIRO_REFERENCE_COUNT_HAS_REFERENCE(&surface->ref_count) This is similar to issues fixed in GNU Radio which is a problem due to storing the current cairo context which is then being destroyed and recreated within GTK causing a reference count error Fixes: https://dev.deluge-torrent.org/ticket/3339 Refs: https://github.com/gnuradio/gnuradio/pull/6352 Closes: https://github.com/deluge-torrent/deluge/pull/431
* [Docs] Fix readthedocs buildsCalum Lind2023-09-18
| | | | | | | Requires using updated configuration with git unshallow so that version can be identified from git tags. Closes: https://github.com/deluge-torrent/deluge/pull/434
* [CI] Fix packaging errors with Python 3.7Calum Lind2023-09-18
| | | | | | | | | | | | | The latest Pillow 10 does not support Py3.7 therefore wheels are no longer available and we need to specify previous major version. Older versions of setuptools do not correctly determine the Twisted requirement for zope.interface>5 on Python 3.7 so ensure latest installed. For the CD builds we don't want any surprises so keep the setuptools version pinned. Refs: https://pillow.readthedocs.io/en/stable/installation.html Closes: https://github.com/deluge-torrent/deluge/pull/433
* [CI] Remove chardet version constraintCalum Lind2023-09-18
| | | | | The version was pinned due to issues with Python 3.10.5 in CI but with latest versions of Python 3.10 this no longer seems to be an issue.
* [UI][Common] Add support for BitTorrent V2 file treeDjLegolas2023-08-27
| | | | | | | | 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 Closes: https://github.com/deluge-torrent/deluge/pull/404
* [Packaging] Fix NSIS Uninstaller Not Removing File\Folderdoadin2023-05-30
| | | | | | | | | | | | | | | | CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Website.lnk" "$INSTDIR\homepage.url" gets made in the installer but the uninstaller was looking for Delete "$SMPROGRAMS\$StartMenuFolder\Deluge Website.lnk" therefore this file was being left behind and since the folder was not empty $StartMenuFolder\Deluge was being left behinde as well. Closes: https://github.com/deluge-torrent/deluge/pull/426
* [CI] Bump image and action versionsCalum Lind2023-05-30
| | | | | Updated the core dump storage to be enabled only when needed. Fixed missing catchsegv on Ubuntu 22.04 by installing glibc-tools
* [Tests] Only pin libtorrent for testsCalum Lind2023-05-30
| | | | Bump versions for Windows packaging
* [Core] Fix bug when emiting event in EventManagerbendikro2023-05-29
| | | | | | | | | | | In some cases, when emiting events with EventManager.emit_event(), the underlying dictionary of interested sessions can change during iteration, causing: RuntimeError: dictionary changed size during iteration Fix by iterating over a copy of the dictionary. Closes: https://dev.deluge-torrent.org/ticket/3351 Closes: https://github.com/deluge-torrent/deluge/pull/425
* [GTKUI] Add torrent dialog incorrectly removes dirbendikro2023-05-29
| | | | | | | | | | | | When adding a torrent in the add torrents dialog, containing only a single directory with a single file inside, the directory is not included as a prefix to the filename. The prefix is added only if there are multiple files inside the directory. Fix by adding the prefix also when there is only one file inside a dir. Closes: https://dev.deluge-torrent.org/ticket/3602 Closes: https://github.com/deluge-torrent/deluge/pull/424
* [Tests] Ignore pytest temp dirCalum Lind2023-05-29
|
* [Tests] Pin libtorrent version to 2.0.7Calum Lind2023-05-29
| | | | | | | With latest libtorrent 2.0.9 testing are erroring out so pin to older working version. Ref: https://dev.deluge-torrent.org/ticket/3603
* [Tests] Fix waiting for lt alert state changeCalum Lind2023-05-29
| | | | | Tests are fragile when waiting for lt alert so allow incrementally waiting for status change, along with a timeout.
* [Common] Replace pkg_resources with importlib for resource path findingCalum Lind2023-05-29
| | | | | | | | | | | | | | | | | | With an existing Deluge package installed on the system errors were occuring trying to start a development instance in virtualenv. Fixed by replacing usage of deprecated pkg_resource for finding non-python data files. Includes fallback for Python 3.7/3.8 but drops Python 3.6 support. The plugins are still using pkg_resources since they are distributed as eggs and importlib extracts those data files differently to pkg_resources so requires a different solution, either as a file stream or manually cached when plugins are installed. Closes: https://github.com/deluge-torrent/deluge/pull/403 Co-authored-by: DjLegolas <djlegolas@protonmail.com>
* [GTKUI] Enable appindicator support by defaultUnit 1932023-04-23
| | | | | | | | | | | | | On GNOME, I don't believe any tray icon or indicator support is enabled by default, but one can easily install an extension for indicators whereas I'm not sure about tray icons, but the 'top icons' extension I believe has had a flaky history. I'm not entirely sure how KDE handles things, but out of the box it too has indicator support and I believe that is preferred with the move to Wayland. In Xfce, the tray icon area is called "Status tray" and has support for both tray icons and indicators. Closes: https://github.com/deluge-torrent/deluge/pull/318
* [GTK3] Fix missing AppIndicator option in PreferencesCalum Lind2023-04-23
| | | | | | | | Issue with legacy tray icon being used despite AyatanaAppIndicator3 installed. The problem is due to option to use AppIndicator not being shown in Preferences. Fixes: https://dev.deluge-torrent.org/ticket/3598
* [WebUI] use rational maxValueXuefer2023-04-23
| | | | | Signed-off-by: Xuefer <xuefer@gmail.com> Closes: https://github.com/deluge-torrent/deluge/pull/422