Chocobo1
98576dacae
Add support for quarantine on macOS
2023-10-29 17:41:08 +08:00
Chocobo1
34f7b75f12
Add support for Mark-of-the-Web
...
https://redcanary.com/threat-detection-report/techniques/mark-of-the-web-bypass/
https://mikehadlow.blogspot.com/2011/07/detecting-and-changing-files-internet.html
https://textslashplain.com/2016/04/04/downloads-and-the-mark-of-the-web/
Closes #19648 .
PR #19675 .
2023-10-07 12:28:07 +08:00
Vladimir Golovnev
c051ee9409
Revamp tracker list widget
...
Internally redesign tracker list widget using Qt Model/View architecture.
Make tracker list sortable by any column.
PR #19633 .
Closes #261 .
2023-10-03 08:42:05 +03:00
Vladimir Golovnev
43e9403a4c
Filter out duplicate trackers when replacing
...
PR #19656 .
2023-09-29 07:33:19 +03:00
Vladimir Golovnev
5e5c6aa7d8
Don't show outdated tracker message
...
PR #19616 .
Closes #19612 .
2023-09-20 13:12:54 +03:00
Vladimir Golovnev
7cd2445a49
Improve tracker entries handling
...
PR #19496 .
* Add torrent entry status to represent tracker error
* Add torrent entry status to represent unreachable endpoint
* Display tracker entry next/min announce time
* Reset tracker entries when torrent is stopped
2023-09-07 08:58:13 +03:00
Vladimir Golovnev
9ab8203c8a
Don't overwrite tracker entry of unrelated protocol
...
PR #19493 .
2023-08-23 12:38:18 +03:00
Vladimir Golovnev
c805606524
Improve tracker entries handling
...
PR #19468 .
* Use QHash to map tracker endpoints
* Don't clear numPeers unexpectedly
* Remove outdated tracker entry endpoints
* Move presentation logic from Core to GUI code
* Show all endpoints per tracker in tree structure
---------
Co-authored-by: Kacper Michajłow <kasper93@gmail.com >
2023-08-21 10:27:19 +03:00
Victor Chernyakin
34d30ed031
Replace Q_UNUSED with [[maybe_unused]] attribute
...
PR #19471 .
2023-08-18 07:09:40 +03:00
Vladimir Golovnev
a0e41a11de
Display error message when unrecoverable error occurred
...
PR #19462 .
2023-08-14 16:03:57 +03:00
Vladimir Golovnev
cab5edb721
Add more precondition checks when handle async operation result
...
PR #19460 .
2023-08-14 16:02:50 +03:00
Chocobo1
d6adebe4c0
Switch to efficient algorithm
2023-07-22 04:11:39 +08:00
Vladimir Golovnev
10ee1ab7a2
Switch to C++20
...
PR #19336 .
2023-07-21 15:38:49 +03:00
Vladimir Golovnev
dbe79484d2
Drop support of Qt 5
...
Also remove usage of some deprecated stuff.
PR #19338 .
2023-07-20 11:17:27 +03:00
Christopher
35e18498d9
Add option to stop seeding when torrent has been inactive
...
PR #19294 .
Closes #533 .
Closes #8073 .
Closes #15939 .
2023-07-15 13:14:42 +03:00
Vladimir Golovnev
1c654d8f47
Immediately update torrent status on moving files
...
PR #19220 .
2023-06-25 12:45:58 +03:00
Chocobo1
e6d85a468b
Rename literal operator
...
Qt 6.4 introduced `QString operator""_s()` and the previous `""_qs` is
deprecated since Qt 6.8.
2023-06-18 03:32:44 +08:00
Chocobo1
79ca2e145f
Don't read unlimited data from files
...
It now guards against reading infinite files such as `/dev/zero`.
And most readings are bound with a (lax) limit.
As a side effect, more checking are done when reading a file and
overall the reading procedure is more robust.
PR #19095 .
2023-06-14 13:38:19 +08:00
Chocobo1
9a00839a75
Simplify code
2023-05-06 16:35:13 +08:00
Chocobo1
8c9b6e2f2d
Use reference whenever possible
2023-05-06 16:35:13 +08:00
Chocobo1
8219b1f695
Use default constructor, destructor
2023-05-06 16:35:12 +08:00
Vladimir Golovnev
5a1dcbae9c
Don't make assertion about 3rd party logic
...
PR #18913 .
2023-05-03 07:24:52 +03:00
Vladimir Golovnev
51132c817b
Improve move storage handling
...
PR #18857 .
Closes #18795 .
2023-04-18 08:06:18 +03:00
Vladimir Golovnev
989b1e6c2c
Improve finished torrent handling
...
PR #18704 .
Closes #18694 .
2023-03-16 09:45:49 +03:00
Vladimir Golovnev
2f9b313287
Perform own tracking of files progress
...
PR #18597 .
2023-02-26 14:44:58 +03:00
Vladimir Golovnev
9fb9ca47f6
Update the cached state once recheck is started
...
We have to force update the cached state, otherwise someone will be able to get an incorrect one during the interval until the cached state is updated in a regular way.
PR #18579 .
Closes #18559 .
2023-02-17 07:12:56 +03:00
Vladimir Golovnev
1e913f46f0
Rename isSeed to isFinished to correctly represent its meaning
...
PR #18580 .
2023-02-17 07:08:00 +03:00
Vladimir Golovnev
4c0ebc0e0f
Access some more data in a non-blocking manner
...
* Cache URL seeds to access in a non-blocking manner
* Provide non-blocking way to create magnet URI for torrent
PR #18572 .
2023-02-16 08:49:16 +03:00
Vladimir Golovnev
7227d2b2b2
Revert changes of conflict resolution strategy on automatic move
...
PR #18516 .
Closes #18297 .
Closes #18495 .
2023-02-05 09:29:43 +03:00
Vladimir Golovnev
84fabf14c8
Merge pull request #18034 from glassez/fetch-async
...
Fetch data asynchronously
2022-12-15 06:59:29 +03:00
Vladimir Golovnev
0ec47db9cd
Don't drop !qB extension when rename incomplete file
...
PR #18186 .
Closes #18181 .
2022-12-15 06:57:07 +03:00
Vladimir Golovnev (Glassez)
b335114219
Use better method to set bit
2022-12-14 10:41:04 +03:00
Vladimir Golovnev (Glassez)
998b08f5d8
Set metadata asynchronously
2022-12-14 10:41:04 +03:00
Vladimir Golovnev (Glassez)
991c30943a
Allow to fetch data asynchronously
2022-12-14 10:41:04 +03:00
Vladimir Golovnev
1b2ff0f6f8
Handle tracker status updates asynchronously
...
* Add a helper for performing jobs in Session context
* Handle tracker status updates asynchronously
PR #18010 .
2022-11-30 09:54:30 +03:00
Vladimir Golovnev
1cee69da6c
Don't miss to store metadata of new torrent
...
PR #18033 .
2022-11-19 13:33:38 +03:00
Chocobo1
3a2e73cc94
Avoid out-of-bounds access
...
This happens when the `index` is a negative number.
Added `Q_ASSERT()` to catch coding errors at debug run time.
PR #17953 .
2022-10-31 12:34:20 +08:00
Vladimir Golovnev
05b7194bf7
Correctly set "stop condition" on force recheck invoked
...
PR #17915 .
Closes #17913 .
2022-10-22 17:43:17 +03:00
Chocobo1
c94152c47c
Reuse alert dispatcher
...
Instead of using a specific alert handler in `SessionImpl::saveResumeData()`, reuse the generic
one.
2022-10-17 13:53:54 +08:00
tristanleboss
e028d8085b
Add a "Moving" status filter
...
Because sometime (when your save and download path are on different drives, when your disk drive is super busy, ...) move operations can stack up, I add this "Moving" status filter so you can see in a blink of the eye which torrents are in a move state.
PR #17810 .
2022-10-14 13:12:51 +08:00
Vladimir Golovnev
4f0990dc29
Use 'fail if exist' strategy on automatic move
...
Prevent existing files overwriting when torrent is moved automatically (e.g. when moved from incomplete to final save path).
PR #17855 .
2022-10-11 10:05:21 +03:00
Vladimir Golovnev
67357e9964
Allow to set torrent stop condition
...
PR #17814 .
Closes #17792 .
Closes #929 .
(Actually it should close all issues about lack of ability to stop torrent after metadata downloaded or after files are initially checked.)
Also makes explicit the temporary start of the torrent in the case when recheck of the stopped torrent is performed.
2022-10-09 16:07:16 +03:00
Vladimir Golovnev
e7370d1a0f
Don't pollute move queue by torrents w/o metadata
...
There's really nothing to move if the torrent still doesn't have metadata.
Additionally, such torrents in the queue can lead to unexpected behavior
when reloading the torrent after metadata is received.
PR #17823 .
2022-10-04 19:41:36 +03:00
Vladimir Golovnev
0a4ee60ea0
Avoid blocking call when save resume data
...
PR #17755 .
2022-09-25 16:40:16 +03:00
Chocobo1
b28704a6ec
Merge pull request #17725 from Chocobo1/downloadsDone
...
Clean up 'recursive download' related code
2022-09-16 12:07:36 +08:00
Chocobo1
80759f9e69
Reorder operations in 'torrent finished' handler
...
Avoid redundant data fetch.
Remove debug messages.
2022-09-15 00:12:11 +08:00
Chocobo1
e692a191ed
Revise 'Add trackers' dialog
...
* Now it allow user to add tracker to different tier.
* The downloaded trackers are now displayed as is (without modifying).
* Now the dialog remember dialog size and last used URL.
Closes #17692 .
2022-09-14 01:20:30 +08:00
Vladimir Golovnev
5cf6b1cbde
Handle more torrent conflicts
...
PR #17668 .
This is a continuation of #17576 .
Handles the case when you add hybrid torrent by v1-only magnet link and this torrent is already known by its full hybrid info hash (i.e. by both v1 and v2 info hashes).
2022-09-05 06:22:42 +03:00
Vladimir Golovnev
ca897a8a35
Cache download/upload limit values
...
PR #17640 .
2022-09-01 06:54:51 +03:00
Vladimir Golovnev
525692759d
Split Session class into interface/implementation parts
...
PR #17579 .
2022-08-27 08:01:24 +03:00