Guest User

MDL

a guest
Nov 20th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.51 KB | None | 0 0
  1. '''
  2.    MagnetDL
  3. '''
  4.  
  5. import re, requests, xbmc
  6. from resolveurl.plugins.premiumize_me import PremiumizeMeResolver
  7. from resources.lib.modules import source_utils
  8.  
  9. class source:
  10.  
  11.     def __init__(self):
  12.         self.priority = 1
  13.         self.language = ['en']
  14.         self.domain = 'http://www.magnetdl.com'
  15.         self.api_key = PremiumizeMeResolver.get_setting('password')
  16.         self.search_link = 'http://www.magnetdl.com/%s/%s/'
  17.         self.checkc = 'https://www.premiumize.me/api/torrent/checkhashes?apikey=%s&hashes[]=%s&apikey=%s'
  18.         self.pr_link = 'https://www.premiumize.me/api/transfer/directdl?apikey=%s&src=magnet:?xt=urn:btih:%s'
  19.  
  20.     def movie(self, imdb, title, localtitle, aliases, year):
  21.         try:
  22.             url = {'title': title, 'year': year}
  23.             return url
  24.         except:
  25.             print("Unexpected error in MagnetDL Script: episode", sys.exc_info()[0])
  26.             exc_type, exc_obj, exc_tb = sys.exc_info()
  27.             print(exc_type, exc_tb.tb_lineno)
  28.             return url
  29.  
  30.     def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
  31.         try:
  32.             url = tvshowtitle
  33.             return url
  34.         except:
  35.             print("Unexpected error in MagnetDL Script: TV", sys.exc_info()[0])
  36.             return url
  37.         return url
  38.  
  39.     def episode(self, url, imdb, tvdb, title, premiered, season, episode):
  40.         try:
  41.             url = url
  42.             url = {'tvshowtitle': url, 'season': season, 'episode': episode, 'premiered': premiered}
  43.             return url
  44.         except:
  45.             print("Unexpected error in MagnetDL Script: episode", sys.exc_info()[0])
  46.             exc_type, exc_obj, exc_tb = sys.exc_info()
  47.             print(exc_type, exc_tb.tb_lineno)
  48.             return url
  49.  
  50.     def sources(self, url, hostDict, hostprDict):
  51.         sources = []
  52.         try:
  53.             with requests.Session() as s:
  54.                 headers = {"Referer": self.domain,\
  55.                            "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",\
  56.                            "Host": "www.magnetdl.com","User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0",\
  57.                            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",\
  58.                            "Accept-Encoding": "gzip, deflate, br","Accept-Language": "en-US,en;q=0.5",\
  59.                            "Connection": "keep-alive","DNT":"1"}
  60.                 if 'episode' in url:
  61.                     iep = url['episode'].zfill(2)
  62.                     ise = url['season'].zfill(2)
  63.                     se = 's' + ise + 'e' + iep
  64.                     sel = url['tvshowtitle'].replace(' ','-') + '-' + se
  65.                    
  66.                 else:
  67.                     sel = url['title'].replace(' ','-') + '-' + url['year']
  68.                    
  69.                 sel = sel.lower()
  70.                 gs = s.get(self.search_link % (sel[0], sel), headers=headers).text
  71.                 gl = re.compile('ih:(.*?)\W.*?ef\W+.*?tle\W+(.*?)[\'"].*?\d</td.*?d>(.*?)<', re.I).findall(gs)
  72.                 for hass,nam,siz in gl:
  73.                     checkca = s.get(self.checkc % (self.api_key, hass, self.api_key)).text
  74.                     quality = source_utils.check_sd_url(nam)
  75.                     if 'finished' in checkca:
  76.                         url = self.pr_link % (self.api_key, hass)
  77.                         sources.append({
  78.                             'source': 'cached',
  79.                             'quality': quality,
  80.                             'language': 'en',
  81.                             'url': url,
  82.                             'direct': False,
  83.                             'debridonly': False,
  84.                             'info': siz+' '+nam,
  85.                         })  
  86.             return sources
  87.         except:
  88.             print("Unexpected error in MagnetDL Script: Sources", sys.exc_info()[0])
  89.             exc_type, exc_obj, exc_tb = sys.exc_info()
  90.             print(exc_type, exc_tb.tb_lineno)
  91.             return sources
  92.  
  93.        
  94.     def resolve(self, url):
  95.         try:
  96.             getpl = requests.get(url).text
  97.             sl = re.compile('link.*?"(h.*?)["\'].\n.*?s.*?http', re.I).findall(getpl)[0]
  98.             url = sl.replace('\\','')
  99.             return url
  100.         except:
  101.             print("Unexpected error in MagnetDL Script: episode", sys.exc_info()[0])
  102.             exc_type, exc_obj, exc_tb = sys.exc_info()
  103.             print(exc_type, exc_tb.tb_lineno)
  104.             return url
Add Comment
Please, Sign In to add comment