Commit graph

1197 commits

Author SHA1 Message Date
fbd052bc04 feat(http-api): cabler la route POST /torrents/delete_all
Le commit precedent ajoutait api_torrents_delete_all et la commande
Tauri, mais aucune route HTTP ne l'exposait : la WebUI servie en mode
navigateur appelait POST /torrents/delete_all et recevait un 404. Seul
le chemin desktop, qui passe par invokeAPI, fonctionnait.

Ajoute h_torrents_delete_all, avec remove_files lu en query param et
defaut a false, puis enregistre la route dans le bloc !read_only aux
cotes de /torrents/{id}/delete. Segment statique, donc prioritaire sur
/torrents/{id} — meme schema que /torrents/resolve_magnet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 19:25:48 +02:00
5d68aaf352 feat(desktop): supprimer tous les torrents en une action
Ajoute api_torrents_delete_all sur l'Api librqbit : itere sur tous les
torrents de la session, les supprime avec ou sans les donnees selon
remove_files, collecte les erreurs sans interrompre la boucle et ne
renvoie une 500 qu'a la fin si au moins une suppression a echoue.

Cote desktop, la commande Tauri torrents_delete_all expose l'appel, et
la WebUI ajoute un bouton corbeille dans RootContent avec une modale de
confirmation DeleteAllTorrentsModal.

Limite connue : aucune route HTTP /torrents/delete_all n'est enregistree
dans http_api/handlers. Le chemin Tauri fonctionne (desktop/src/api.tsx
passe par invokeAPI), mais la WebUI servie en mode navigateur appellera
POST /torrents/delete_all et recevra un 404. La route reste a cabler
pour que le bouton fonctionne hors application desktop.

Ce correctif tournait depuis des semaines uniquement dans l'arbre de
travail, non versionne, alors qu'il etait deja compile dans les paquets
rqbit et rqbit-desktop installes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 17:29:33 +02:00
99219f90bc feat(desktop): Yoda integration patches on v8.1.1
- macOS-style window controls via gtk-decoration-layout
- torrent file preview and context menu improvements
- single-instance relay for new torrents/magnet links
2026-07-09 14:18:06 +02:00
Igor Katson
00b9748516
Update crate versions
Some checks failed
Release binaries for Linux and Docker / release-linux (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Release binaries for Linux and Docker / build-docker-cross (linux/amd64) (push) Has been cancelled
Release binaries for Linux and Docker / build-docker-cross (linux/arm/v7) (push) Has been cancelled
Release binaries for Linux and Docker / build-docker-cross (linux/arm64) (push) Has been cancelled
Release binaries for Linux and Docker / build-push-docker-multiarch (push) Has been cancelled
Release binaries for OSX / release-macos (push) Has been cancelled
Release binaries for Windows / release-windows (push) Has been cancelled
Release binaries for Linux and Docker / release-linux (amd64, ubuntu-24.04) (push) Has been cancelled
2025-06-12 12:31:23 +01:00
Igor Katson
99bf295028
Do not try to delete padding files as they dont exist 2025-06-12 12:29:14 +01:00
Igor Katson
1409dffb8f
Fix invalid torrent names to use from_utf8_lossy #316 2025-06-12 12:28:51 +01:00
Igor Katson
acf67b2439
WebUI: padding files are not checked by default 2025-06-12 12:28:10 +01:00
Igor Katson
963f8167de
Fix a very rare bug where DHT paniced 2025-06-12 12:27:23 +01:00
Igor Katson
9b5b9e6ba7
Update all subcrates versions 2025-06-05 11:52:50 +01:00
Igor Katson
28332fd4b9
Prepare for releasing 8.1.0 2025-06-05 11:38:50 +01:00
Igor Katson
3fa55bdc14
Merge pull request #374 from av-gal/main
Include crate version in client fingerprint portion of `peer_id`
2025-06-02 09:00:55 +01:00
Alex Galvin
efad73dbe1 chore: bump librqbit-core to 5.0.0 2025-06-02 03:29:16 -04:00
Alex Galvin
610140cff6 feat: include crate version in peer_id 2025-06-02 03:29:16 -04:00
Igor Katson
093673064a
Merge pull request #358 from djmango/master
⬆️ (librqbit) Update dep requirement for url to compatible w/ current version
2025-05-28 23:01:56 +01:00
owl
f020673032
fix: improve path traversal check
The previous implementation would falsely detect a path traversal in a
filename such as "foo... bar".
This patch changes the check function so that it inspects `PathBuf`
components instead of substrings.
2025-05-09 00:07:17 +02:00
Francesc Elies
cc771f8713 feat: watch magnet files too 2025-04-27 10:35:16 +02:00
Alex Galvin
8e929b3710 Do not exchange peers or torrent metadata in private swarms 2025-04-20 01:01:23 -04:00
KevinT3Hu
f6c58add58
fix: make SessionStatsSnapshot fields pub 2025-04-13 14:09:57 +08:00
Sulaiman Khan Ghori
411eb73577 ⬆️ (librqbit) Update dep requirement for url to compatible w/ current version
Less strict than =, can use as dep in other projects :)
2025-04-12 12:06:56 -07:00
Igor Katson
e371ec3c6f
Increase min metadata size 2025-02-28 12:08:22 +00:00
Igor Katson
24a9f83a48
Bump the timeout on "wait_until_i_am_the_last_task" 2025-02-28 11:58:47 +00:00
Igor Katson
b1bd5ca02c
Parsing UDP tracker error responses 2025-02-27 15:05:50 +00:00
Igor Katson
75354069f0
Fix debug repr for URLs in tracker comms 2025-02-27 14:36:44 +00:00
Igor Katson
29508014b8
Trackers: reuse UDP socket 2025-02-27 14:25:24 +00:00
Igor Katson
52be6d7cef
Trackers list from outside 2025-02-27 12:55:10 +00:00
Igor Katson
d709557372
Change tracker type to be url::Url in most places 2025-02-27 12:35:37 +00:00
Igor Katson
3eb1558451
Parsing tracker list 2025-02-27 12:26:23 +00:00
Igor Katson
8ea5dfae87
Clippy + small tweaks 2025-02-27 10:58:58 +00:00
Alexander WB
1a31340076 👌 Fix remaining pr comments 2025-02-25 04:25:24 +01:00
Alexander WB
4c6e19ceab 👌 Add parse file:// urls 2025-02-25 03:42:41 +01:00
Alexander WB
c19ea3979a 👌 Improved error handling 2025-02-25 03:28:13 +01:00
Alexander WB
8f019882d0 👌 Simplify test
Remove mock http server
2025-02-25 03:02:13 +01:00
Alexander WB
ac883c1ddf 👌 Improve Parsing logic 2025-02-21 22:05:10 +01:00
Alexander WB
6e9ecf8a26 Add blocklist-url launch parameter
Block incoming peers from blocked ips.
2025-02-20 21:09:44 +01:00
Alexander WB
187ce8c462 🎉 Add Blocklist
Add an implementation of p2p plaintext (and gz compressed) blocklists.
The list can be read from an url or from a file.
All the IP ranges are then stored in interval trees.
2025-02-20 21:07:48 +01:00
InoUno
4e58b35c88 Make Session ratelimits accessible from outside of crate 2025-02-18 06:51:59 +01:00
Igor Katson
3e6c2eae79
Clippy 2025-01-30 11:24:43 +00:00
Igor Katson
62d5288398
perf optimization: avoid tokio::io::split 2025-01-30 11:19:19 +00:00
Chris Antaki
5a0800c0fd Fix typo 2025-01-20 15:46:53 -08:00
Igor Katson
2c85624ec2
Remove LazyLock (incompatible with older Rusts) 2025-01-14 11:27:14 +00:00
Igor Katson
c60f36540e
Split up http_api into files 2025-01-14 11:20:35 +00:00
Igor Katson
bde8d7cf40
Web redirect is relative now 2025-01-14 10:47:26 +00:00
Igor Katson
8abbf683c0
Nothing 2025-01-14 10:44:38 +00:00
Igor Katson
fd5feba501
Rename all HTTP handlers 2025-01-14 10:32:39 +00:00
Igor Katson
8b35ddd59c
LazyLock 2025-01-14 10:27:58 +00:00
Igor Katson
c474d7b454
Move api_root to global scope 2025-01-14 10:05:23 +00:00
Igor Katson
d3323ac7ac
Move HTTP API state one layer down 2025-01-14 10:03:22 +00:00
Igor Katson
c8d4c8d713
HTTP API: move functions out to global scope 2025-01-14 09:50:18 +00:00
Igor Katson
e79b51ea1f
Redirect to web ui on root 2025-01-13 22:32:23 +00:00
Igor Katson
0245861c48
[Feature] Can put rqbit Web UI behind proxy server 2025-01-13 22:01:06 +00:00