Firefox handler hacks
FireFox handler are a bit complex to setup relative to the alternatives but they work even with ancient versions of FireFox.
This first one is based on the Konqueror solution.
- Requirements: Perl, incl. Perl URI module
Make a file named e.g. firefox_submit and put it in a directory. Make it executable. The first script (simple) is only for local MLDonkey's and a default install (admin, no password). The second script (advanced) can be configured for other users, passwords and servers. The latter script also triggers a warning in Firefox, so I advise you if possible to use the first one.:
Simple:
#!/usr/bin/perl #Creates a link to submit to MLdonkey and submits using Firefox use URI::Escape; $uri = $ARGV[0]; $link = sprintf("http://localhost:4080/submit?q=dllink+%s", uri_escape($uri)); exec ('firefox',$link);
Advanced:
#!/usr/bin/perl #Creates a link to submit to MLdonkey and submits using Firefox use URI::Escape; $uri = $ARGV[0]; # change these as needed $username = "admin"; $password = ""; $server_addr = "localhost"; $server_port = "4080"; $link = sprintf("http://%s:%s@%s:%s/submit?q=dllink+%s", $username,$password,$server_addr,$server_port,uri_escape($uri)); exec ('firefox',$link);
When opening a torrent file from the web or your local file system, let Firefox open the links/files with firefox_submit and let Firefox remember it.
This works for .torrent-files. You can also use it for ed2k:/-links. To use this start Firefox and do this:
- Insert about:config in the address bar
- Right click on the list, select New, then Boolean; insert network.protocol-handler.external.ed2k as Preference Name and true as Value
- Now another right click, select New and String; insert network.protocol-handler.app.ed2k as Preference Name and /path/to/firefox_submit (path to where the file is installed on your system) as Value.
Solution 2 (only ed2k protocol)
This solution is based on Amule Wiki ([1]).
- Start Mozilla/firefox browser
- Insert about:config in the address bar
- Right click on the list, select New, then Boolean; insert network.protocol-handler.external.ed2k as Preference Name and true as Value
- Now another right click, select New and String; insert network.protocol-handler.app.ed2k as Preference Name and /path/to/mldonkey_submit (path to where the file is installed on your system) as Value.
Use this script as mldonkey_submit :
#!/usr/bin/perl # Submit an eDonkey download request to mldonkey # # Argument(s): An ed2k URI of the form: # # ed2k://|file|<filename>|<filesize>|<MD4-sum>| # use LWP::UserAgent; ($#ARGV >= 0) || die "Usage: mldonkey_submit <ed2kURI> ...\n"; # # Edit lines below. # $vars{'HTTPURL'} = "http://IP_or_HOSTNAME:PORT"; $vars{'HTTPUSER'} = "USER"; $vars{'HTTPPASS'} = "PASSWORD"; # my $ua = LWP::UserAgent->new; while (my $uri = shift @ARGV) { $esc_uri = URI::Escape::uri_escape($uri); $_ = URI::Escape::uri_unescape($uri); if (m@^ed2k://\|file\|[^|]+\|(\d+)\|([\da-fA-F]+)\|@) { my $size = $1; my $md4 = $2; my $req = HTTP::Request->new( GET <code>> "$vars{'HTTPURL'}/submit?q</code>dllink+$esc_uri" ); if (($vars{'HTTPUSER'}) && ($vars{'HTTPPASS'})) { $req->authorization_basic($vars{'HTTPUSER'}, $vars{'HTTPPASS'}); } my $response = $ua->request($req); if (!($response->is_success)) { print $response->error_as_HTML; exit 1; } } else { print "Not an ed2k URI: $_\n"; } }