All apologies for being a newb; I hope this is a fair place to make this post.
I saw a tweet re xbmc on the IceFilms.info site yesterday, so I installed xbmc, the IceFilms plugin, and JDownloader. When all these were updated they did not work together. With a little investigation I discovered the problem.
It's easy enough to make the fix yourselves while we wait for an official patch.
Issue
xbmc jdownloader plugin makes a JDownloader Remote Control HTTP POST that is no longer properly parsed by JDownloader. (I will describe in greater detail how I know this below.)
This is what xbmc jdownloader plugin sends:
127.0.0.1:10025/action/add/links/grabber0/start1/http://www.megaupload.com/?d=MRFT164Q&w=626&h=395
This is what my patch will send:
127.0.0.1:10025/action/add/links/grabber0/start1/http://www.megaupload.com/%3Fd=MRFT164Q&w=626&h=395
As you can see I have replaced '?' with the URL escape code '%3F'. When sending the origianl POST (
http://127.0.0.1:10025/action/add/links/...=626&h=395) this is the repsonse:
Quote:Link(s) added. ("http://www.megaupload.com/"
"626"
"MRFT164Q"
"395"
)
When sending my patched POST (
http://127.0.0.1:10025/action/add/links/...=626&h=395) we get the desired behavior from JDownloader, and this is the response:
Quote:Link(s) added. ("http://www.megaupload.com/%3Fd=MRFT164Q&w=626&h=395"
)
How to fix
Simply add one line to
jdownloader.py in the
action_addlink definition.
The
jdownloader.py file on my Windows installation is here:
%AppData%\XBMC\addons\plugin.program.jdownloader\resources\lib
(C:\Users\<My Username>\AppData\Roaming\XBMC\addons\plugin.program.jdownloader\resources\lib)
Open this file in an editor and search for the function definition
action_addlink (line 200). Add the line.
Before modification
Code:
# Links seperated by spaces, won't work, call this functions for each link seperatly
def action_addlink(link):
# get settings
grabber = Addon.getSetting("add_use_grabber")
start = Addon.getSetting("add_start")
# add link
result = _http_query('/action/add/links/grabber' + str(grabber) + '/start' + str(start) + '/' + str(link))
return result
After modification
Code:
# Links seperated by spaces, won't work, call this functions for each link seperatly
def action_addlink(link):
# change '?'
link = link.replace( '?', '%3F' )
# get settings
grabber = Addon.getSetting("add_use_grabber")
start = Addon.getSetting("add_start")
# add link
result = _http_query('/action/add/links/grabber' + str(grabber) + '/start' + str(start) + '/' + str(link))
return result
A couple further notes
I just also thought to add something about the process and behavior of the system. If you install xbmc and the IceFilms plugin and the jdownloader plugin I believe you get the latest versions. However, if you use the installer for JDownloader you get a fairly old version (It needed 941 patches.). Using this "clean install" of JDownloader you can add the link via the xbmc jdownloader plugin to JDownloader--but the link will not download. JDownloader unpatched has an error in the way it deals with the current version of MegaUpload so even though the HTTP remote control system adds the link properly, the link added doesn't actually work.
Now, when you update JDownloader (and why does it take so long?!) the behavior changes. The xbmc jdownloader plugin can no longer successfully send the link to JDownloader. With some investigation we can see that the patched JDownloader is coughing on parsing the query ('?') portion of the MegaUpload URL and breaking the URL into unworkable bits. (See the HTTP Responses I post above, or simply do the HTTP POST in a browser for your self.) If we escape the query indicator '?' into its code '%3F' then the JDownloader parser successfully adds a link--and most importantly, the patched JDownloader succeeds in downloading the flippin file!
As I say I'm a n00b so I don't see quickly how to just add a link to this file for your convenience. Still, it's easy enough to make the change yourselves.
I will also go over and write up a bug report. Please feel free to tell me I've posted in the wrong place, etc. I hope I've provided sufficient info.
Cheers!