.*?'''
+ r = re.search(sPattern, html, re.DOTALL + re.IGNORECASE)
- print 'Sharerepo - Requesting POST URL: %s DATA: %s' % (url, data)
- html = net.http_POST(url, data).content
-
- dialog.update(50)
-
- sPattern = '''
.*?'''
- r = re.search(sPattern, html, re.DOTALL + re.IGNORECASE)
-
- if r:
- sJavascript = r.group(1)
- sUnpacked = jsunpack.unpack(sJavascript)
- sPattern = '''("video/divx"src="|addVariable\('file',')(.+?)video[.]'''
- r = re.search(sPattern, sUnpacked)
if r:
- link = r.group(2) + fname
- dialog.close()
- return link
-
- if not link:
- print '***** Sharerepo - Link Not Found'
- raise Exception("Unable to resolve Sharerepo")
-
+ sJavascript = r.group(1)
+ sUnpacked = jsunpack.unpack(sJavascript)
+ sPattern = '''("video/divx"src="|addVariable\('file',')(.+?)video[.]'''
+ r = re.search(sPattern, sUnpacked)
+ if r:
+ link = r.group(2) + fname
+ dialog.close()
+ return link
+
+ if not link:
+ raise Exception("Unable to resolve Sharerepo")
+
+ except Exception, e:
+ common.addon.log('**** Sharerepo Error occured: %s' % e)
+ common.addon.show_small_popup('Error', str(e), 5000, '')
+ return False
+
def get_url(self, host, media_id):
- print 'Sharerepo: in get_url %s %s' % (host, media_id)
return 'http://sharerepo.com/%s' % media_id
diff --git a/lib/urlresolver/plugins/veeHD.py b/lib/urlresolver/plugins/veeHD.py
index 70da7d93..e475fc9b 100644
--- a/lib/urlresolver/plugins/veeHD.py
+++ b/lib/urlresolver/plugins/veeHD.py
@@ -16,21 +16,17 @@
along with this program. If not, see
.
"""
-import os
-import random
-import re
-import urllib, urllib2
-import xbmc
from urlresolver.plugnplay.interfaces import UrlResolver
from urlresolver.plugnplay.interfaces import SiteAuth
from urlresolver.plugnplay.interfaces import PluginSettings
from urlresolver.plugnplay import Plugin
from urlresolver import common
-import xbmc,xbmcplugin,xbmcgui,xbmcaddon, datetime
-import cookielib
+import xbmcaddon, cookielib, os, re, urllib, urllib2, xbmc
from t0mm0.common.net import Net
net = Net()
+addon_id = 'plugin.video.dailyflix'
+selfAddon = xbmcaddon.Addon(id=addon_id)
class veeHDResolver(Plugin, UrlResolver, SiteAuth, PluginSettings):
implements = [UrlResolver, SiteAuth, PluginSettings]
@@ -47,40 +43,45 @@ def __init__(self):
except OSError:
pass
- #UrlResolver methods
def get_media_url(self, host, media_id):
- web_url = self.get_url(host, media_id)
try:
- html = self.net.http_GET(web_url).content
- except urllib2.URLError, e:
- common.addon.log_error(self.name + '- got http error %d fetching %s' %
- (e.code, web_url))
- return False
-
- fragment = re.search('playeriframe".+?attr.+?src : "(.+?)"', html)
- frag = 'http://%s%s'%(host,fragment.group(1))
- xbmc.log(frag)
- try:
- html = self.net.http_GET(frag).content
- except urllib2.URLError, e:
- common.addon.log_error(self.name + '- got http error %d fetching %s' %
- (e.code, web_url))
- return False
- r = re.search('"video/divx" src="(.+?)"', html)
- if r:
- stream_url = r.group(1)
- else:
- message = self.name + '- 1st attempt at finding the stream_url failed probably an Mp4, finding Mp4'
- common.addon.log_debug(message)
- a = re.search('"url":"(.+?)"', html)
- r=urllib.unquote(a.group(1))
+ web_url = self.get_url(host, media_id)
+ try:
+ html = self.net.http_GET(web_url).content
+ except urllib2.URLError, e:
+ common.addon.log_error(self.name + '- got http error %d fetching %s' %
+ (e.code, web_url))
+ return False
+
+ fragment = re.search('playeriframe".+?attr.+?src : "(.+?)"', html)
+ frag = 'http://%s%s'%(host,fragment.group(1))
+ xbmc.log(frag)
+ try:
+ html = self.net.http_GET(frag).content
+ except urllib2.URLError, e:
+ common.addon.log_error(self.name + '- got http error %d fetching %s' %
+ (e.code, web_url))
+ return False
+ r = re.search('"video/divx" src="(.+?)"', html)
if r:
- stream_url = r
+ stream_url = r.group(1)
else:
- message = self.name + '- Giving up on finding the stream_url'
- common.addon.log_error(message)
- return False
- return stream_url
+ message = self.name + '- 1st attempt at finding the stream_url failed probably an Mp4, finding Mp4'
+ common.addon.log_debug(message)
+ a = re.search('"url":"(.+?)"', html)
+ r=urllib.unquote(a.group(1))
+ if r:
+ stream_url = r
+ else:
+ message = self.name + '- Giving up on finding the stream_url'
+ common.addon.log_error(message)
+ return False
+ return stream_url
+
+ except Exception, e:
+ common.addon.log('**** VeeHD Error occured: %s' % e)
+ common.addon.show_small_popup('Error', str(e), 5000, '')
+ return False
def get_url(self, host, media_id):
@@ -99,13 +100,12 @@ def valid_url(self, url, host):
return (re.match('http://(www.)?veehd.com/' +
'[0-9A-Za-z]+', url) or
'veehd' in host)
- #SiteAuth methods
def login(self):
loginurl = 'http://veehd.com/login'
ref = 'http://veehd.com/'
submit = 'login'
- login = self.get_setting('veeHDResolver_username')
- pword = self.get_setting('veeHDResolver_password')
+ login = selfAddon.getSetting('veeHDResolver_username')
+ pword = selfAddon.getSetting('veeHDResolver_password')
terms = 'on'
remember = 'on'
data = {'ref': ref, 'uname': login, 'pword': pword, 'submit': submit, 'terms': terms, 'remember_me': remember}
@@ -115,9 +115,7 @@ def login(self):
return True
else:
return False
-
-
- #PluginSettings methods
+
def get_settings_xml(self):
xml = PluginSettings.get_settings_xml(self)
xml += '
\n'
return xml
- #to indicate if this is a universal resolver
def isUniversal(self):
return True
diff --git a/lib/urlresolver/plugins/vidbull.py b/lib/urlresolver/plugins/vidbull.py
index 1da90fd2..440bdf59 100644
--- a/lib/urlresolver/plugins/vidbull.py
+++ b/lib/urlresolver/plugins/vidbull.py
@@ -21,11 +21,8 @@
from urlresolver.plugnplay.interfaces import PluginSettings
from urlresolver.plugnplay import Plugin
import re
-import urllib2, xbmcgui, time, xbmc
from urlresolver import common
-import os
-
-
+from lib import jsunpack
net = Net()
@@ -41,42 +38,48 @@ def __init__(self):
def get_media_url(self, host, media_id):
- print 'Vidbull: in get_media_url %s %s' % (host, media_id)
- url = self.get_url(host, media_id)
- html = self.net.http_GET(url).content
- #Show dialog box so user knows something is happening
- dialog = xbmcgui.DialogProgress()
- dialog.create('Resolving', 'Resolving Vidbull Link...')
- dialog.update(0)
-
- time.sleep(4)
-
- dialog.create('Resolving', 'Resolving Vidbull Link...')
- dialog.update(50)
-
- op = re.search('
', html).group(1)
- postid = re.search('
', html).group(1)
- rand = re.search('
', html).group(1)
- referer = ''
- method_free = ''
- down_direct = 1
-
- data = {'op': op, 'id': postid, 'rand': rand, 'referer': referer, 'method_free': method_free, 'down_direct': down_direct}
-
- print 'Vidbull - Requesting POST URL: %s DATA: %s' % (url, data)
- html = net.http_POST(url, data).content
-
- num = re.compile('event\|(.+?)\|aboutlink').findall(html)
- pre = 'http://'+num[0]+'.vidbull.com:182/d/'
- preb = re.compile('image\|(.+?)\|video\|(.+?)\|').findall(html)
- for ext, link in preb:
+ try:
+ url = self.get_url(host, media_id)
+ html = self.net.http_GET(url).content
+ check = re.compile('File Not Found').findall(html)
+ if check:
+ raise Exception(str(check))
+
+ data = {}
+ r = re.findall(r'type="hidden" name="((?!(?:.+premium)).+?)"\s* value="?(.+?)">', html)
+ for name, value in r:
+ data[name] = value
+
+ common.addon.show_countdown(4, title='Muchshare', text='Loading Video...')
+ html = net.http_POST(url, data).content
+
+ sPattern = ''
+ r = re.search(sPattern, html, re.DOTALL + re.IGNORECASE)
+ if r:
+ sJavascript = r.group(1)
+ sUnpacked = jsunpack.unpack(sJavascript)
+ sPattern = '
.
+'''
+
+from t0mm0.common.net import Net
+from urlresolver.plugnplay.interfaces import UrlResolver
+from urlresolver.plugnplay.interfaces import PluginSettings
+from urlresolver.plugnplay import Plugin
+import re, xbmcgui
+from urlresolver import common
+from lib import jsunpack
+
+net = Net()
+
+class VideozedResolver(Plugin, UrlResolver, PluginSettings):
+ implements = [UrlResolver, PluginSettings]
+ name = "videozed"
+
+
+ def __init__(self):
+ p = self.get_setting('priority') or 100
+ self.priority = int(p)
+ self.net = Net()
+
+
+ def get_media_url(self, host, media_id):
+ try:
+ url = self.get_url(host, media_id)
+ html = self.net.http_GET(url).content
+ dialog = xbmcgui.DialogProgress()
+ dialog.create('Resolving', 'Resolving Videozed Link...')
+ dialog.update(0)
+
+ data = {}
+ r = re.findall(r'type="(?:hidden|submit)?" name="(.+?)"\s* value="?(.+?)">', html)
+ for name, value in r:
+ data[name] = value
+
+ html = net.http_POST(url, data).content
+
+ captcha = re.compile("left:(\d+)px;padding-top:\d+px;'>(.+?);<").findall(html)
+ result = sorted(captcha, key=lambda ltr: int(ltr[0]))
+ solution = ''.join(str(int(num[1])-48) for num in result)
+
+ r = re.findall(r'type="hidden" name="(.+?)" value="(.+?)">', html)
+ for name, value in r:
+ data[name] = value
+ data.update({'code':solution})
+
+ html = net.http_POST(url, data).content
+
+ sPattern = ''
+ r = re.search(sPattern, html, re.DOTALL + re.IGNORECASE)
+ if r:
+ sJavascript = r.group(1)
+ sUnpacked = jsunpack.unpack(sJavascript)
+ sPattern = '