Advertisement
Guest User

Untitled

a guest
Mar 28th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.72 KB | None | 0 0
  1. #-*- coding: utf-8 -*-
  2. #Venom.
  3. from resources.lib.config import cConfig
  4. from resources.lib.gui.gui import cGui
  5. from resources.lib.parser import cParser
  6. from resources.lib.config import GestionCookie
  7.  
  8. import urllib2,urllib
  9. import xbmc
  10. import xbmcaddon
  11. import re,os
  12.  
  13. import cookielib
  14.  
  15. UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0'
  16. headers = { 'User-Agent' : UA }
  17.  
  18. class NoRedirection(urllib2.HTTPErrorProcessor):
  19. def http_response(self, request, response):
  20. code, msg, hdrs = response.code, response.msg, response.info()
  21. #cConfig().log(str(code))
  22. return response
  23.  
  24. https_response = http_response
  25.  
  26. class cPremiumHandler:
  27.  
  28. def __init__(self, sHosterIdentifier):
  29. self.__sHosterIdentifier = sHosterIdentifier.lower()
  30. self.__sDisplayName = 'Premium mode'
  31. self.isLogin = False
  32. self.__LoginTry = False
  33. self.__ssl = False
  34.  
  35. self.__Ispremium = False
  36. bIsPremium = cConfig().getSetting('hoster_' + str(self.__sHosterIdentifier) + '_premium')
  37. if (bIsPremium == 'true'):
  38. cConfig().log("Utilise compte premium pour hoster " + str(self.__sHosterIdentifier))
  39. self.__Ispremium = True
  40. else:
  41. cConfig().log("Utilise compte gratuit pour hoster: " + str(self.__sHosterIdentifier))
  42.  
  43. def isPremiumModeAvailable(self):
  44. return self.__Ispremium
  45.  
  46. def getUsername(self):
  47. sUsername = cConfig().getSetting('hoster_' + str(self.__sHosterIdentifier) + '_username')
  48. return sUsername
  49.  
  50. def getPassword(self):
  51. sPassword = cConfig().getSetting('hoster_' + str(self.__sHosterIdentifier) + '_password')
  52. return sPassword
  53.  
  54. def AddCookies(self):
  55. cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
  56. return 'Cookie=' + cookies
  57.  
  58. def Checklogged(self,code):
  59. if 'uptobox' in self.__sHosterIdentifier:
  60. if '//uptobox.com/?op=logout">Logout</a>' in code:
  61. return True
  62. return False
  63.  
  64. def CheckCookie(self):
  65. cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
  66. if cookies != '':
  67. return True
  68. return False
  69.  
  70. def Authentificate(self):
  71.  
  72. #un seul essais par session, pas besoin de bombarder le serveur
  73. if self.__LoginTry:
  74. return False
  75. self.__LoginTry = True
  76.  
  77. if not self.__Ispremium:
  78. return False
  79.  
  80. post_data = {}
  81.  
  82. if 'uptobox' in self.__sHosterIdentifier:
  83. url = 'https://uptobox.com/?op=login&referer=qz5dt4qw355b'
  84. post_data['login'] = self.getUsername()
  85. post_data['password'] = self.getPassword()
  86. #post_data['op'] = 'login'
  87. #psot_data['referer'] = '93ikj4pi82ng'
  88.  
  89. elif 'onefichier' in self.__sHosterIdentifier:
  90. url = 'https://1fichier.com/login.pl'
  91. post_data['mail'] = self.getUsername()
  92. post_data['pass'] = self.getPassword()
  93. post_data['lt'] = 'on'
  94. post_data['purge'] = 'on'
  95. post_data['valider'] = 'Send'
  96. self.__ssl = True
  97. elif 'uploaded' in self.__sHosterIdentifier:
  98. url = 'http://uploaded.net/io/login'
  99. post_data['id'] = self.getUsername()
  100. post_data['pw'] = self.getPassword()
  101.  
  102. #si aucun de trouve on retourne
  103. else:
  104. return False
  105.  
  106. #print url
  107. #print post_data
  108. if (self.__ssl):
  109. try:
  110. import ssl
  111. context = ssl._create_unverified_context()
  112. except:
  113. self.__ssl = False
  114.  
  115. #NE Marche pas ????
  116. #opener = urllib2.build_opener(NoRedirection)
  117. #urllib2.install_opener(opener)
  118. #req = urllib2.Request(url, urllib.urlencode(post_data), headers)
  119.  
  120. data = urllib.urlencode(post_data)
  121.  
  122. opener = urllib2.build_opener(NoRedirection)
  123.  
  124. opener.addheaders = [('User-agent', UA)]
  125. opener.addheaders.append (('Content-Type', 'application/x-www-form-urlencoded'))
  126. opener.addheaders.append (('Referer', str(url) ))
  127. opener.addheaders.append (('Content-Length', str(len(data)) ))
  128.  
  129.  
  130. try:
  131. cConfig().log(url)
  132. response = opener.open(url,data)
  133. cConfig().log('pppppp')
  134. sHtmlContent = response.read()
  135. except urllib2.URLError, e:
  136. cConfig().log('66')
  137. cConfig().log("debug" + str(getattr(e, "code", None)))
  138. cConfig().log("debug" + str(getattr(e, "reason", None)))
  139. sHtmlContent = e.read()
  140.  
  141. cConfig().log("debug" + str(response.code))
  142. cConfig().log("debug" + str(response.info()))
  143.  
  144. fh = open('c:\\test.txt', "w")
  145. fh.write(sHtmlContent)
  146. fh.close()
  147.  
  148. cConfig().log('33')
  149. hh(pp)
  150.  
  151. try:
  152. if (self.__ssl):
  153. response = urllib2.urlopen(req,context=context)
  154. else:
  155. response = urllib2.urlopen(req)
  156. except urllib2.URLError, e:
  157.  
  158. cConfig().log("debug" + str(getattr(e, "code", None)))
  159. cConfig().log("debug" + str(getattr(e, "reason", None)))
  160.  
  161. if getattr(e, "code", None) == 403:
  162. #login denied
  163. cGui().showInfo(self.__sDisplayName, 'Authentification rate1' , 5)
  164. elif getattr(e, "code", None) == 502:
  165. #login denied
  166. cGui().showInfo(self.__sDisplayName, 'Authentification rate2' , 5)
  167. elif getattr(e, "code", None) == 234:
  168. #login denied
  169. cGui().showInfo(self.__sDisplayName, 'Authentification rate3' , 5)
  170. else:
  171. cConfig().log("debug" + str(getattr(e, "code", None)))
  172. cConfig().log("debug" + str(getattr(e, "reason", None)))
  173.  
  174. cConfig().log('11')
  175. self.isLogin = False
  176. return False
  177.  
  178. sHtmlContent = response.read()
  179. head = response.headers
  180. response.close()
  181.  
  182. cConfig().log('22')
  183.  
  184. fh = open('c:\\test.txt', "w")
  185. fh.write(sHtmlContent)
  186. fh.close()
  187.  
  188. if 'uptobox' in self.__sHosterIdentifier:
  189. if 'OK' in sHtmlContent:
  190. self.isLogin = True
  191. else:
  192. cGui().showInfo(self.__sDisplayName, 'Authentification rate4' , 5)
  193. gg(mm)
  194. return False
  195. elif 'onefichier' in self.__sHosterIdentifier:
  196. if 'You are logged in. This page will redirect you.' in sHtmlContent:
  197. self.isLogin = True
  198. else:
  199. cGui().showInfo(self.__sDisplayName, 'Authentification rate' , 5)
  200. return False
  201. elif 'uploaded' in self.__sHosterIdentifier:
  202. if sHtmlContent == '':
  203. self.isLogin = True
  204. else:
  205. cGui().showInfo(self.__sDisplayName, 'Authentification rate' , 5)
  206. return False
  207. else:
  208. return False
  209.  
  210. #get cookie
  211. cookies = ''
  212. if 'Set-Cookie' in head:
  213. oParser = cParser()
  214. sPattern = '(?:^|,) *([^;,]+?)=([^;,\/]+?);'
  215. aResult = oParser.parse(str(head['Set-Cookie']), sPattern)
  216. #print aResult
  217. if (aResult[0] == True):
  218. for cook in aResult[1]:
  219. cookies = cookies + cook[0] + '=' + cook[1]+ ';'
  220.  
  221. #save cookie
  222. GestionCookie().SaveCookie(self.__sHosterIdentifier,cookies)
  223.  
  224. cGui().showInfo(self.__sDisplayName, 'Authentification reussie' , 5)
  225. cConfig().log( 'Auhentification reussie' )
  226.  
  227. return True
  228.  
  229. def GetHtmlwithcookies(self,url,data,cookies):
  230.  
  231. req = urllib2.Request(url, data, headers)
  232.  
  233. if not (data == None):
  234. req.add_header('Referer', url)
  235.  
  236. req.add_header('Cookie', cookies)
  237.  
  238. try:
  239. response = urllib2.urlopen(req)
  240. except urllib2.URLError, e:
  241. xbmc.log( str(e.code))
  242. xbmc.log( e.reason )
  243. return ''
  244.  
  245. sHtmlContent = response.read()
  246. response.close()
  247. return sHtmlContent
  248.  
  249. def GetHtml(self,url,data = None):
  250. cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
  251.  
  252. #aucun ne marche sans cookies
  253. if (cookies== '') and not (self.__LoginTry) and self.__Ispremium:
  254. self.Authentificate()
  255. if not (self.isLogin):
  256. return ''
  257. cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
  258.  
  259. sHtmlContent = self.GetHtmlwithcookies(url,data,cookies)
  260.  
  261. #fh = open('c:\\premium.txt', "w")
  262. #fh.write(sHtmlContent)
  263. #fh.close()
  264.  
  265. #Les cookies ne sont plus valables, mais on teste QUE si la personne n'a pas essaye de s'authentifier
  266. if not(self.Checklogged(sHtmlContent)) and not self.__LoginTry and self.__Ispremium :
  267. cConfig().log('Cookies non valables')
  268. self.Authentificate()
  269. if (self.isLogin):
  270. cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
  271. sHtmlContent = self.GetHtmlwithcookies(url,data,cookies)
  272. else:
  273. return ''
  274.  
  275. return sHtmlContent
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement