Difference between revisions of "Ed2k links handling"

From AMule Project FAQ
Jump to: navigation, search
(Special update for mac users)
m (Adjusted Links, Added Version-Tag)
Line 10: Line 10:
  
 
== [http://www.microsoft.com/windows/ie Internet Explorer] ==
 
== [http://www.microsoft.com/windows/ie Internet Explorer] ==
'''by ''[[User:Jacobo221|Jacobo221]]'''''
 
 
 
Go to "Start" -> "Run" and run "regedit" (without quotes).
 
Go to "Start" -> "Run" and run "regedit" (without quotes).
  
Line 27: Line 25:
  
 
== [http://www.konqueror.org Konqueror] ==
 
== [http://www.konqueror.org Konqueror] ==
'''by ''gfdsa'''''
 
 
 
To have ed2k links work from [http://www.konqueror.com Konqueror] you have to add a protocol-file to the directory with the other protocol-files. You can find this directory by searching for file names ending with ''.protocol''. To search run ''`find /usr -name "*.protocol"`'' or ''`find /opt -name "*.protocol"`''. If you're not sure about the directory where KDE is installed you can even put ''/'' as search path.
 
To have ed2k links work from [http://www.konqueror.com Konqueror] you have to add a protocol-file to the directory with the other protocol-files. You can find this directory by searching for file names ending with ''.protocol''. To search run ''`find /usr -name "*.protocol"`'' or ''`find /opt -name "*.protocol"`''. If you're not sure about the directory where KDE is installed you can even put ''/'' as search path.
  
Line 53: Line 49:
  
 
== [http://galeon.sourceforge.net Galeon] ==
 
== [http://galeon.sourceforge.net Galeon] ==
 
 
=== Method 1 ===
 
=== Method 1 ===
 
 
In the [http://freshmeat.net/projects/gnomecc GNOME Control Center] go to "Complex" -> "File Types and Programs" -> "Internet Services" -> "Add Service...".
 
In the [http://freshmeat.net/projects/gnomecc GNOME Control Center] go to "Complex" -> "File Types and Programs" -> "Internet Services" -> "Add Service...".
  
Line 67: Line 61:
  
 
=== Method 2 ===
 
=== Method 2 ===
 
 
Execute the following three commands to create the appropriate ''gconf'' keys:
 
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 string -s /desktop/gnome/url-handlers/ed2k/command "/usr/local/bin/ed2k \"%s\""''
Line 78: Line 71:
  
 
== [http://www.opera.com Opera]  ==
 
== [http://www.opera.com Opera]  ==
'''by ''thermoman (Marcel Meckel)'', ''ender'' and ''[[User:Jacobo221|Jacobo221]]''
 
 
 
=== Clean way ===
 
=== Clean way ===
 
 
In [http://www.opera.com Opera] go to ''Tools->Preferences->Paths and Programms->Add...''
 
In [http://www.opera.com Opera] go to ''Tools->Preferences->Paths and Programms->Add...''
  
Line 91: Line 81:
  
 
=== Dirty way ===
 
=== Dirty way ===
 
 
If the above instructions didn't work, you can try edit ''/etc/opera6rc'' as root or ''~/.opera/opera6.ini'' as non-root and setting:
 
If the above instructions didn't work, you can try edit ''/etc/opera6rc'' as root or ''~/.opera/opera6.ini'' as non-root and setting:
  
Line 100: Line 89:
  
 
=== Opera 6 bug ===
 
=== Opera 6 bug ===
 
 
'''[http://www.opera.com Opera] 6''' doesn't pass complete URL to external programs; only URL without protocol. The way to walk around this follows.
 
'''[http://www.opera.com Opera] 6''' doesn't pass complete URL to external programs; only URL without protocol. The way to walk around this follows.
  
 
==== [http://www.kernel.org Linux] or some other [http://www.unix.org Unix]-like flavour ====
 
==== [http://www.kernel.org Linux] or some other [http://www.unix.org Unix]-like flavour ====
 
 
Create ''amule_submit.sh'' with this content:
 
Create ''amule_submit.sh'' with this content:
  
Line 113: Line 100:
  
 
==== [http://www.microsoft.com/windows Windows] ====
 
==== [http://www.microsoft.com/windows Windows] ====
 
 
Create ''amule_submit.bat'' with this content:
 
Create ''amule_submit.bat'' with this content:
  
 
''X:\path\to\ed2k.exe "ed2k://%1"''
 
''X:\path\to\ed2k.exe "ed2k://%1"''
 
  
 
Change ''ed2k=/path/to/ed2k ed2k://%u'' with ''ed2k=X:\path\to\amule_submit.bat ed2k://%u''
 
Change ''ed2k=/path/to/ed2k ed2k://%u'' with ''ed2k=X:\path\to\amule_submit.bat ed2k://%u''
  
 
== [http://www.mozilla.org Mozilla] 1.7 (or later) & [http://www.mozilla.org/products/firefox Firefox] 0.9 (or later)==
 
== [http://www.mozilla.org Mozilla] 1.7 (or later) & [http://www.mozilla.org/products/firefox Firefox] 0.9 (or later)==
'''by ''GhePeU'''''
 
 
 
Mozex doesn't work anymore with [http://www.mozilla.org Mozilla] 1.7 and [http://www.mozilla.org/products/firefox Firefox] 0.9. There is an alternate method that seems to be working with both of them:
 
Mozex doesn't work anymore with [http://www.mozilla.org Mozilla] 1.7 and [http://www.mozilla.org/products/firefox Firefox] 0.9. There is an alternate method that seems to be working with both of them:
  
Line 139: Line 122:
  
 
'''NOTE 2:''' 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.
 
'''NOTE 2:''' 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.
 
  
 
== [http://xray.sai.msu.ru/~karpov/links-hacked Links] ==
 
== [http://xray.sai.msu.ru/~karpov/links-hacked Links] ==
Line 205: Line 187:
  
 
== Remotely handling 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.
 
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.
  
Line 218: Line 199:
 
''/'''path'''/'''to'''/amulecmd -h $server -P $pw -c "Add %u"
 
''/'''path'''/'''to'''/amulecmd -h $server -P $pw -c "Add %u"
  
Obviously, you'll have to replace ''$server'' and ''$pw'' with your server's [[IP]] (or [http://www.webopedia.com/TERM/D/DNS.html DNS]) and your [[External Connections]] password.
+
Obviously, you'll have to replace ''$server'' and ''$pw'' with your server's [[IP address|IP]] (or [http://www.webopedia.com/TERM/D/DNS.html DNS]) and your [[External Connections]] password.
  
 
Please note that the above tip is only available since [[aMule]] 2.0.0rc8.
 
Please note that the above tip is only available since [[aMule]] 2.0.0rc8.
Line 246: Line 227:
 
* Now right click, select New and String; enter
 
* Now right click, select New and String; enter
 
network.protocol-handler.app.ed2k as Preference Name and /usr/bin/ed2k:
 
network.protocol-handler.app.ed2k as Preference Name and /usr/bin/ed2k:
 
 
 
  
 
== Special notes regarding Remotely handling links and Internet Explorer (win32) ==
 
== Special notes regarding Remotely handling links and Internet Explorer (win32) ==
 
 
- Create a file called "ed2k_remote.reg" and insert this lines (ignore the [START CODE] and [END CODE]) and save it:
 
- Create a file called "ed2k_remote.reg" and insert this lines (ignore the [START CODE] and [END CODE]) and save it:
  
Line 274: Line 251:
  
 
[END CODE]
 
[END CODE]
 
  
 
- Create a file called "ed2k_remote.bat" and insert this lines (ignore the [START CODE] and [END CODE] and save it:
 
- Create a file called "ed2k_remote.bat" and insert this lines (ignore the [START CODE] and [END CODE] and save it:
Line 300: Line 276:
 
Good luck.
 
Good luck.
  
FJorgeR.
+
PS: Pay attention data is case sensetive for amulecmd option switch's.
  
 
+
== Version ==
PS: Pay attention data is case sensetive for amulecmd option switch's.
+
Created by Jacobo221 on 31.03.04 at 03:44<br>
 +
Updated by Vollstrecker on 23.01.08 at 14.40

Revision as of 15:39, 23 January 2008

English | Deutsch | Nederlands | Korean

The way to have aMule handle your ed2k links on your favorite WebBrowser will depend on which WebBrowser you use. So, here's a list of mini-HowTos for each of the most popular WebBrowsers. Have in mind that everywhere on this document, /path/to/ed2k should be replaced with /usr/local/bin/ed2k, /usr/bin/ed2k, C:\Program Files\aMule\ed2k.exe or whatever, depending on your own system's configuration.

As a general idea, in most Linux systems, self-compiled aMules will install the ed2k utility in /usr/local/bin/ed2k, while package-installed aMules will install it in /usr/bin/ed2k. As an exception, it is known that SuSE packages install it in /usr/local/bin/ed2k.

Special update for mac users

See this thread for an explanation on how to use ed2k-links on Mac.

Internet Explorer

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.

http://www.amule.org/dev-up/ed2k-win1.jpg

Now just double click on "(Default)" (or "(Standard)" 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".

http://www.amule.org/dev-up/ed2k-win2.jpg

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

Konqueror

To have ed2k links work from Konqueror you have to add a protocol-file to the directory with the other protocol-files. You can find this directory by searching for file names ending with .protocol. To search run `find /usr -name "*.protocol"` or `find /opt -name "*.protocol"`. If you're not sure about the directory where KDE is installed you can even put / as search path.

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

[Protocol]
exec=/path/to/ed2k "%u"
protocol=ed2k
input=none
output=none
helper=true
listing=false
reading=false
writing=false
makedir=false
deleting=false

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.

Galeon

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

Opera

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

http://www.amule.org/dev-up/ed2k-op.jpg

Dirty way

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

[User Prefs]
TrustedExternalURLProtocols=ed2k
[Trusted Applications]
ed2k=ed2k

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:

#!/bin/sh
/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

Windows

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)

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.

http://www.amule.org/dev-up/ed2k-ff9.jpg

NOTE 1: Maybe you have to install "amule-utils" to get this way working with Kubuntu-Linux.

NOTE 2: 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.

Links

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

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

 --snip
 {"ed2k", 0, NULL, ed2k_func, 0, 0, 0},
 --snap

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

 --snip
 void ed2k_func(struct session *, unsigned char *);
 --snap

add to mailto.c at the end:

 --snip
 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));
 }
 --snap

add to options_register.c behind telnet and tn3270:

 --snip
 register_option_char("network_program_ed2k", TEXT(T_ED2K_PROG),NULL,2);
 --snap

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
 done
 

Anyway, run afterwards before recompiling links-hacked:

 ./synclang
 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"
 #!/bin/bash
 ed2k $(echo "ed2k://$1" | sed s/_/\|/g)
 EOF
 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.

How?

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"

On newer version the command is:

/path/to/amulecmd -h $server -P $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:

#!/bin/bash
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:

Special notes regarding Remotely handling links and Internet Explorer (win32)

- Create a file called "ed2k_remote.reg" and insert this lines (ignore the [START CODE] and [END CODE]) and save it:

[START CODE]

REGEDIT4

[HKEY_CLASSES_ROOT\ed2k] @="URL: ed2k Protocol" "URL Protocol"=""

[HKEY_CLASSES_ROOT\ed2k\DefaultIcon] @="C:\\Program Files\\aMule\\amulegui.exe"

[HKEY_CLASSES_ROOT\ed2k\shell] @="open"

[HKEY_CLASSES_ROOT\ed2k\shell\open]

[HKEY_CLASSES_ROOT\ed2k\shell\open\command] @="\"C:\\Program Files\\aMule\\ed2k_remote.bat\" \"add %1\""

[END CODE]

- Create a file called "ed2k_remote.bat" and insert this lines (ignore the [START CODE] and [END CODE] and save it:

[START CODE]

"c:\Program Files\aMule\amulecmd.exe" /h REPLACE_WITH_YOUR_HOST_IP_ADDRESS /P REPLACE_WITH_YOUR_PASSWORD /c %1

[END CODE]

PS: don't forget to replace the fields "REPLACE_WITH_YOUR_HOST_IP_ADDRESS" and "REPLACE_WITH_YOUR_PASSWORD" with your data and save the file again.

- Make sure that you did select all options during aMule installation (amulecmd must be installed).

- Copy the files "ed2k_remote.reg" / "ed2k_remote.bat" to the amule installation directory, for example "c:\Program Files\aMule".

- If your Windows isn't English (%ProgramFiles% variable is different that the stated above) edit "ed2k_remote.reg" and change all paths to the correct one. If you don't know what your path is, at a command prompt type "set ProgramFiles" your path will be on screen.

- Double click on "ed2k_remote.reg" file.

- Edit "ed2k_remote.bat" file and insert your Host IP and also your Password (Host IP next to the /h switch and the Password after the /P switch). Don't forget to check/change the "Program Files" directory too.

Test it ;)

Good luck.

PS: Pay attention data is case sensetive for amulecmd option switch's.

Version

Created by Jacobo221 on 31.03.04 at 03:44
Updated by Vollstrecker on 23.01.08 at 14.40