Ed2k links handling-de

From AMule Project FAQ
Revision as of 16:48, 21 June 2006 by Wuischke (Talk | contribs)

Jump to: navigation, search

I've just started translating, please excuse any incomplete parts.

Die Art wie aMule die ed2k links mit deinem favorisierten Browser handhabt, hängt davon ab, welchen Webbrowser du nutzt. Also ist hier eine Liste mit Mini-HowTos für jeden der populärsten Webbrowser. Beachte, dass überall in diesem Dokument /path/to/ed2k mit /usr/local/bin/ed2k, /usr/bin/ed2k, C:\Programme\aMule\ed2k.exe oder etwas anderem ersetzt werden sollte, je nachdem wie dein System konfiguriert ist.

Allgemein wird bei den meisten Linuxsystemen ein selbstkompiliertes aMule das ed2k Hilfsprogramm in /usr/local/bin/ed2k installieren, wohingegen bei einer Paketinstallation von aMule es nach /usr/bin/ed2k installiert wird. Als Ausnahme ist es bekannt, dass SuSe-Pakete es nach /usr/local/bin/ed2k installieren.

Internet Explorer

by Jacobo221

Go to "Start" -> "Run" and run "regedit" (without quotes).

Now, in regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ed2k\shell\open\command

NOTE: It could happen that ed2k and/or it's subfolders didn't exist. In such case, create them one-by-one by selecting "New" -> "Key" and entering ed2k or whatever as it's value.


Now just double click on "(Default)" (or "(Standad)" or whatever the first value is there) and enter the path to the ed2k application, followed by "%1" (with quotes), so you should end with some value like C:\Program Files\aMule2\ed2k "%1".


Finally, do the same in HKEY_CLASSES_ROOT\ed2k\shell\open\command


by gfdsa

/usr/kde/3.1/share/services you can find it by file names ended with .protocol kinda `find /usr -name "*.protocol"` or `find /opt -name "*.protocol"` or even put / to path if you want.

If the search was successful, create a file named like ed2k.protocol in the mentioned directory:

exec=/path/to/ed2k "%u"

Now just restart Konqueror.

NOTE: You might get a security warning. don't worry. it is just warning you that the link is being sent to an external application.

NOTE2: If after clicking OK on the security warning the link is still not being sent to aMule, just right-click on the ed2k link and tell Konqueror to open it in a new window/tab.


Method 1

In the GNOME Control Center go to "Complex" -> "File Types and Programs" -> "Internet Services" -> "Add Service...".

In the protocol filed enter ed2k

In the Program field enter ed2k %s

Unselect "Run in terminal" if it is selected.

Click OK and you're done!

Method 2

Execute the following three commands to create the appropriate gconf keys:

  • gconftool-2 -t string -s /desktop/gnome/url-handlers/ed2k/command "/usr/local/bin/ed2k %s"
  • gconftool-2 -t bool -s /desktop/gnome/url-handlers/ed2k/enabled true
  • gconftool-2 -t bool -s /desktop/gnome/url-handlers/ed2k/needs_terminal false

Replace "/usr/local/bin/ed2k" above with the path and name of the ed2k executable on your system.

Uninstalling this protocol handler is similarly simple:

  • gconftool-2 -u /desktop/gnome/url-handlers/ed2k --recursive-unset


by thermoman (Marcel Meckel), ender and Jacobo221

Clean way

In Opera go to Tools->Preferences->Paths and Programms->Add...

In the "Protocol" field enter ed2k

In the "Path" or "Open with another application" field enter /path/to/ed2k


Dirty way

If he above instructions didn't work, you can try edit /etc/opera6rc as root or ~/.opera/opera6.ini as non-root and setting:

[User Prefs]
[Trusted Applications]

Opera 6 bug

Opera 6 doesn't pass complete URL to external programs; only URL without protocol. The way to walk around this follows.

Linux or some other Unix-like flavour

Create amule_submit.sh with this content:

/path/to/ed2k "ed2k://$1"

Now in Tools->Preferences->Paths and Programms->Add...->Path or in the opera6rc file change ed2k=/path/to/ed2k with ed2k=/path/to/amule_submit.sh


Create amule_submit.bat with this content:

X:\path\to\ed2k.exe "ed2k://%1"

Change ed2k=/path/to/ed2k ed2k://%u with ed2k=X:\path\to\amule_submit.bat ed2k://%u

Mozilla 1.7 (or later) & Firefox 0.9 (or later)

by GhePeU

Mozex doesn't work anymore with Mozilla 1.7 and Firefox 0.9. There is an alternate method that seems to be working with both of them:

  • Remove MozEx if installed or at least remove the ed2k input from it (only if MozEx is installed)
  • 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/ed2k (path to where the file is installed on your system) as Value.


NOTE 1: Since version 1.5.x of Mozilla Firefox this method doesn't work any longer for the windows version. You must use the Internet Explorer method with the registry entries instead.

Firefox v0.8

Go to MozEx's WebPage and install the mozex-1.07.xpi file.

Restart FireFox, go to Edit -> Preferences -> Extensions -> mozex -> Options -> ED2K and set it to /path/to/ed2k %r

Click OK and you're done.



Mozilla 1.3 to 1.6 & Firebird v0.6

by DeltaHF

Go to MozEx's WebPage and install the mozex-1.07.xpi file.

Restart Mozilla/FireBird, go to Edit -> Preferences -> mozex -> ED2K and set it to /path/to/ed2k %r

Click OK and you're done.


Mozilla 1.2.1 or earlier

by rpokorny [R. Pokorny]

1) Go to Protozilla's WebPage
Choose the version fitting your Mozilla-version and click on Install. It will auto-install Protozilla.
Now close Mozilla completely.

Notes for Linux and other Unix-like systems users
- You must have write permission to the Mozilla installation directory. If you've installed Mozilla in /usr, you'll have to be root probably.
- The downloadable precompiled version of Protozilla apparently does not work with Debian's Mozilla packages. It does work together with the precompiled version of 1.2.1 available at Mozilla's WebPage for example (or you can build both Mozilla and Protozilla yourself).

2) This step is only necessary if you had to start Mozilla/FireBird/FireFox as root in step 1.

As root do: cp -r /root/.mozilla/PROFILENAME/RANDOM.slt/protozilla/ /home/USERNAME/.mozilla/PROFILENAME2/RANDOM.slt/

This will have copied protozilla-configuration from root's home directory to user's home directory.

cd /home/USERNAME/.mozilla/PROFILENAME/RANDOM.slt/ chown -R YOURUSER.YOURGROUP protozilla

This will have changed file-ownership parameters in user's files.

USERNAME: Name of your normal, non-root user.
PROFILENAME: Name of the profile you'll want to use.
RANDOM: Random alphanumeric string, autogenerated by mozilla.
YOURUSER, YOURGROUP: User and group of your normal user.

3) Setup a protocol-handler for ed2k links:
cd ~/.mozilla/PROFILENAME/RANDOM.slt/protozilla/protocol

create a file called ed2k.cmd with the following content:

ed2k ed2k:$URI_DATA

(The file doesn't need to be executable).

Now restart Mozilla.


(Probably this will work for the usual links and/or elinks, too)

add to url.c behind the lines about telnet and tn3270:

 {"ed2k", 0, NULL, ed2k_func, 0, 0, 0},

add to links.h behind the definitions of /* mailto.c */:

 void ed2k_func(struct session *, unsigned char *);

add to mailto.c at the end:

 void ed2k_func(struct session *ses, unsigned char *url)
 tn_func(ses, url, options_get("network_program_ed2k"), TEXT(T_ED2K), TEXT(T_BAD_ED2K_URL));

add to options_register.c behind telnet and tn3270:

 register_option_char("network_program_ed2k", TEXT(T_ED2K_PROG),NULL,2);

add to intl/*.lng behind

 "T_TN3270_PROG": T_ED2K_PROG, "ed2k program", (or whatever that is in your language), behind
 "T_TN3270": T_ED2K, "ed2k", and behind 
 "T_BAD_TN3270_URL": T_BAD_ED2K_URL (I guess you've got the picture)

If you want to automatize this stuff, execute the following commands:

 cd intl
 for l in *.lng; do
   cp $l $l.bak
   cat $l.bak | sed -e "/T_TN3270_PROG*/aT_ED2K_PROG\, \"ed2k program\"\," \
    -e "/T_TN3270,\ */aT_ED2K\, \"ed2k\"\," \
    -e "/T_BAD_TN3270_URL*/aT_BAD_ED2K_URL\, \"Bad ed2k url\"\," > $l

Anyway, run afterwards before recompiling links-hacked:

 cd ..

Now you can compile with

 ./configure (add your favourite options here) &&
 make &&
 make install

Because links somewhat malforms the urls, we need a small bash script handler:

 cat > /usr/bin/ed2k4links.sh << "EOF"
 ed2k $(echo "ed2k://$1" | sed s/_/\|/g)
 chmod a+x /usr/bin/ed2k4links.sh

Do not forget to setup links (Options->Network Options->Mail and Telnet Programs) to call our ed2k4links.sh for ed2k links:

 ed2k4links.sh %

Attention: The Percent Mark is important! Now links should work with ed2k links.

Remotely handling links

You can also handle links remotely, which means that you click over an ed2k link in a browser somewhere in the world and it gets into your home's aMule queue.


Easy enough: using aMuleCMD (thanks djtm for this tip). Instead of using the ed2k command, use the following as the command to use:

/path/to/amulecmd -rh $server -pw $pw -c "Add %u"

Obviously, you'll have to replace $server and $pw with your server's IP (or DNS) and your External Connections password.

Please note that the above tip is only available since aMule 2.0.0rc8.

NOTE 1: In Firefox, it is not possible to start a command with parameters. An easy solution is a shell script with the command described above. You only have to replace %u with $1. This shell script must be executable (chmod +x ed2k.sh) and defined as external ed2k app in Firefox.

NOTE 2: If you prefer simple tools, try this shell script (for Linux) - can be used with the above mentioned tip:

beep -f 100 -l 40 -r2
(sleep 1; echo dllink $1; sleep 2; echo q;) | nc IP PORT
beep -l 15 -r3

nc is Netcat, but you can use telnet too (that's a bit simpler in Cygwin), beep is a simple program for beeping. IP and PORT should be replaced with the IP address and port of your remote server. That's it.

      • N O T E***

I found the perfect way to do this.

To make FireFox launch ed2k links correctly (in aMule) you have to follow some simple steps to tell it how to handle a new external protocol. This should get rid of the dreaded "ed2k is not a registered protocol" error you were most likely getting before.

  • Enter about:config in the address bar.
  • Right click on the list, select New, then Boolean; enter
 network.protocol-handler.external.ed2k as Preference Name and true as Value
  • Now right click, select New and String; enter

network.protocol-handler.app.ed2k as Preference Name and /usr/bin/ed2k