Advertisement
Guest User

default

a guest
Nov 2nd, 2011
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 40.38 KB | None | 0 0
  1. import urllib,urllib2,re,sys,xbmcplugin,xbmcgui
  2. import cookielib,os,string,cookielib,StringIO
  3. import os,time,base64,logging
  4. import xbmcaddon
  5.  
  6. fpt=xbmcaddon.Addon(id='plugin.video.fpt')
  7. pluginhandle = int(sys.argv[1])
  8.  
  9. def login():
  10.     urlogin = 'http://www.fastpasstv.eu/register'
  11.     cookiejar = cookielib.LWPCookieJar()
  12.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  13.     opener = urllib2.build_opener(cookiejar)
  14.     urllib2.install_opener(opener)
  15.     values = {'login': uname,'password': pwd}
  16.     user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0a1) Gecko/20111029 Firefox/10.0a1'
  17.     headers = { 'User-Agent' : user_agent }
  18.     data = urllib.urlencode(values)
  19.     req = urllib2.Request(urlogin, data, headers)
  20.     response = urllib2.urlopen(req)
  21.  
  22. def geturl(url):
  23.         req = urllib2.Request(url)
  24.         req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0a1) Gecko/20111029 Firefox/10.0a1')
  25.         response = urllib2.urlopen(req)
  26.         link=response.read()
  27.         return link
  28.  
  29. def redirect(url):
  30.         req = urllib2.Request(url)
  31.         req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0a1) Gecko/20111029 Firefox/10.0a1')
  32.         response = urllib2.urlopen(req)
  33.         gurl=response.geturl()
  34.         return gurl
  35.  
  36. def xbmcpath(path,filename):
  37.      translatedpath = os.path.join(xbmc.translatePath( path ), ''+filename+'')
  38.      return translatedpath
  39.  
  40. def openfile(filename):
  41.      fh = open(filename, 'r')
  42.      contents=fh.read()
  43.      fh.close()
  44.      return contents
  45.  
  46. def save(filename,contents):  
  47.      fh = open(filename, 'w')
  48.      fh.write(contents)  
  49.      fh.close()
  50.  
  51. fptpath = 'special://temp/'
  52. translatedfptpath = xbmcpath(fptpath,'')
  53. referer = xbmcpath(fptpath,'ref.txt')
  54.  
  55. def CATS():
  56.         addDir('Most Popular TV Shows Today','http://www.fastpasstv.ms/',14,'')
  57.         addDir('Most Popular Movies Today','http://www.fastpasstv.ms/',5,'')
  58.         addDir('Latest Added TV Shows','http://www.fastpasstv.ms/tv/',4,'')
  59.         addDir('Latest Added Movies','http://www.fastpasstv.ms/movies',20,'')
  60.         addDir('Latest Added Documentaries','http://www.fastpasstv.ms/documentaries',22,'')
  61.         addDir('Latest Added Cartoons','http://www.fastpasstv.ms/cartoons',22,'')
  62.         addDir('All TV Shows','http://www.fastpasstv.ms/tv',2,'')
  63.     addDir('All Movies','http://www.fastpasstv.ms/movies',1,'')
  64.     addDir('All Documentaries','http://www.fastpasstv.ms/documentaries',1,'')
  65.     addDir('All Cartoons','http://www.fastpasstv.ms/cartoons',1,'')
  66.     addDir('Search','http://www.fastpasstv.ms/',9,'')
  67.  
  68. def NEWEP(url,name):
  69.         link= geturl(url)
  70.         tvs=re.compile('<li><a href="/tv/(.+?)">(.+?)</a></li>').findall(link)
  71.     for url2,name in tvs:
  72.         addDir(name,'http://www.fastpasstv.ms/tv/'+url2,18,'')
  73.  
  74. def MOVALL(url,name):
  75.         link= geturl(url)
  76.         mvs=re.compile('<li.+?><a[^>]+?href="(.+?)">(.+?)<span class="epnum">.+?</span></a></li>').findall(link)
  77.     for url,name in mvs:
  78.         addDir(name.replace('<font class="newvid">New Episodes!</font>','(NEW EPISODE)').replace('<font class="newvid">New!</font>','(NEW)'),'http://www.fastpasstv.ms'+url,18,'')
  79.  
  80. def MOVLAT(url,name):
  81.         link= geturl(url)
  82.     all = re.compile('<b>Latest additions</b>.+?<ul class="pagination">', re.DOTALL).findall(link)
  83.         mv = re.compile('<a href="(.+?)">(.+?)</a>').findall(all[0])
  84.     for url,name in mv:
  85.         addDir(name.replace('&amp;','&'),'http://www.fastpasstv.ms'+url,18,'')
  86.  
  87. def DOCLAT(url,name):
  88.         link= geturl(url)
  89.     all = re.compile('<b>Latest additions</b>.+?<ul class="pagination">', re.DOTALL).findall(link)
  90.         doc = re.compile('<a href="(.+?)">(.+?)</a>').findall(all[0])
  91.     for url,name in doc:
  92.         addDir(name.replace('&amp;','&'),'http://www.fastpasstv.ms'+url,18,'')
  93.  
  94. def X2(url,name):
  95.         link= geturl(url)
  96.         list=re.compile('<li><a title=".+?" href="(.+?)">(.+?)<span class="epnum">(.+?)</span></a></li>').findall(link)
  97.     for url,name,eps in list:
  98.         addDir(name.replace('<font class="newvid">New Episodes!</font>','(NEW EPISODE)')+' ('+eps+')','http://www.fastpasstv.ms'+url,21,'')
  99.  
  100. def Y1(url,name):
  101.         link= geturl(url)
  102.     all = re.compile('<b>Latest additions</b>:.+?<ul class="pagination">', re.DOTALL).findall(link)
  103.         tvs=re.compile('<a href="(.+?)">(.+?)</a>').findall(all[0])
  104.     for url,name in tvs:
  105.         addDir(name.replace('&amp;','&'),'http://www.fastpasstv.ms'+url,18,'')
  106.  
  107. def Y2(url,name):
  108.         link= geturl(url)
  109.         mvs=re.compile('<li><a href="/movies/(.+?)">(.+?)</a></li>').findall(link)
  110.     for url2,name in mvs:
  111.         addDir(name,'http://www.fastpasstv.ms/movies/'+url2,18,'')
  112.  
  113. def Y3(url,name):
  114.         link= geturl(url)
  115.         tvs=re.compile('<li class="episode"><a href="/tv/(.+?)">(.+?)</a></li>').findall(link)
  116.     for url2,name in tvs:
  117.         addDir(name,'http://www.fastpasstv.ms/tv/'+url2,18,'')
  118.  
  119. def Y3MOV(url,name):
  120.     i=0
  121.         req = urllib2.Request(url)
  122.         req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0a1) Gecko/20111029 Firefox/10.0a1')
  123.         response2 = urllib2.urlopen(req)
  124.         ref=response2.geturl()
  125.     save(referer,ref)
  126.         link=response2.read()
  127.     nova=re.compile('<b>Nova.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  128.     mega=re.compile('<b>Megavideo</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  129.         woot=re.compile('<b>Wootly</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  130.         fv2=re.compile('<b>VidX.+?FLV.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  131.         dv=re.compile('<b>VidX.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  132.         dv1=re.compile('<b>VidX.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">1</a>&nbsp;<a href=".+?"').findall(link)
  133.         dv2=re.compile('<b>VidX.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href=".+?" target="_blank">1</a>&nbsp;<a href="(.+?)"').findall(link)
  134.         vidbx=re.compile('<b>VidBux.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  135.         vidbx1=re.compile('<b>VidBux.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">1</a>&nbsp;<a href=".+?"').findall(link)
  136.         vidbx2=re.compile('<b>VidBux.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href=".+?" target="_blank">1</a>&nbsp;<a href="(.+?)"').findall(link)
  137.         wise=re.compile('<b>Wise.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  138.         putloc=re.compile('<b>Putlock.+?</b></td>\n<td class="siteparts" style="width:165px;"><a class="link" href="(.+?)"').findall(link)
  139.         apex=re.compile('<b>apexvid.com</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  140.     for url in apex:
  141.         i=i+1
  142.         addDir('Apexvid (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),24,'')
  143.     for url in nova:
  144.         i=i+1
  145.         addDir('Novamov (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),12,'')
  146.     for url in woot:
  147.         i=i+1
  148.         addDir('Wootly (mp4) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),7,'')
  149.     for url in dv1:
  150.         i=i+1
  151.         addDir('DivxDen (avi) Pt 1 #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),8,'')
  152.     for url in dv2:
  153.         i=i+1
  154.         addDir('DivxDen (avi) Pt 2 #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),8,'')
  155.     for url in dv:
  156.         i=i+1
  157.         addDir('DivxDen (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),8,'')
  158.     for url in vidbx:
  159.         i=i+1
  160.         addDir('VidBux (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),10,'')
  161.     for url in vidbx1:
  162.         i=i+1
  163.         addDir('VidBux (avi) Pt 1 #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),10,'')
  164.     for url in vidbx2:
  165.         i=i+1
  166.         addDir('VidBux (avi) Pt 2 #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),10,'')
  167.     for url in putloc:
  168.         i=i+1
  169.         addDir('PutLocker (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),23,'')
  170.     for url in wise:
  171.         i=i+1
  172.         addDir('Wisevid (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),19,'')
  173.     for url in mega:
  174.         i=i+1
  175.         addDir('Megavideo (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),15,'')
  176.  
  177. def Y3TV(url,name):
  178.     i=0
  179.         req = urllib2.Request(url)
  180.         req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0a1) Gecko/20111029 Firefox/10.0a1')
  181.         response2 = urllib2.urlopen(req)
  182.         ref=response2.geturl()
  183.     save(referer,ref)
  184.         link=response2.read()
  185.     mega=re.compile('<b>Megavid.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  186.         woot=re.compile('<b>Wootly</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  187.         dv=re.compile('<b>Vidxden.+?DivX.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  188.     dvflash=re.compile('<b>Vidxden.+?Flash.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  189.         vidbx=re.compile('<b>VidBux.+?DivX.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  190.         vidbx2=re.compile('<b>VidBux.+?FLV.+?</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  191.  
  192.         wise=re.compile('<b>WiseVid</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  193.         putloc=re.compile('<b>putlocker.com</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  194.         apex=re.compile('<b>apexvid.com</b></td>\n<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  195.  
  196.     divxavi=re.compile('<b>Divxden.+?DivX.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  197.     divxflash=re.compile('<b>Divxden.+?Flash.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)" target="_blank">Watch This Video!').findall(link)
  198.  
  199.         new2=re.compile('<b>Put.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  200.         new3=re.compile('<b>Vidbu.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  201.     new4=re.compile('<b>Novamo.+?</b></td>\n.+?<td class="siteparts" style="width:.+?px;"><a class="link" href="(.+?)"').findall(link)
  202.     for url in apex:
  203.         i=i+1
  204.         addDir('Apexvid (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),24,'')
  205.  
  206.     for url in dv:
  207.         i=i+1
  208.         addDir('Vidxden (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),8,'')
  209.     for url in dvflash:
  210.         i=i+1
  211.         addDir('Vidxden (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),27,'')
  212.     for url in mega:
  213.         i=i+1
  214.         addDir('Megavideo (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),15,'')
  215.     for url in woot:
  216.         i=i+1
  217.         addDir('Wootly (mp4) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),7,'')
  218.     for url in putloc:
  219.         i=i+1
  220.         addDir('PutLocker (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),23,'')
  221.     for url in vidbx:
  222.         i=i+1
  223.         addDir('VidBux (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),10,'')
  224.     for url in vidbx2:
  225.         i=i+1
  226.         addDir('VidBux (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),25,'')
  227.     for url in divxavi:
  228.         i=i+1
  229.         addDir('Divxden (avi) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),8,'')
  230.     for url in divxflash:
  231.         i=i+1
  232.         addDir('Divxden (flv) #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),27,'')
  233.     for url in new2:
  234.         i=i+1
  235.         addDir('Putlocker #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),23,'')
  236.     for url in new3:
  237.         i=i+1
  238.         addDir('Vidbux #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),10,'')
  239.     for url in new4:
  240.         i=i+1
  241.         addDir('Novamov #'+str(i),'http://www.fastpasstv.ms'+url.replace('/watch','/redirect'),12,'')
  242.  
  243. def PUTLOC(url,name):
  244.         #login()
  245.         link1 = geturl(url)
  246.         link2 = redirect(url)
  247.         try:
  248.                 hash=re.compile('type="hidden" value="(.+?)" name="hash"').findall(link1)[0]
  249.         except:
  250.                 dialog = xbmcgui.Dialog()
  251.                 ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  252.                 return
  253.  
  254.         values = {'hash': hash, 'confirm':'Continue as Free User'}
  255.         user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0a1) Gecko/20111029 Firefox/10.0a1'
  256.         headers = { 'User-Agent' : user_agent}
  257.     cookiejar = cookielib.LWPCookieJar()
  258.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  259.     opener = urllib2.build_opener(cookiejar)
  260.     urllib2.install_opener(opener)
  261.         data = urllib.urlencode(values)
  262.         req = urllib2.Request(link2, data, headers)
  263.         response = urllib2.urlopen(req)
  264.         link = response.read()
  265.         code = re.compile("stream=(.+?)'").findall(link)
  266.         req = urllib2.Request('http://www.putlocker.com/get_file.php?stream='+code[0])
  267.         req.add_header('User-Agent', user_agent)
  268.         response = urllib2.urlopen(req)
  269.         link=response.read()
  270.         finalurl = re.compile('<media:content url="(.+?)"').findall(link)[0]
  271.         Play(finalurl)
  272.  
  273. def WOOT(url,name):
  274.     #login()   
  275.     link1 = geturl(url)
  276.     link2 = redirect(url)
  277.     try:
  278.         fcodenm=re.compile('name="fname" value="(.+?)"').findall(link1)[0]
  279.     except:
  280.         dialog = xbmcgui.Dialog()
  281.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  282.         return
  283.  
  284.     fcodeid=re.compile('name="id" value="(.+?)"').findall(link1)[0]
  285.     refer=openfile(referer)
  286.  
  287.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  288.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  289.     headers = { 'User-Agent' : user_agent }
  290.     cookiejar = cookielib.LWPCookieJar()
  291.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  292.     opener = urllib2.build_opener(cookiejar)
  293.     urllib2.install_opener(opener)
  294.     data = urllib.urlencode(values)
  295.     req = urllib2.Request(link2, data, headers)
  296.     response = urllib2.urlopen(req)
  297.     link = response.read()
  298.  
  299.     if 'mp4' in fcodenm:
  300.         file=re.compile("mp4(.+?)182|file").findall(link)[0]
  301.         cleanup=file.replace('|',' ').replace('||',' ')
  302.         hashlong = cleanup[-57:].replace(' ','')   
  303.         hashshort =  re.compile("ltas(.+?)flvplayer").findall(link)[0]
  304.         if hashshort == '||' :
  305.             hashshort = 's1'
  306.             finalurl = 'http://'+hashshort.replace('|','')+'.wootly.com:182/d/'+hashlong+'/'+ 'video.mp4'
  307.         Play(finalurl)
  308.         return
  309.     else:
  310.         file=re.compile("Stage6(.+?)182|file").findall(link)[0]
  311.         cleanup=file.replace('|',' ').replace('||',' ')
  312.         hashlong = cleanup[-57:].replace(' ','')   
  313.         hashshort =  re.compile("wootly(.+?)divx").findall(link)[0]
  314.         if hashshort == '||' :
  315.             hashshort = 's1'
  316.             finalurl = 'http://'+hashshort.replace('|','')+'.wootly.com:182/d/'+hashlong+'/'+ 'video.avi'
  317.         Play(finalurl)
  318.  
  319. def WOOTAVI(url,name):
  320.     #login()   
  321.     link1 = geturl(url)
  322.     link2 = redirect(url)
  323.     try:
  324.         fcodenm=re.compile('name="fname" value="(.+?)"').findall(link1)[0]
  325.     except:
  326.         dialog = xbmcgui.Dialog()
  327.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  328.         return
  329.  
  330.     fcodeid=re.compile('name="id" value="(.+?)"').findall(link1)[0]
  331.     refer=openfile(referer)
  332.  
  333.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  334.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  335.     headers = { 'User-Agent' : user_agent }
  336.     cookiejar = cookielib.LWPCookieJar()
  337.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  338.     opener = urllib2.build_opener(cookiejar)
  339.     urllib2.install_opener(opener)
  340.     data = urllib.urlencode(values)
  341.     req = urllib2.Request(link2, data, headers)
  342.     response = urllib2.urlopen(req)
  343.     link = response.read()
  344.  
  345.     file=re.compile("Stage6(.+?)182|file").findall(link)[0]
  346.     cleanup=file.replace('|',' ').replace('||',' ')
  347.     hashlong = cleanup[-57:].replace(' ','')   
  348.     hashshort =  re.compile("wootly(.+?)divx").findall(link)[0]
  349.     if hashshort == '||' :
  350.         hashshort = 's1'
  351.         finalurl = 'http://'+hashshort.replace('|','')+'.wootly.com:182/d/'+hashlong+'/'+ 'video.mp4'
  352.     Play(finalurl)
  353.  
  354. def APEX(url,name):
  355.     #login()   
  356.     link1 = geturl(url)
  357.     link2 = redirect(url)
  358.     try:
  359.         fcodenm=re.compile('name="fname" value="(.+?)"').findall(link1)[0]
  360.     except:
  361.         dialog = xbmcgui.Dialog()
  362.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  363.         return
  364.  
  365.     fcodeid=re.compile('name="id" value="(.+?)"').findall(link1)[0]
  366.     refer=openfile(referer)
  367.  
  368.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  369.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  370.     headers = { 'User-Agent' : user_agent }
  371.     cookiejar = cookielib.LWPCookieJar()
  372.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  373.     opener = urllib2.build_opener(cookiejar)
  374.     urllib2.install_opener(opener)
  375.  
  376.     data = urllib.urlencode(values)
  377.     req = urllib2.Request(link2, data, headers)
  378.     response = urllib2.urlopen(req)
  379.     link = response.read()
  380.  
  381.     file=re.compile("mp4(.+?)182.+?file").findall(link)[0]
  382.     cleanup=file.replace('|',' ').replace('||',' ')
  383.     hashlong = cleanup[-57:].replace(' ','')   
  384.     hashshort =  re.compile("video(.+?)flvplayer").findall(link)[0]
  385.     if hashshort == '||' :
  386.         hashshort = 's1'
  387.         finalurl = 'http://'+hashshort.replace('|','')+'.apexvid.com:182/d/'+hashlong+'/'+ 'video.mp4'
  388.     Play(finalurl)
  389.  
  390. def VIDSDIVX(url,name):
  391.     #login()
  392.     link1 = geturl(url)
  393.     link2 = redirect(url)
  394.     try:
  395.         fcodenm=re.compile('name="fname" type="hidden" value="(.+?)"').findall(link1)[0]
  396.     except:
  397.         dialog = xbmcgui.Dialog()
  398.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  399.         return
  400.  
  401.     fcodeid=re.compile('name="id" type="hidden" value="(.+?)"').findall(link1)[0]
  402.     refer=openfile(referer)
  403.  
  404.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  405.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  406.     headers = { 'User-Agent' : user_agent }
  407.     cookiejar = cookielib.LWPCookieJar()
  408.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  409.     opener = urllib2.build_opener(cookiejar)
  410.     urllib2.install_opener(opener)
  411.  
  412.     data = urllib.urlencode(values)
  413.     req = urllib2.Request(link2, data, headers)
  414.     response = urllib2.urlopen(req)
  415.     link = response.read()
  416.  
  417.     file = re.compile("Stage6(.+?)364|divxden").findall(link)[0]
  418.     print file
  419.     cleanup = file.replace('|',' ').replace('||',' ')
  420.     hashlong = cleanup[-46:].replace(' ','')
  421.     hashshort =  re.compile('divxden(.+?)src').findall(link)[0]
  422.     finalurl = 'http://'+hashshort.replace('the','').replace('you','').replace(' ','').replace('|','')+'.divxden.com:364/d/'+hashlong+'/'+ fcodenm
  423.     Play(finalurl)
  424.  
  425. def VIDXFLV(url,name):
  426.     #login()
  427.     link1 = geturl(url)
  428.     link2 = redirect(url)
  429.     try:
  430.         fcodenm=re.compile('name="fname" type="hidden" value="(.+?)"').findall(link1)[0]
  431.     except:
  432.         dialog = xbmcgui.Dialog()
  433.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  434.         return
  435.  
  436.     fcodeid=re.compile('name="id" type="hidden" value="(.+?)"').findall(link1)[0]
  437.     refer=openfile(referer)
  438.  
  439.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  440.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  441.     headers = { 'User-Agent' : user_agent }
  442.     cookiejar = cookielib.LWPCookieJar()
  443.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  444.     opener = urllib2.build_opener(cookiejar)
  445.     urllib2.install_opener(opener)
  446.  
  447.     data = urllib.urlencode(values)
  448.     req = urllib2.Request(link2, data, headers)
  449.     response = urllib2.urlopen(req)
  450.     link = response.read()
  451.  
  452.     file = re.compile("image(.+?)364|divxden").findall(link)[0]
  453.     print file
  454.     cleanup = file.replace('|',' ').replace('||',' ')
  455.     hashlong = cleanup[-46:].replace(' ','')
  456.     hashshort =  re.compile('divxden(.+?)file').findall(link)[0]
  457.     finalurl = 'http://'+hashshort.replace('the','').replace('you','').replace(' ','').replace('|','')+'.divxden.com:364/d/'+hashlong+'/'+ fcodenm
  458.     Play(finalurl)
  459.  
  460. def VIDBUX(url,name):
  461.     #login()
  462.     link1 = geturl(url)
  463.     link2 = redirect(url)
  464.     try:
  465.         fcodenm=re.compile('name="fname" type="hidden" value="(.+?)"').findall(link1)[0]
  466.     except:
  467.         dialog = xbmcgui.Dialog()
  468.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  469.         return
  470.  
  471.     fcodeid=re.compile('name="id" type="hidden" value="(.+?)"').findall(link1)[0]
  472.     refer=openfile(referer)
  473.  
  474.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  475.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  476.     headers = { 'User-Agent' : user_agent }
  477.  
  478.     data = urllib.urlencode(values)
  479.     req = urllib2.Request(link2, data, headers)
  480.     response = urllib2.urlopen(req)
  481.     link = response.read()
  482.  
  483.     file=re.compile("vidbux(.+?)182|file").findall(link)[0]
  484.     cleanup=file.replace('|',' ').replace('||',' ')
  485.     hashlong = cleanup[-41:].replace(' ','')
  486.     hashshort =  re.compile('</div><!-- <img src="http://(.+?).vidbux.com').findall(link)[0]
  487.     finalurl = 'http://'+hashshort+'.vidbux.com:182/d/'+hashlong+'/'+ fcodenm + '?start=0'
  488.     Play(finalurl)
  489.  
  490. def VIDBUX2(url,name):
  491.     #login()
  492.     link1 = geturl(url)
  493.     link2 = redirect(url)
  494.     try:
  495.         fcodenm=re.compile('name="fname" type="hidden" value="(.+?)"').findall(link1)[0]
  496.     except:
  497.         dialog = xbmcgui.Dialog()
  498.         ok = dialog.ok("FastPassTv",'The file has been removed due to copyright.')
  499.         return
  500.  
  501.     fcodeid=re.compile('name="id" type="hidden" value="(.+?)"').findall(link1)[0]
  502.     refer=openfile(referer)
  503.  
  504.     values = {'op': 'download1','usr_login': ' ','id': fcodeid, 'fname': fcodenm,'referer' : refer, 'method_free':'Continue to Video'}
  505.     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  506.     headers = { 'User-Agent' : user_agent }
  507.     cookiejar = cookielib.LWPCookieJar()
  508.     cookiejar = urllib2.HTTPCookieProcessor(cookiejar)
  509.     opener = urllib2.build_opener(cookiejar)
  510.     urllib2.install_opener(opener)
  511.  
  512.     data = urllib.urlencode(values)
  513.     req = urllib2.Request(link2, data, headers)
  514.     response = urllib2.urlopen(req)
  515.     link = response.read()
  516.  
  517.     file=re.compile("'(.+?)182").findall(link)[0]
  518.     cleanup=file.replace('|',' ').replace('||',' ')
  519.     hashlong = cleanup[-41:].replace(' ','')
  520.     hashshort =  re.compile("182(.+?)file").findall(link)[0]
  521.     finalurl = 'http://'+hashshort.replace('|','')+'.vidbux.com:182/d'+hashlong+'/'+ fcodenm
  522.     Play(finalurl)
  523.  
  524. def Nova(url,name):
  525.         link= geturl(url)
  526.     file =re.compile('flashvars.file="(.+?)"').findall(link)[0]
  527.     filekey =re.compile('flashvars.filekey="(.+?)"').findall(link)[0]
  528.         req = urllib2.Request('http://www.novamov.com/api/player.api.php?key='+ filekey + '&user=undefined&codes=1&file='+ file +'&pass=undefined')
  529.         req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
  530.         response = urllib2.urlopen(req)
  531.         link=response.read()
  532.     finalurl =re.compile('url=http://(.+?)&title=.+?').findall(link)[0]
  533.     Play('http://'+finalurl)
  534.  
  535. def Mega(url,name):
  536.     gurl = redirect(url)
  537.     code = gurl[-8:]
  538.         try:
  539.                 req = urllib2.Request("http://www.megavideo.com/xml/videolink.php?v="+code)
  540.                 req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14')
  541.                 req.add_header('Referer', 'http://www.megavideo.com/')
  542.                 lemon = urllib2.urlopen(req);response=lemon.read();lemon.close()
  543.                 errort = re.compile(' errortext="(.+?)"').findall(response)
  544.                 if len(errort) > 0: addLink(errort[0],'http://novid.com','')
  545.                 else:
  546.                         s = re.compile(' s="(.+?)"').findall(response)
  547.                         k1 = re.compile(' k1="(.+?)"').findall(response)
  548.                         k2 = re.compile(' k2="(.+?)"').findall(response)
  549.                         un = re.compile(' un="(.+?)"').findall(response)
  550.                         finalurl = "http://www" + s[0] + ".megavideo.com/files/" + __calculateFileHash(un[0], k1[0], k2[0]) + "/"
  551.             Play(finalurl)
  552.         except: pass
  553.  
  554. def __calcDecriptionMix(hash, keyMix):
  555.   """Mixes the decription keys into the hash and returns the updated hash
  556.  @param hash: the hash to merge the keys into
  557.  @param keyMix: the array of keys to mix"""
  558.   for i in range(128):
  559.     hash[i] = str(int(hash[i]) ^ int(keyMix[i + 256]) & 1)
  560.   return "".join(hash)
  561.  
  562. def __toHexDecriptionString(binaryChunks):
  563.   """Converts an array of binary strings into a string of the corresponding hex chunks merged
  564.  This method will first loop through the binary strings converting each one into it's correspondent
  565.  hexadecimal string and then merge the resulting array into a string
  566.  @param binaryChunks: an array of binary strings
  567.  @return: a string of the corresponding hexadecimal strings, merged"""
  568.   hexChunks = []
  569.   for binChunk in binaryChunks:
  570.     hexChunks.append("%x" % int(binChunk, 2))    
  571.   return "".join(hexChunks)
  572.  
  573. def __doDecriptionChunks(binaryMergedString):
  574.   """Break a string of 0's and 1's in pieces of 4 chars
  575.  @param binaryMergedString: a string of 0's and 1's to break in 4-part pieces
  576.  @return: an array of 4 character parts of the original string"""
  577.   binaryChunks = []
  578.   for index in range(0, len(binaryMergedString), 4):
  579.     binaryChunk = binaryMergedString[index:index + 4]
  580.     binaryChunks.append(binaryChunk)
  581.   return binaryChunks
  582.  
  583. def __doDecriptionSwaps(hash, keys):
  584.   """Swap the first 256 indices from keys on the hash with the last 128 elements from the hash
  585.  @param hash: the hash to do swaps on
  586.  @param keys: the generated keys to use as indices for the swaps
  587.  @return: hash after swaps"""
  588.   for index in range(256, 0, -1):
  589.     key = keys[index]
  590.     swapTarget = index % 128
  591.     oldHashKey = hash[key]
  592.     hash[key] = hash[swapTarget]
  593.     hash[swapTarget] = oldHashKey
  594.   return hash
  595.  
  596. def __computeIndices(key1, key2):
  597.   """Generate an array of 384 indices with values 0-127
  598.  @param key1: first seed to generate indices from
  599.  @param key2: second seed to generate indices from
  600.  @return: an array of 384 indices with values between 0 and 127"""
  601.   indices = []
  602.   for i in range(384):
  603.     key1 = (int(key1) * 11 + 77213) % 81371
  604.     key2 = (int(key2) * 17 + 92717) % 192811
  605.     indices.append((int(key1) + int(key2)) % 128)
  606.   return indices
  607.  
  608. def __explodeBin(str1):
  609.   # explode each char in str1 into it;s binary representation
  610.   # and collect the result into __reg1
  611.   __reg1 = []
  612.   __reg3 = 0
  613.   while (__reg3 < len(str1)):
  614.     __reg0 = str1[__reg3]
  615.     holder = __reg0
  616.     if (holder == "0"):
  617.       __reg1.append("0000")
  618.     else:
  619.       if (__reg0 == "1"):
  620.         __reg1.append("0001")
  621.       else:
  622.         if (__reg0 == "2"):
  623.           __reg1.append("0010")
  624.         else:
  625.           if (__reg0 == "3"):
  626.             __reg1.append("0011")
  627.           else:
  628.             if (__reg0 == "4"):
  629.               __reg1.append("0100")
  630.             else:
  631.               if (__reg0 == "5"):
  632.                 __reg1.append("0101")
  633.               else:
  634.                 if (__reg0 == "6"):
  635.                   __reg1.append("0110")
  636.                 else:
  637.                   if (__reg0 == "7"):
  638.                     __reg1.append("0111")
  639.                   else:
  640.                     if (__reg0 == "8"):
  641.                       __reg1.append("1000")
  642.                     else:
  643.                       if (__reg0 == "9"):
  644.                         __reg1.append("1001")
  645.                       else:
  646.                         if (__reg0 == "a"):
  647.                           __reg1.append("1010")
  648.                         else:
  649.                           if (__reg0 == "b"):
  650.                             __reg1.append("1011")
  651.                           else:
  652.                             if (__reg0 == "c"):
  653.                               __reg1.append("1100")
  654.                             else:
  655.                               if (__reg0 == "d"):
  656.                                 __reg1.append("1101")
  657.                               else:
  658.                                 if (__reg0 == "e"):
  659.                                   __reg1.append("1110")
  660.                                 else:
  661.                                   if (__reg0 == "f"):
  662.                                     __reg1.append("1111")
  663.  
  664.     __reg3 = __reg3 + 1
  665.   return list("".join(__reg1))
  666.  
  667. def __calculateFileHash(str1, key1, key2):
  668.   # explode hex to bin strings, collapse to a string and return char array
  669.   hash = __explodeBin(str1)
  670.   # based on the keys, generate an array of 384 (256 + 128) values
  671.   decriptIndices = __computeIndices(key1, key2)
  672.   # from 256 to 0, swap hash[decriptIndices[x]] with hash[__reg3 % 128]
  673.   hash = __doDecriptionSwaps(hash, decriptIndices)
  674.   # replace the first 128 chars in hash with the formula:
  675.   #  hash[x] = hash[x] * decriptIndices[x+256] & 1
  676.   hash = __calcDecriptionMix(hash, decriptIndices)
  677.   # split __reg12 in chunks of 4 chars
  678.   chunks = __doDecriptionChunks(hash)  
  679.   # convert each binary chunk to a hex string for the final hash
  680.   return __toHexDecriptionString(chunks)
  681.  
  682. def SEARCH():
  683.         keyb = xbmc.Keyboard('', 'Search FASTPASSTV')
  684.         keyb.doModal()
  685.         if (keyb.isConfirmed()):
  686.                 search = keyb.getText()
  687.                 encode=urllib.quote(search)
  688.         values = {'input': encode,'submit': 'Search'}
  689.         user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  690.         headers = { 'User-Agent' : user_agent }
  691.         data = urllib.urlencode(values)
  692.                 req = urllib2.Request('http://www.fastpasstv.ms/search/',data,headers)
  693.             req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
  694.                 response = urllib2.urlopen(req).read()
  695.             tvs=re.compile('<li><a href="/tv/(.+?)">(.+?)<span class="epnum">.+?</span></a></li>').findall(response)
  696.             docs=re.compile('li><a href="/documentaries/(.+?)">(.+?)<span class="epnum"').findall(response)
  697.             ctn=re.compile('<li><a href="/cartoons/(.+?)">(.+?)<span class="epnum">.+?</span></a>').findall(response)
  698.             mvs=re.compile('<li><a href="/movies/(.+?)">(.+?)<span class="epnum">.+?</span></a>').findall(response)
  699.         for url,name in tvs:
  700.             addDir(name.replace('<font class="newvid">New Episodes!</font>','(NEW EPISODE)'),'http://www.fastpasstv.ms/tv/'+url,21,'')
  701.         for url,name in ctn:
  702.             addDir(name.replace('<font class="newvid">New Episodes!</font>','(NEW EPISODE)'),'http://www.fastpasstv.ms/cartoons/'+url,18,'')
  703.         for url,name in mvs:
  704.             addDir(name,'http://www.fastpasstv.ms/movies/'+url,18,'')
  705.         for url,name in docs:
  706.             addDir(name,'http://www.fastpasstv.ms/documentaries/'+url,18,'')
  707.  
  708. def WISE(url,name):
  709.     login()
  710.     link1 = geturl(url)
  711.     link2 = redirect(url)
  712.     try:
  713.             rawcode=re.compile("javascript:location.href='(.+?)'").findall(link1)[1]
  714.             code=rawcode.replace('http://www.wisevid.com/play?v=','')
  715.             ref=response.geturl()
  716.             values = {'name': 'no','value': 'Yes, let me watch'}
  717.             user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.11 Safari/532.9'
  718.             headers = { 'User-Agent' : user_agent, 'Referer': ref}
  719.             data = urllib.urlencode(values)
  720.             req = urllib2.Request(rawcode, data, headers)
  721.             response = urllib2.urlopen(req)
  722.             link = response.read()
  723.             match=re.compile("getF(\(.+?)'").findall(link)[0]
  724.             clean= match.replace("('","")
  725.             finalurl=base64.decodestring(clean)
  726.             Play(finalurl)
  727.     except: pass
  728.  
  729.     try:
  730.             acode=re.compile('<input type="hidden" name="a" value="(.+?)" />').findall(link1)[0]
  731.             vcode=re.compile('<input type="hidden" name="v" value="(.+?)" />').findall(link1)[0]
  732.             url2='http://www.wisevid.com/play?v='+vcode
  733.             values = {'a': acode,'v': vcode, 'no1' : 'Yes, let me watch'}
  734.             user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.11 Safari/532.9'
  735.             headers = { 'User-Agent' : user_agent, 'Referer': 'http://www.wisevid.com/gate-way?v='+vcode}
  736.             data = urllib.urlencode(values)
  737.             req = urllib2.Request(url2, data, headers)
  738.             response = urllib2.urlopen(req)
  739.             link = response.read()
  740.             match=re.compile("getF(\(.+?)'").findall(link)[0]
  741.             clean= match.replace("('","")
  742.             finalurl=base64.decodestring(clean)
  743.             Play(finalurl)
  744.     except: pass
  745.  
  746. def get_params():
  747.         param=[]
  748.         paramstring=sys.argv[2]
  749.         if len(paramstring)>=2:
  750.                 params=sys.argv[2]
  751.                 cleanedparams=params.replace('?','')
  752.                 if (params[len(params)-1]=='/'):
  753.                         params=params[0:len(params)-2]
  754.                 pairsofparams=cleanedparams.split('&')
  755.                 param={}
  756.                 for i in range(len(pairsofparams)):
  757.                         splitparams={}
  758.                         splitparams=pairsofparams[i].split('=')
  759.                         if (len(splitparams))==2:
  760.                                 param[splitparams[0]]=splitparams[1]
  761.         return param
  762.  
  763. def addDir(name,url,mode,thumbnail,plot=''):
  764.         u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
  765.         ok=True
  766.         liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=thumbnail)
  767.         liz.setInfo( type="Video", infoLabels={ "Title": name,
  768.                                                 "plot": plot} )
  769.         ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
  770.         return ok
  771.  
  772. class StopDownloading(Exception):
  773.         def __init__(self, value):
  774.             self.value = value
  775.         def __str__(self):
  776.             return repr(self.value)
  777.  
  778. def Download(url, dest):
  779.         dp = xbmcgui.DialogProgress()
  780.         dp.create('Downloading', '', name)
  781.         start_time = time.time()
  782.         try:
  783.             urllib.urlretrieve(url, dest, lambda nb, bs, fs: _pbhook(nb, bs, fs, dp, start_time))
  784.         except:
  785.             #delete partially downloaded file
  786.             while os.path.exists(dest):
  787.                 try:
  788.                     print 'hello'
  789.                     break
  790.                 except:
  791.                      pass
  792.             #only handle StopDownloading (from cancel), ContentTooShort (from urlretrieve), and OS (from the race condition); let other exceptions bubble
  793.             if sys.exc_info()[0] in (urllib.ContentTooShortError, StopDownloading, OSError):
  794.                 return 'false'
  795.             else:
  796.                 raise
  797.         return 'downloaded'
  798.          
  799. def _pbhook(numblocks, blocksize, filesize, dp, start_time):
  800.         try:
  801.             percent = min(numblocks * blocksize * 100 / filesize, 100)
  802.             currently_downloaded = float(numblocks) * blocksize / (1024 * 1024)
  803.             kbps_speed = numblocks * blocksize / (time.time() - start_time)
  804.             if kbps_speed > 0:
  805.                 eta = (filesize - numblocks * blocksize) / kbps_speed
  806.             else:
  807.                 eta = 0
  808.             kbps_speed = kbps_speed / 1024
  809.             total = float(filesize) / (1024 * 1024)
  810.             # print (
  811.                 # percent,
  812.                 # numblocks,
  813.                 # blocksize,
  814.                 # filesize,
  815.                 # currently_downloaded,
  816.                 # kbps_speed,
  817.                 # eta,
  818.                 # )
  819.             mbs = '%.02f MB of %.02f MB' % (currently_downloaded, total)
  820.             e = 'Speed: %.02f Kb/s ' % kbps_speed
  821.             e += 'ETA: %02d:%02d' % divmod(eta, 60)
  822.             dp.update(percent, mbs, e)
  823.             #print percent, mbs, e
  824.         except:
  825.             percent = 100
  826.             dp.update(percent)
  827.         if dp.iscanceled():
  828.             dp.close()
  829.             raise StopDownloading('Stopped Downloading')
  830.  
  831. def Play(finalurl):
  832.         if (fpt.getSetting('download') == '0'):
  833.                     dia = xbmcgui.Dialog()
  834.                     ret = dia.select('Streaming Options', ['Play','Download'])
  835.                     if (ret == 0):
  836.                 addLink('Play',finalurl,'','','')
  837.                 item = xbmcgui.ListItem(name)
  838.                     ok=xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(finalurl, item)
  839.                     elif (ret == 1):
  840.                             path = xbmc.translatePath(os.path.join(fpt.getSetting('download_path'), name))
  841.                             Download(finalurl,path+name+'.flv')
  842.                     else:
  843.                             return
  844.     elif (fpt.getSetting('download') == '1'):
  845.         addLink('Play',finalurl,'','','')
  846.         item = xbmcgui.ListItem(name)
  847.             ok=xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(finalurl, item)
  848.         elif (fpt.getSetting('download') == '2'):
  849.                 path = xbmc.translatePath(os.path.join(fpt.getSetting('download_path'), name))
  850.                 Download(finalurl,path+name+'.flv')
  851.         else:
  852.             return
  853.  
  854. def addLink(name,url,iconimage,plot,date):
  855.         ok=True
  856.         liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
  857.         liz.setInfo( type="Video", infoLabels={ "Title": name } )
  858.     liz.setProperty("IsPlayable","true");
  859.         ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz,isFolder=False)
  860.         return ok
  861.  
  862. def check_settings():
  863.         uname = fpt.getSetting('uname')
  864.         pwd   = fpt.getSetting('pwd')
  865.         #if (not uname or uname == '') or (not pwd or pwd == ''):
  866.         #       d = xbmcgui.Dialog()
  867.         #       d.ok('Welcome to fastpasstv.com', 'To start using this plugin first go to the fastpasstv.com.','and register an (free) account.')
  868.         #       fpt.openSettings(sys.argv[ 0 ])
  869.                        
  870. params=get_params()
  871. url=None
  872. name=None
  873. mode=None
  874.  
  875. check_settings()
  876. uname = fpt.getSetting('uname')
  877. pwd   = fpt.getSetting('pwd')
  878.  
  879. try:
  880.         url=urllib.unquote_plus(params["url"])
  881. except:
  882.         pass
  883. try:
  884.         name=urllib.unquote_plus(params["name"])
  885. except:
  886.         pass
  887. try:
  888.         mode=int(params["mode"])
  889. except:
  890.         pass
  891. print "Mode: "+str(mode)
  892. print "URL: "+str(url)
  893. print "Name: "+str(name)
  894.  
  895. if mode==None or url==None or len(url)<1:
  896.         print "categories"
  897.         CATS()
  898. elif mode==1:
  899.         print "PAGE"
  900.         MOVALL(url,name)
  901. elif mode==2:
  902.         print "PAGE"
  903.         X2(url,name)
  904. elif mode==3:
  905.         print "PAGE"
  906.         X3(url,name)
  907. elif mode==4:
  908.         print "PAGE"
  909.         Y1(url,name)
  910. elif mode==5:
  911.         print "PAGE"
  912.         Y2(url,name)
  913. elif mode==6:
  914.         print "PAGE"
  915.         Y3MOV(url,name)
  916. elif mode==7:
  917.         print "PAGE"
  918.         WOOT(url,name)
  919. elif mode==8:
  920.         print "PAGE"
  921.         VIDSDIVX(url,name)
  922. elif mode==27:
  923.         print "PAGE"
  924.         VIDXFLV(url,name)
  925. elif mode==9:
  926.         print "SEARCH  :"+url
  927.         SEARCH()
  928. elif mode==10:
  929.         print "PAGE"
  930.         VIDBUX(url,name)
  931. elif mode==11:
  932.         print "PAGE"
  933.         ICE(url,name)
  934. elif mode==12:
  935.         print "PAGE"
  936.         Nova(url,name)
  937. elif mode==14:
  938.         print "PAGE"
  939.         NEWEP(url,name)
  940. elif mode==15:
  941.         print "PAGE"
  942.         Mega(url,name)
  943. elif mode==18:
  944.         print "PAGE"
  945.         Y3TV(url,name)
  946. elif mode==19:
  947.         print "PAGE"
  948.         WISE(url,name)
  949. elif mode==20:
  950.         print "PAGE"
  951.         MOVLAT(url,name)
  952. elif mode==21:
  953.         print "PAGE"
  954.         Y3(url,name)
  955. elif mode==22:
  956.         print "PAGE"
  957.         DOCLAT(url,name)
  958. elif mode==23:
  959.         print "PAGE"
  960.         PUTLOC(url,name)
  961. elif mode==24:
  962.         print "PAGE"
  963.         APEX(url,name)
  964. elif mode==25:
  965.         print "PAGE"
  966.         VIDBUX2(url,name)
  967. elif mode==26:
  968.         print "PAGE"
  969.         WOOTAVI(url,name)
  970.  
  971. xbmcplugin.endOfDirectory(int(sys.argv[1]))
  972.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement