Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.83 KB | None | 0 0
  1. from resources.lib.handler.requestHandler import cRequestHandler
  2. from resources.lib.parser import cParser
  3. from resources.lib.config import cConfig
  4. from resources.hosters.hoster import iHoster
  5. import re,urllib2
  6. import xbmcgui
  7. from resources.lib.packer import cPacker
  8.  
  9. #meme code que vodlocker
  10.  
  11. class cHoster(iHoster):
  12.  
  13.     def __init__(self):
  14.         self.__sDisplayName = 'FlashX'
  15.         self.__sFileName = self.__sDisplayName
  16.         self.__sHD = ''
  17.  
  18.     def getDisplayName(self):
  19.         return  self.__sDisplayName
  20.  
  21.     def setDisplayName(self, sDisplayName):
  22.         self.__sDisplayName = sDisplayName + ' [COLOR skyblue]'+self.__sDisplayName+'[/COLOR] [COLOR khaki]'+self.__sHD+'[/COLOR]'
  23.  
  24.     def setFileName(self, sFileName):
  25.         self.__sFileName = sFileName
  26.  
  27.     def getFileName(self):
  28.         return self.__sFileName
  29.  
  30.     def getPluginIdentifier(self):
  31.         return 'flashx'
  32.  
  33.     def setHD(self, sHD):
  34.         self.__sHD = ''
  35.  
  36.     def getHD(self):
  37.         return self.__sHD
  38.  
  39.     def isDownloadable(self):
  40.         return True
  41.  
  42.     def isJDownloaderable(self):
  43.         return True
  44.  
  45.     def getPattern(self):
  46.         return ''
  47.        
  48.     def __getIdFromUrl(self, sUrl):
  49.         sPattern = "http://((?:www.|play.)?flashx.tv)/(?:embed-)?([0-9a-zA-Z/-]+)(?:.html)?"
  50.         oParser = cParser()
  51.         aResult = oParser.parse(sUrl, sPattern)
  52.         if (aResult[0] == True):
  53.             return aResult[1][0][1]
  54.  
  55.         return ''
  56.  
  57.     def setUrl(self, sUrl):
  58.         self.__sUrl = str(sUrl)
  59.  
  60.     def checkUrl(self, sUrl):
  61.         return True
  62.  
  63.     def __getUrl(self, media_id):
  64.         return ''
  65.  
  66.     def getMediaLink(self):
  67.         return self.__getMediaLinkForGuest()
  68.  
  69.     def __getMediaLinkForGuest(self):
  70.        
  71.         HOST = 'www.flashx.pw'
  72.  
  73.         sId = self.__getIdFromUrl(self.__sUrl)
  74.         web_url = 'http://' + HOST + '/fxplay-%s.html' % sId
  75.        
  76.         sId = re.sub(r'-.+', '', sId)
  77.  
  78.         headers = {
  79.         'Host' : HOST,
  80.         'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0',
  81.         'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  82.         'Accept-Language':'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
  83.         'Referer':'http://embed.flashx.tv/embed.php?c=' + sId,
  84.         }
  85.        
  86.         request = urllib2.Request(web_url,None,headers)
  87.      
  88.         try:
  89.             reponse = urllib2.urlopen(request)
  90.         except URLError, e:
  91.             print e.read()
  92.             print e.reason
  93.            
  94.         sHtmlContent = reponse.read()
  95.  
  96.         #Lien code ??
  97.         sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
  98.         aResult = re.findall(sPattern,sHtmlContent)
  99.         #aResult = oParser.parse(sHtmlContent, sPattern)
  100.         if (aResult):
  101.             print "packed"
  102.             sUnpacked = cPacker().unpack(aResult[0])
  103.             sHtmlContent = sUnpacked
  104.  
  105.         #decodage classique
  106.         oParser = cParser()
  107.         sPattern = '{file:"(.+?)",label:"(.+?)"}'
  108.         aResult = oParser.parse(sHtmlContent, sPattern)
  109.        
  110.         print aResult
  111.  
  112.         api_call = ''
  113.        
  114.         if (aResult[0] == True):
  115.             #initialisation des tableaux
  116.             url=[]
  117.             qua=[]
  118.        
  119.             #Replissage des tableaux
  120.             for i in aResult[1]:
  121.                 url.append(str(i[0]))
  122.                 qua.append(str(i[1]))
  123.                
  124.             #Si au moins 1 url
  125.             if (url):
  126.             #Afichage du tableau
  127.                 dialog2 = xbmcgui.Dialog()
  128.                 ret = dialog2.select('Select Quality',qua)
  129.                 if (ret > -1):
  130.                     api_call = url[ret]
  131.  
  132.         #print api_call
  133.        
  134.         if (api_call):
  135.             return True, api_call
  136.            
  137.         return False, False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement