Commit Graph

2306 Commits

Author SHA1 Message Date
Chocobo1
0796f96ee4 Merge pull request #22482 from Chocobo1/process_env
Refine environment variable scope
2025-03-30 15:12:10 +08:00
Chocobo1
5a716a40fb Simplify proxy related code 2025-03-28 18:39:25 +08:00
Chocobo1
943e403241 Refine environment variable scope
Previously the proxy environment variable will affect the qbt process globally. Now it is
limited to where it required.
2025-03-28 18:15:53 +08:00
Vladimir Golovnev
103ea813dc RSS: Fix crash when moving a folder into its subfolder
PR #22479.
Closes #18446.
2025-03-28 09:03:59 +03:00
Vladimir Golovnev
52b1f3588a RSS: Mark matched article as "read" if refers to duplicate torrent
PR #22477.
2025-03-28 09:01:22 +03:00
Vladimir Golovnev
4bd50672e8 Improve add torrent error handling
PR #22468.
2025-03-25 09:13:15 +03:00
Chocobo1
d21653e8cf Don't leak parent file descriptors to child processes
It is unexpected for the child process to inherit parent file descriptors.
Requires Qt >= 6.6 and only affects Linux.

Closes #10312.
PR #22457.
2025-03-23 14:48:21 +08:00
Vladimir Golovnev
627d89813c RSS: Allow to set refresh interval per feed
PR #22448.
2025-03-22 08:43:04 +03:00
Chocobo1
b28c229f85 Add control for 'hostname resolver cache expiry interval'
Also add a few missing units in WebUI.

Closes #22267.
PR #22439.
2025-03-17 19:40:06 +08:00
Chocobo1
8d0870c953 Switch to string view where applicable
PR #22438.
2025-03-17 19:28:38 +08:00
Chocobo1
5a4b3b25d3 Use slice method where applicable
These code segments already have its boundary checked and can thus be faster.

PR #22411.
2025-03-15 14:58:59 +08:00
Vladimir Golovnev
d174bc75e4 Show free disk space in status bar
PR #22407.
Closes #19607.
2025-03-13 14:47:10 +03:00
Vladimir Golovnev
53f919aea8 Add missing includes
PR #22362.
2025-03-05 09:03:00 +03:00
Chocobo1
62a7fd86d6 Improve "split to byte array views" function
1. Utilize string matcher
2. Remove split behavior parameter
   Previously `KeepEmptyParts` behavior doesn't match Qt's
   implementation and since our codebase doesn't really make use of it,
   we can just remove the parameter.
3. Add tests.

PR #22352.
2025-03-03 21:42:03 +08:00
Chocobo1
8da43a4054 Use const accessor
This avoids an unnecessary check to the container internal atomic variable and prevents
potential detachment.

PR #22280.
2025-02-16 15:51:40 +08:00
sledgehammer999
7238bad5a6 Bump to v5.2.0alpha1 2025-02-11 02:04:46 +02:00
Maxime Thiebaut
4406a3f173 Add announce_port support
The `announce_port` setting permits to overwrite the port passed along to trackers as the `&port=` parameter. If left as the default, the listening port is used. This setting is only meant for very special cases where a seed's listening port differs from the effectively exposed port (e.g., through external NAT-PMP). See https://github.com/arvidn/libtorrent/pull/7771 for an example use-case.

This PR adds the relevant setting alongside the existing `announce_ip` setting.

PR #21692.
2025-02-08 16:12:50 +08:00
Vladimir Golovnev
86387fbe49 Return first tracker as fallback for "current tracker"
PR #22224.
Closes #20415.
2025-02-01 14:58:12 +03:00
Vladimir Golovnev
b76054beba Store search history
PR #22208.
2025-01-30 08:59:10 +03:00
Chocobo1
f8536162f2 Use compact format for JSON files
It saves a bit of space on disk and deters novice users from tampering them.

PR #22211.
2025-01-29 15:31:06 +08:00
Vladimir Golovnev
3978137534 Store opened search tabs
PR #22163.
Closes #167.
2025-01-26 17:12:50 +03:00
Chocobo1
f2eecf8a4e Avoid memory leak on macOS
Only Mark-of-the-Web and Power Management are affected.

PR #22176.
2025-01-18 20:30:14 +08:00
Chocobo1
82d90e599c Preserve allocated buffer capacity
PR #22138.
2025-01-12 21:01:39 +08:00
Hanabishi
68ecb13d14 Change URL seed error message
Current URL seed error message assumes that only possible error is DNS lookup failure, which is not true.
So replace it with a more generic message. Real reason is provided by the 'Error:' part.

PR #22119.
2025-01-10 08:31:28 +03:00
Vladimir Golovnev
f9f4b60b83 Allow to refresh existing search
PR #22122.
Closes #17184.
2025-01-08 17:03:32 +03:00
Thomas Piccirello
4fc36b9e99 Support fetching tracker list from URL
Trackers specified at the URL will be added to newly added public torrents.

This feature is adapted from qBittorrent-Enhanced-Edition to allow for automatically adding trackers retrieved from a URL. @ngosang's trackerlist repo is a good example, however I've opted not to include a default URL.

Partially addresses #14535.
PR #21828.
2025-01-08 14:51:09 +08:00
Chocobo1
22e156e0af Simplify captured variable type
By capturing the specific data instead of torrent handle the lambda can become non-mutable.

PR #22102.
2025-01-06 18:22:43 +08:00
Chocobo1
efe06f133d Revise DHT bootstrap node list
Discussion:
https://github.com/qbittorrent/qBittorrent/pull/21296#issuecomment-2562341328
https://github.com/qbittorrent/qBittorrent/pull/21296#issuecomment-2561373010

PR #22081.
2024-12-31 13:34:08 +08:00
Chocobo1
879c6bf9ff Simplify conversion to string
PR #22036.
2024-12-23 22:59:01 +08:00
Chocobo1
f2097dc4b5 Avoid redundant copy
PR #22035.
2024-12-23 22:43:23 +08:00
sledgehammer999
d96ab6ba84 Bump to v5.1.0beta1 2024-12-16 21:56:08 +02:00
Vladimir Golovnev
eb2eea8d34 Avoid race condition when update tracker entries
PR #21995.
2024-12-15 14:07:36 +03:00
antanilol
27451469fa Add eXact Length parameter when creating magnet URI
Include the `xl` (eXact Length) parameter in the magnet URI string inside the function `TorrentImpl::createMagnetURI()`.

Closes #20752.
PR #21958.
2024-12-09 03:29:41 +08:00
Chocobo1
a311c259cc Use proper data type for elapsed time
PR #21963.
2024-12-08 17:02:20 +08:00
Chocobo1
cbf7c09bf4 Use built-in method for setting header
PR #21961.
2024-12-08 16:33:35 +08:00
Chocobo1
6f31a13f22 Don't follow symlink when creating torrents on Windows
Now on Windows, it won't follow/include .lnk files when creating torrents.
Note that libtorrent will throw errors if we force adding .lnk files.

Non-Windows OS will still follow symlinks.

Closes #13286.
PR #21944.
2024-12-07 20:43:16 +08:00
Vladimir Golovnev
200f7fc628 Use cached current time when parse RSS feed
PR #21959.
2024-12-07 11:10:53 +03:00
Vladimir Golovnev
a180162405 Avoid redundant requests of announce entries from libtorrent
PR #21949.
2024-12-06 19:59:45 +03:00
wavygecko
d11622e3c0 Don't add duplicate episodes to previously matched
PR #21917.
2024-11-28 11:37:05 +03:00
Vladimir Golovnev
d90a9d15ac Avoid using QDateTime for announce timestamps
PR #21906.
2024-11-27 21:03:54 +03:00
Vladimir Golovnev
15ea836bb9 Avoid repeatedly creating the same QDateTime values
PR #21904.
2024-11-26 09:04:59 +03:00
Vladimir Golovnev
0eba285ff1 Fix incorrect SQL column definition
PR #21874.
2024-11-21 13:57:37 +03:00
Vladimir Golovnev
88161a6467 Discard obsolete "state update" events after torrent is reloaded
PR #21873.
Closes #21827.
2024-11-21 13:56:22 +03:00
Chocobo1
6ddde3f4b6 Avoid redundant string length function calls
Also switch to `std::string_view` as it is more generic and can handle more types (including
view types).

PR #21861.
2024-11-19 02:53:16 +08:00
Chocobo1
f4eec75488 Don't apply Mark-of-the-Web on existing files
`TorrentImpl::isDownloading()` was excessively broad which included unexpected events for the
case here. So use the underlying state directly.

Closes #21788.
PR #21836.
2024-11-16 15:57:55 +08:00
Chocobo1
0f12d077c8 Avoid reapplying Mark-of-the-Web when it already exists
Also use scope guards to handle resources.

Related #21788.
PR #21806.
2024-11-14 15:06:33 +08:00
Chocobo1
92daca1fef Avoid redundant string length scan
PR #21807.
2024-11-11 19:19:10 +08:00
Vladimir Golovnev
69f19d4a0b Preserve initial torrent progress while checking resume data
PR #21784.
2024-11-10 12:01:12 +03:00
Thomas Piccirello
f89c4c32ed Display External IP Address in status bar
This change displays the last detected IPv4 and/or IPv6 address(es) in the GUI and WebUI's status bar. This does not yet handle systems with multiple addresses of the same type (e.g. multiple IPv6 addresses).

PR #21383.

---------

Co-authored-by: Odin Vex <44311901+OdinVex@users.noreply.github.com>
2024-11-09 15:58:13 +08:00
Vladimir Golovnev
33e3fb2f46 Correctly handle "torrent finished" events
PR #21786.
Closes #21699.
2024-11-08 11:45:57 +03:00