aboutsummaryrefslogtreecommitdiff
path: root/229
diff options
context:
space:
mode:
Diffstat (limited to '229')
-rw-r--r--229/index.md177
1 files changed, 177 insertions, 0 deletions
diff --git a/229/index.md b/229/index.md
new file mode 100644
index 0000000..9f67833
--- /dev/null
+++ b/229/index.md
@@ -0,0 +1,177 @@
+Title: magnet: link plugin
+Author: rakoo
+Created: Fri, 19 Jul 2024 02:36:19 +0000
+State: open
+
+Hey there, thanks for dillo it's nice to see it alive and well !
+
+I made a plugin for `magnet:` links: https://sr.ht/~rakoo/dillo-plugin-magnet/. It is pretty naive and straightforward, made mostly to understand how this whole thing feels; I plan to add other protocols and semi-apps in the future. That thing is amazing !
+
+--%--
+From: rodarima
+Date: Fri, 19 Jul 2024 17:37:06 +0000
+
+> Hey there, thanks for dillo it's nice to see it alive and well !
+>
+> I made a plugin for `magnet:` links: https://sr.ht/~rakoo/dillo-plugin-magnet/. It is pretty naive and straightforward, made mostly to understand how this whole thing feels; I plan to add other protocols and semi-apps in the future. That thing is amazing !
+
+Very nice :-)
+
+I tested it and it seems to work fine after some time, for some reason aria2c takes a while in my computer.
+
+I recommend you add a Makefile so people only have to do a `make install` command, regardless of the language you use. Example: https://github.com/dillo-browser/dillo-plugin-ipfs/blob/master/Makefile
+
+--%--
+From: rakoo
+Date: Fri, 19 Jul 2024 18:22:21 +0000
+
+Thank you :)
+
+There's no magic: aria2c takes a while because it has to find peers that share the given swarm before downloading from them. Once found, they tend to be fast though.
+
+This exhibits another problem: what if an external process is slow ? From dpi's point of view another tag can be sent, so it should be interceptable. For example a DpiBye should kill not just the filter but also all sub-processes. Right ?
+
+The Makefile is a really nice idea, I will add that !
+
+
+--%--
+From: rodarima
+Date: Thu, 25 Jul 2024 19:56:12 +0000
+
+Hi,
+
+>There's no magic: aria2c takes a while because it has to find peers
+>that share the given swarm before downloading from them. Once found,
+>they tend to be fast though.
+
+I'm using this one:
+
+ magnet:?xt=urn:btih:0cd42065571809961e9661db2123a87d77c33964&dn=archlinux-2024.07.01-x86_64.iso
+
+For me it takes around 30 seconds to fetch the .torrent file, while if I
+open it in qbittorrent it goes very quickly, in less than 500 ms. Not
+sure if qb has some swarm already cached somewhere or NAT hole punching
+or some other technique to increase the speed.
+
+>This exhibits another problem: what if an external process is slow ?
+>From dpi's point of view another tag can be sent, so it should be
+>interceptable. For example a DpiBye should kill not just the filter but
+>also all sub-processes. Right ?
+
+You can make the plugin as a "server" type, instead of just a filter,
+see:
+
+https://dillo-browser.github.io/user_help.html#plugins
+
+This way you can start the plugin on the first magnet request and leave
+it running so subsequent requests are faster.
+
+And yes, the DpiBye should kill all processes spawned by the plugin.
+
+
+--%--
+From: rakoo
+Date: Fri, 26 Jul 2024 15:36:27 +0000
+
+rodarima ***@***.***> wrote:
+> I'm using this one:
+>
+> magnet:?xt=urn:btih:0cd42065571809961e9661db2123a87d77c33964&dn=archlinux-2024.07.01-x86_64.iso
+>
+> For me it takes around 30 seconds to fetch the .torrent file, while if I
+> open it in qbittorrent it goes very quickly, in less than 500 ms. Not
+> sure if qb has some swarm already cached somewhere or NAT hole punching
+> or some other technique to increase the speed.
+
+If you let qbittorrent run continuously then it probably has a
+more accurate routing table, so querying is definitely going to
+be faster. That's another argument for letting the dpi run
+continuously in the background
+
+> You can make the plugin as a "server" type, instead of just a filter,
+> see:
+>
+> https://dillo-browser.github.io/user_help.html#plugins
+>
+> This way you can start the plugin on the first magnet request and leave
+> it running so subsequent requests are faster.
+
+Indeed, I need to switch to that. I just didn't see an easy-to-grasp
+server dpi (and the facility provided by the go lib didn't seem to
+work, but I need to try again)
+
+> And yes, the DpiBye should kill all processes spawned by the plugin.
+
+Good. In server mode does that also mean that the server should die ?
+
+--
+Matthieu Rakotojaona
+
+
+--%--
+From: rodarima
+Date: Fri, 26 Jul 2024 20:31:41 +0000
+
+Hi,
+
+>If you let qbittorrent run continuously then it probably has a
+>more accurate routing table, so querying is definitely going to
+>be faster. That's another argument for letting the dpi run
+>continuously in the background
+
+The test was done by opening qbittorrent for the first time in the day.
+
+Out of curiosity, I did another test where I open qbittorrent from a new
+user, so it is the first time ever it is opened, and it also is able to
+load the metadata in less than a few seconds.
+
+For some reason I cannot just open qbittorrent with the magnet for the
+first time as an argument otherwise it gets stuck forever (likely a
+bug), so I make it sleep for two seconds before adding the magnet to
+download:
+
+$ ssh -X ***@***.*** 'rm -rf ~/.{config,cache,local}; \
+ qbittorrent &; \
+ sleep 2; \
+ qbittorrent "magnet:?xt=urn:btih:0cd42065571809961e9661db2123a87d77c33964&dn=archlinux-2024.07.01-x86_64.iso"'
+
+I also verified with strace that is reading the data from /home/guest
+rather than my normal user.
+
+So I don't think it is because qbittorrent has some information saved on
+on disk, but I think it has some other search mechanism to query magnets
+which is much faster than aria2c.
+
+I tried with transmission too, but it is also very slow.
+
+>> You can make the plugin as a "server" type, instead of just a filter,
+>> see:
+>>
+>> https://dillo-browser.github.io/user_help.html#plugins
+>>
+>> This way you can start the plugin on the first magnet request and leave
+>> it running so subsequent requests are faster.
+>
+>Indeed, I need to switch to that. I just didn't see an easy-to-grasp
+>server dpi (and the facility provided by the go lib didn't seem to
+>work, but I need to try again)
+
+Here is an example of a Go server plugin written by Charles E. Lehner
+for IPFS:
+
+https://github.com/dillo-browser/dillo-plugin-ipfs
+
+Inside Dillo itself you can also find some server plugins (the ones that
+don't have "filter" in the name):
+
+https://github.com/dillo-browser/dillo/blob/master/dpi/Makefile.am#L48-L55
+
+>
+>> And yes, the DpiBye should kill all processes spawned by the plugin.
+>
+>Good. In server mode does that also mean that the server should die ?
+
+Yes, the server plugin should exit the main loop. Here is an example for
+the file plugin:
+
+https://github.com/dillo-browser/dillo/blob/master/dpi/file.c#L1097