The branch, eden has been updated
via 78a8559c46a58660d88e1fc8f238767e2342840c (commit)
from fd46ffb2f673c0397400fe0e3dcae3a7d09ca3f7 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=78a8559c46a58660d88e1fc8f238767e2342840c
commit 78a8559c46a58660d88e1fc8f238767e2342840c
Author: Martijn Kaijser <[email protected]>
Date: Fri Jan 4 23:44:42 2013 +0100
[script.module.urlresolver] -1.0.4
diff --git a/script.module.urlresolver/addon.xml
b/script.module.urlresolver/addon.xml
index c454ab0..569ad0b 100644
--- a/script.module.urlresolver/addon.xml
+++ b/script.module.urlresolver/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.module.urlresolver"
name="urlresolver"
- version="1.0.3"
+ version="1.0.4"
provider-name="XBMCHub.com">
<requires>
<import addon="xbmc.python" version="2.0" />
diff --git a/script.module.urlresolver/changelog.txt
b/script.module.urlresolver/changelog.txt
index 0999208..00f5dcc 100644
--- a/script.module.urlresolver/changelog.txt
+++ b/script.module.urlresolver/changelog.txt
@@ -1,3 +1,7 @@
+[B]Version 1.0.4[/B]
+- Updated putlocker and vidxden resolvers
+- Updated real-debrid
+
[B]Version 1.0.3[/B]
- Fixed putlocker
diff --git a/script.module.urlresolver/lib/urlresolver/plugins/putlocker.py
b/script.module.urlresolver/lib/urlresolver/plugins/putlocker.py
index f7aa93d..15b858e 100644
--- a/script.module.urlresolver/lib/urlresolver/plugins/putlocker.py
+++ b/script.module.urlresolver/lib/urlresolver/plugins/putlocker.py
@@ -62,29 +62,22 @@ class PutlockerResolver(Plugin, UrlResolver,
PluginSettings):
#find playlist code
r = re.search('\?stream=(.+?)\'', html)
if r:
- playlist_code = r.group(1)
+ code = r.group(1)
else:
common.addon.log_error('putlocker: playlist code not found')
return False
- #find download link
- xml_url = re.sub('/(file|embed)/.+', '/get_file.php?stream=', web_url)
- xml_url += playlist_code
- try:
- html = self.net.http_GET(xml_url).content
- except urllib2.URLError, e:
- common.addon.log_error('putlocker: got http error %d fetching %s' %
- (e.code, xml_url))
- return False
-
- r = re.search('url="(.+?)"', html)
- if r:
- flv_url = r.group(1)
+ #download & return link.
+ if r and 'putlocker' in host:
+ Avi = "http://putlocker.com/get_file.php?stream=%s&original=1"%code
+ html = self.net.http_GET(Avi).content
+ final=re.compile('url="(.+?)"').findall(html)[0]
+ return
"%s|User-Agent=%s"%(final,'Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20rv%3A11.0)%20Gecko%2F20100101%20Firefox%2F11.0')
else:
- common.addon.log_error('putlocker: stream url not found')
- return False
- flv_url = flv_url.replace('&','&') #ghizzu
- return flv_url
+ Avi = "http://sockshare.com/get_file.php?stream=%s&original=1"%code
+ html = self.net.http_GET(Avi).content
+ final=re.compile('url="(.+?)"').findall(html)[0]
+ return
"%s|User-Agent=%s"%(final,'Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20rv%3A11.0)%20Gecko%2F20100101%20Firefox%2F11.0')
def get_url(self, host, media_id):
if 'putlocker' in host:
diff --git a/script.module.urlresolver/lib/urlresolver/plugins/realdebrid.py
b/script.module.urlresolver/lib/urlresolver/plugins/realdebrid.py
index 0755b14..cd0c005 100644
--- a/script.module.urlresolver/lib/urlresolver/plugins/realdebrid.py
+++ b/script.module.urlresolver/lib/urlresolver/plugins/realdebrid.py
@@ -55,7 +55,7 @@ class RealDebridResolver(Plugin, UrlResolver, SiteAuth,
PluginSettings):
dialog = xbmcgui.Dialog()
try:
- url = 'http://real-debrid.com/ajax/deb.php?lang=en&sl=1&link=%s' %
media_id
+ url = 'http://real-debrid.com/ajax/deb.php?lang=en&sl=1&link=%s' %
media_id.replace('|User-Agent=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20rv%3A11.0)%20Gecko%2F20100101%20Firefox%2F11.0','')
source = self.net.http_GET(url).content
except Exception, e:
exc_type, exc_obj, exc_tb = sys.exc_info()
diff --git a/script.module.urlresolver/lib/urlresolver/plugins/uploadc.py
b/script.module.urlresolver/lib/urlresolver/plugins/uploadc.py
index 9153a57..0520c19 100644
--- a/script.module.urlresolver/lib/urlresolver/plugins/uploadc.py
+++ b/script.module.urlresolver/lib/urlresolver/plugins/uploadc.py
@@ -15,7 +15,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
-
from t0mm0.common.net import Net
from urlresolver.plugnplay.interfaces import UrlResolver
from urlresolver.plugnplay.interfaces import PluginSettings
@@ -36,11 +35,12 @@ class UploadcResolver(Plugin, UrlResolver, PluginSettings):
p = self.get_setting('priority') or 100
self.priority = int(p)
self.net = Net()
- self.pattern = 'http://((?:www.)?uploadc.com)/([0-9a-zA-Z]+)'
+ # modified by mscreations. uploadc now needs the filename after the
media id so make sure we match that
+ self.pattern =
'http://((?:www.)?uploadc.com)/([0-9a-zA-Z]+/[0-9a-zA-Z/._]+)'
def get_media_url(self, host, media_id):
web_url = self.get_url(host, media_id)
-
+
#get html
try:
html = self.net.http_GET(web_url).content
@@ -62,18 +62,12 @@ class UploadcResolver(Plugin, UrlResolver, PluginSettings):
else:
common.addon.log_error(self.name + ': no fields found')
return False
-
- # get url from packed javascript
- r = re.findall("<script type='text/javascript'>eval.*?return p}" +
- "\((.*?)\)\s*</script>", html, re.DOTALL + re.IGNORECASE)
- if r:
- sJavascript = r[1]
- sUnpacked = jsunpack.unpack(sJavascript)
- sPattern = '<param name="src"0="(.*?)"'
- r = re.search(sPattern, sUnpacked)
- if r:
- return r.group(1)
-
+
+ # modified by mscreations. get the file url from the returned
javascript
+ match = re.search("addVariable[(]'file','(.+?)'[)]", html, re.DOTALL +
re.IGNORECASE)
+ if match:
+ return match.group(1)
+
return False
def get_url(self, host, media_id):
diff --git a/script.module.urlresolver/lib/urlresolver/plugins/vidxden.py
b/script.module.urlresolver/lib/urlresolver/plugins/vidxden.py
index 55c40ae..4aceaf4 100644
--- a/script.module.urlresolver/lib/urlresolver/plugins/vidxden.py
+++ b/script.module.urlresolver/lib/urlresolver/plugins/vidxden.py
@@ -23,15 +23,39 @@ vidxden hosts both avi and flv videos
In testing there seems to be a timing issue with files coming up as not
playable.
This happens on both the addon and in a browser.
"""
-
-import re
-import urllib2
+import urllib2,urllib,xbmcaddon,socket,re,xbmc,os,xbmcgui
from t0mm0.common.net import Net
from urlresolver import common
from urlresolver.plugnplay.interfaces import UrlResolver
from urlresolver.plugnplay.interfaces import PluginSettings
from urlresolver.plugnplay import Plugin
+#SET DEFAULT TIMEOUT FOR SLOW SERVERS:
+socket.setdefaulttimeout(30)
+
+#SET DIRECTORIES
+local=xbmcaddon.Addon(id='script.module.urlresolver')
+logo='http://googlechromesupportnow.com/wp-content/uploads/2012/06/Installation-103-error-in-Chrome.png'
+img="%s/resources/puzzle.png"%local.getAddonInfo('path')
+
+class InputWindow(xbmcgui.WindowDialog):# Cheers to Bastardsmkr code already
done in Putlocker PRO resolver.
+ def __init__(self, *args, **kwargs):
+ self.cptloc = kwargs.get('captcha')
+ self.img = xbmcgui.ControlImage(335,30,624,180,self.cptloc)
+ self.addControl(self.img)
+ self.kbd = xbmc.Keyboard()
+
+ def get(self):
+ self.show()
+ self.kbd.doModal()
+ if (self.kbd.isConfirmed()):
+ text = self.kbd.getText()
+ self.close()
+ return text
+ self.close()
+ return False
+
+
class VidxdenResolver(Plugin, UrlResolver, PluginSettings):
implements = [UrlResolver, PluginSettings]
name = "vidxden"
@@ -44,30 +68,41 @@ class VidxdenResolver(Plugin, UrlResolver, PluginSettings):
def get_media_url(self, host, media_id):
web_url = self.get_url(host, media_id)
""" Human Verification """
+
try:
resp = self.net.http_GET(web_url)
html = resp.content
- post_url = resp.get_url()
-
- form_values = {}
- for i in re.finditer('<input name="(.+?)".+?value="(.+?)"', html):
- form_values[i.group(1)] = i.group(2)
-
- html = self.net.http_POST(post_url, form_data=form_values).content
-
+ try: os.remove(img)
+ except: pass
+ try:
+ filename=re.compile('<input name="fname" type="hidden"
value="(.+?)">').findall(html)[0]
+ noscript=re.compile('<iframe src="(.+?)"').findall(html)[0]
+ check = self.net.http_GET(noscript).content
+ hugekey=re.compile('id="adcopy_challenge"
value="(.+?)">').findall(check)[0]
+ headers= {'User-Agent':'Mozilla/6.0 (Macintosh; I; Intel Mac
OS X 11_7_9; de-LI; rv:1.9b4) Gecko/2012010317 Firefox/10.0a4',
+
'Host':'api.solvemedia.com','Referer':resp.get_url(),'Accept':'image/png,image/*;q=0.8,*/*;q=0.5'}
+ open(img, 'wb').write(
self.net.http_GET("http://api.solvemedia.com%s"%re.compile('<img
src="(.+?)"').findall(check)[0]).content)
+ solver = InputWindow(captcha=img)
+ puzzle = solver.get()
+ if puzzle:
+
data={'adcopy_response':urllib.quote_plus(puzzle),'adcopy_challenge':hugekey,'op':'download1','method_free':'1','usr_login':'','id':media_id,'fname':filename}
+ html = self.net.http_POST(resp.get_url(),data).content
+ except:
+ xbmc.executebuiltin('XBMC.Notification([B][COLOR
white]VIDXDEN[/COLOR][/B],[COLOR red]No such file or the file has been removed
due to copyright infringement issues[/COLOR],2500,'+logo+')')
+ pass
except urllib2.URLError, e:
common.addon.log_error('vidxden: got http error %d fetching %s' %
(e.code, web_url))
return False
-
+
#find packed javascript embed code
r = re.search('return p}\(\'(.+?);\',\d+,\d+,\'(.+?)\'\.split',html)
if r:
p, k = r.groups()
else:
common.addon.log_error('vidxden: packed javascript embed code not
found')
-
- decrypted_data = unpack_js(p, k)
+ try: decrypted_data = unpack_js(p, k)
+ except: pass
#First checks for a flv url, then the if statement is for the avi url
r = re.search('file.\',.\'(.+?).\'', decrypted_data)
@@ -79,7 +114,7 @@ class VidxdenResolver(Plugin, UrlResolver, PluginSettings):
common.addon.log_error('vidxden: stream url not found')
return False
- return stream_url
+ return
"%s|User-Agent=%s"%(stream_url,'Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20rv%3A11.0)%20Gecko%2F20100101%20Firefox%2F11.0')
def get_url(self, host, media_id):
@@ -88,8 +123,7 @@ class VidxdenResolver(Plugin, UrlResolver, PluginSettings):
else:
host = 'www.vidxden.com'
return 'http://%s/%s' % (host, media_id)
-
-
+
def get_host_and_id(self, url):
r = re.search('//(.+?)/(?:embed-)?([0-9a-z]+)', url)
if r:
@@ -103,7 +137,7 @@ class VidxdenResolver(Plugin, UrlResolver, PluginSettings):
'(embed-)?[0-9a-z]+', url) or
'vidxden' in host or 'divxden' in host or
'vidbux' in host)
-
+
def unpack_js(p, k):
'''emulate js unpacking code'''
@@ -135,4 +169,5 @@ def base36encode(number,
alphabet='0123456789abcdefghijklmnopqrstuvwxyz'):
base36 = alphabet[i] + base36
return sign + base36
+
-----------------------------------------------------------------------
Summary of changes:
script.module.urlresolver/.gitignore | 10 ++
script.module.urlresolver/addon.xml | 2 +-
script.module.urlresolver/changelog.txt | 4 +
.../plugins/{realdebrid.py => alldebrid.py} | 91 +++++++-------------
.../lib/urlresolver/plugins/putlocker.py | 29 +++----
.../lib/urlresolver/plugins/realdebrid.py | 2 +-
.../lib/urlresolver/plugins/uploadc.py | 24 ++---
.../lib/urlresolver/plugins/vidxden.py | 71 +++++++++++----
8 files changed, 119 insertions(+), 114 deletions(-)
create mode 100644 script.module.urlresolver/.gitignore
copy script.module.urlresolver/lib/urlresolver/plugins/{realdebrid.py =>
alldebrid.py} (58%)
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons