def credentials(): premiumize = debridx.Premiumize() offcloud = debridx.OffCloud() realdebrid = debridx.RealDebrid() alldebrid = debridx.AllDebrid() rapidpremium = debridx.RapidPremium() return { 'premiumize': { 'enabled': premiumize.accountEnabled(), 'user': premiumize.accountUsername(), 'pass': premiumize.accountPassword(), }, 'offcloud': { 'enabled': offcloud.accountEnabled(), 'api': offcloud.accountApi(), }, 'realdebrid': { 'enabled': realdebrid.accountEnabled(), 'id': realdebrid.accountId(), 'secret': realdebrid.accountSecret(), 'token': realdebrid.accountToken(), 'refresh': realdebrid.accountRefresh(), }, 'alldebrid': { 'enabled': alldebrid.accountEnabled(), 'user': alldebrid.accountUsername(), 'pass': alldebrid.accountPassword(), }, 'rapidpremium': { 'enabled': rapidpremium.accountEnabled(), 'user': rapidpremium.accountUsername(), 'api': rapidpremium.accountApi(), } }
def __init__(self): Handle.__init__(self, id=self.Id, name=self.Name, abbreviation=self.Abbreviation) self.mService = debrid.RapidPremium() self.mServices = None
def _showRapidPremium(self): choice = self._option(35275, 33897, 33898) if choice == Wizard.ChoiceLeft: return Wizard.OptionCancelStep choice = self._option(35276, 33899, 33900) if choice == Wizard.ChoiceLeft: tools.System.openLink(tools.Settings.getString('link.rapidpremium', raw = True)) choice = self._option(35280, 33743, 33898) if choice == Wizard.ChoiceLeft: return self._cancel() user = userOriginal = tools.Settings.getString('accounts.debrid.rapidpremium.user') api = apiOriginal = tools.Settings.getString('accounts.debrid.rapidpremium.api') while True: choice = self._option(35277, 33743, 33994) if choice == Wizard.ChoiceLeft: return self._cancel() user = self._input(default = user) choice = self._option(35278, 33743, 33901) if choice == Wizard.ChoiceLeft: return self._cancel() api = self._input(default = api) interface.Loader.show() tools.Settings.set('accounts.debrid.rapidpremium.enabled', True) tools.Settings.set('accounts.debrid.rapidpremium.user', user) tools.Settings.set('accounts.debrid.rapidpremium.api', api) valid = debrid.RapidPremium().accountValid() interface.Loader.hide() if valid: choice = self._option(35279, 33743, 33821) if choice == Wizard.ChoiceLeft: return self._cancel() return Wizard.OptionContinue else: tools.Settings.set('accounts.debrid.rapidpremium.enabled', False) tools.Settings.set('accounts.debrid.rapidpremium.user', userOriginal) tools.Settings.set('accounts.debrid.rapidpremium.api', apiOriginal) choice = self._option(35281, 33743, 33902) if choice == Wizard.ChoiceLeft: return self._cancel() return Wizard.OptionContinue
def servicesRapidPremium(): try: rapidpremium = debridx.RapidPremium() if rapidpremium.accountEnabled() and rapidpremium.accountValid(): return rapidpremium.servicesList(onlyEnabled=True) except: pass return []
def resolver(url, debrid, title = None, season = None, episode = None, close = True, source = None): try: debrid = debrid.lower() except: pass url = url.replace('filefactory.com/stream/', 'filefactory.com/file/') # Always try Premiumize first. try: if not debrid == 'premiumize' and not debrid == True: raise Exception() if not debridx.Premiumize().accountValid(): raise Exception() return debridx.PremiumizeInterface().add(link = url, title = title, season = season, episode = episode, close = close, source = source) except: pass try: if not debrid == 'realdebrid' and not debrid == True: raise Exception() if not debridx.RealDebrid().accountValid(): raise Exception() return debridx.RealDebridInterface().add(link = url, title = title, season = season, episode = episode, close = close, source = source) except: pass try: if not debrid == 'alldebrid' and not debrid == True: raise Exception() if not debridx.AllDebrid().accountValid(): raise Exception() return debridx.AllDebrid().add(link = url) except: pass try: if not debrid == 'rapidpremium' and not debrid == True: raise Exception() if not debridx.RapidPremium().accountValid(): raise Exception() return debridx.RapidPremium().add(link = url) except: pass return None
def handlesSingleHoster(self): global HandlesHoster if HandlesHoster == None: HandlesHoster = 0 services = [ debrid.Premiumize(), debrid.OffCloud(), debrid.RealDebrid(), debrid.AllDebrid(), debrid.RapidPremium() ] for service in services: if service.accountValid(): HandlesHoster += 1 return HandlesHoster <= 1
def resolver(url, debrid, title=None, season=None, episode=None, close=True, source=None, pack=False, cached=False, hash=None, select=False, cloud=False): try: debrid = debrid.lower() except: pass url = url.replace('filefactory.com/stream/', 'filefactory.com/file/') if select: pack = True # Even non-season-pack archives should be selectable. # Always try Premiumize first. try: if not debrid == 'premiumize' and not debrid == True: raise Exception() if not debridx.Premiumize().accountValid(): raise Exception() return debridx.PremiumizeInterface().add(link=url, title=title, season=season, episode=episode, pack=pack, close=close, source=source, cached=cached, select=select, cloud=cloud) except: pass try: if not debrid == 'offcloud' and not debrid == True: raise Exception() if not debridx.OffCloud().accountValid(): raise Exception() return debridx.OffCloudInterface().add(link=url, title=title, season=season, episode=episode, pack=pack, close=close, source=source, cached=cached, select=select) except: pass try: if not debrid == 'realdebrid' and not debrid == True: raise Exception() if not debridx.RealDebrid().accountValid(): raise Exception() return debridx.RealDebridInterface().add(link=url, title=title, season=season, episode=episode, pack=pack, close=close, source=source, cached=cached, select=select) except: pass try: if not debrid == 'alldebrid' and not debrid == True: raise Exception() if not debridx.AllDebrid().accountValid(): raise Exception() return debridx.AllDebrid().add(link=url) except: pass try: if not debrid == 'rapidpremium' and not debrid == True: raise Exception() if not debridx.RapidPremium().accountValid(): raise Exception() return debridx.RapidPremium().add(link=url) except: pass return None
def sources(self, url, hostDict, hostprDict): sources = [] try: debridHas = False if not debridHas: premiumize = debrid.Premiumize() debridHas = premiumize.accountEnabled() and premiumize.accountValid() if not debridHas: offcloud = debrid.OffCloud() debridHas = offcloud.accountEnabled() and offcloud.accountValid() if not debridHas: realdebrid = debrid.RealDebrid() debridHas = realdebrid.accountEnabled() and realdebrid.accountValid() if not debridHas: alldebrid = debrid.AllDebrid() debridHas = alldebrid.accountEnabled() and alldebrid.accountValid() if not debrid: rapidpremium = debrid.RapidPremium() debridHas = rapidpremium.accountEnabled() and rapidpremium.accountValid() data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) movie = False if 'tvshowtitle' in data else True title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title'] year = str(data['year']) if 'year' in data and not data['year'] == None else '' season = str(data['season']) if 'season' in data and not data['season'] == None else '' episode = str(data['episode']) if 'episode' in data and not data['episode'] == None else '' imdb = data['imdb'] if 'imdb' in data else '' tvdb = data['tvdb'] if 'tvdb' in data else '' scraper = nanscrapers.relevant_scrapers(names_list = self.name.lower(), include_disabled = True, exclude = None)[0]() if self.base_link and not self.base_link == '': scraper.base_link = self.base_link if movie: result = scraper.scrape_movie(title = title, year = year, imdb = imdb, debrid = debridHas) else: showYear = year try: if 'premiered' in data and not data['premiered'] == None and not data['premiered'] == '': for format in ['%Y-%m-%d', '%Y-%d-%m', '%d-%m-%Y', '%m-%d-%Y']: try: showYear = str(int(convert.ConverterTime(value = data['premiered'], format = format).string(format = '%Y'))) if len(showYear) == 4: break except: pass except: pass result = scraper.scrape_episode(title = title, year = year, show_year = showYear, season = season, episode = episode, imdb = imdb, tvdb = tvdb, debrid = debridHas) if result: for item in result: item['external'] = True item['language']= self.language[0] item['debridonly'] = False item['url'] = item['url'].replace('http:http:', 'http:').replace('https:https:', 'https:').replace('http:https:', 'https:').replace('https:http:', 'http:') # Some of the links start with a double http. # External providers (eg: "Get Out"), sometimes has weird characters in the URL. # Ignore the links that have non-printable ASCII or UTF8 characters. try: item['url'].decode('utf-8') except: continue source = item['source'].lower().replace(' ', '') if source == 'direct' or source == 'directlink': source = urlparse.urlsplit(item['url'])[1].split(':')[0] if network.Networker.ipIs(source): source = 'Anonymous' else: split = source.split('.') for i in split: i = i.lower() if i in ['www', 'ftp']: continue source = i break item['source'] = source sources.append(item) return sources except: tools.Logger.error() return sources
def __init__(self): Handle.__init__(self, id = HandleRapidPremium.Id, name = HandleRapidPremium.Name, abbreviation = HandleRapidPremium.Abbreviation, debrid = True) self.mService = debrid.RapidPremium() self.mServices = None
def _initialize(self, type): if type == None: return try: direct = 'direct' in type and type['direct'] type = type['source'].lower() except: type = type.lower() direct = type == Handler.TypeDirect if not type == Handler.TypeTorrent and not type == Handler.TypeUsenet: if direct: type = Handler.TypeDirect else: type = Handler.TypeHoster if type == self.mType: return self.mType = type self.mServices = [] self.mDefault = None global HandlerServicesDirect global HandlerServicesTorrent global HandlerServicesUsenet global HandlerServicesHoster global HandlerDefaultDirect global HandlerDefaultTorrent global HandlerDefaultUsenet global HandlerDefaultHoster if type == Handler.TypeDirect: if HandlerServicesDirect == None: HandlerServicesDirect = [] if tools.Settings.getBoolean('streaming.direct.enabled'): handle = HandleDirect() HandlerServicesDirect.append(handle) HandlerDefaultDirect = handle self.mServices = HandlerServicesDirect self.mDefault = HandlerDefaultDirect else: self.mServices = HandlerServicesDirect self.mDefault = HandlerDefaultDirect elif type == Handler.TypeTorrent: if HandlerServicesTorrent == None: HandlerServicesTorrent = [] if tools.Settings.getBoolean('streaming.torrent.enabled'): premiumize = debrid.Premiumize() offcloud = debrid.OffCloud() realdebrid = debrid.RealDebrid() default = tools.Settings.getInteger('streaming.torrent.default') if premiumize.accountValid() and premiumize.streamingTorrent(): handle = HandlePremiumize() HandlerServicesTorrent.append(handle) if default == 1: HandlerDefaultTorrent = handle if offcloud.accountValid() and offcloud.streamingTorrent(): handle = HandleOffCloud() HandlerServicesTorrent.append(handle) if default == 2: HandlerDefaultTorrent = handle if realdebrid.accountValid() and realdebrid.streamingTorrent(): handle = HandleRealDebrid() HandlerServicesTorrent.append(handle) if default == 3: HandlerDefaultTorrent = handle if tools.Settings.getBoolean('streaming.torrent.elementum.enabled') and tools.Settings.getBoolean('streaming.torrent.elementum.connected'): handle = HandleElementum() HandlerServicesTorrent.append(handle) if default == 4: HandlerDefaultTorrent = handle if tools.Settings.getBoolean('streaming.torrent.quasar.enabled') and tools.Settings.getBoolean('streaming.torrent.quasar.connected'): handle = HandleQuasar() HandlerServicesTorrent.append(handle) if default == 5: HandlerDefaultTorrent = handle self.mServices = HandlerServicesTorrent self.mDefault = HandlerDefaultTorrent else: self.mServices = HandlerServicesTorrent self.mDefault = HandlerDefaultTorrent elif type == Handler.TypeUsenet: if HandlerServicesUsenet == None: HandlerServicesUsenet = [] if tools.Settings.getBoolean('streaming.usenet.enabled'): premiumize = debrid.Premiumize() offcloud = debrid.OffCloud() default = tools.Settings.getInteger('streaming.usenet.default') if premiumize.accountValid() and premiumize.streamingUsenet(): handle = HandlePremiumize() HandlerServicesUsenet.append(handle) if default == 1: HandlerDefaultUsenet = handle if offcloud.accountValid() and offcloud.streamingUsenet(): handle = HandleOffCloud() HandlerServicesUsenet.append(handle) if default == 2: HandlerDefaultUsenet = handle self.mServices = HandlerServicesUsenet self.mDefault = HandlerDefaultUsenet else: self.mServices = HandlerServicesUsenet self.mDefault = HandlerDefaultUsenet elif type == Handler.TypeHoster: if HandlerServicesHoster == None: HandlerServicesHoster = [] if tools.Settings.getBoolean('streaming.hoster.enabled'): premiumize = debrid.Premiumize() offcloud = debrid.OffCloud() realdebrid = debrid.RealDebrid() alldebrid = debrid.AllDebrid() rapidpremium = debrid.RapidPremium() default = tools.Settings.getInteger('streaming.hoster.default') if premiumize.accountValid() and premiumize.streamingHoster(): handle = HandlePremiumize() HandlerServicesHoster.append(handle) if default == 1: HandlerDefaultHoster = handle if offcloud.accountValid() and offcloud.streamingHoster(): handle = HandleOffCloud() HandlerServicesHoster.append(handle) if default == 2: HandlerDefaultHoster = handle if realdebrid.accountValid() and realdebrid.streamingHoster(): handle = HandleRealDebrid() HandlerServicesHoster.append(handle) if default == 3: HandlerDefaultHoster = handle if alldebrid.accountValid() and alldebrid.streamingHoster(): handle = HandleAllDebrid() HandlerServicesHoster.append(handle) if default == 4: HandlerDefaultHoster = handle if rapidpremium.accountValid() and rapidpremium.streamingHoster(): handle = HandleRapidPremium() HandlerServicesHoster.append(handle) if default == 5: HandlerDefaultHoster = handle if tools.Settings.getBoolean('streaming.hoster.resolveurl.enabled'): handle = HandleResolveUrl() HandlerServicesHoster.append(handle) if default == 6: HandlerDefaultHoster = handle if tools.Settings.getBoolean('streaming.hoster.urlresolver.enabled'): handle = HandleUrlResolver() HandlerServicesHoster.append(handle) if default == 7: HandlerDefaultHoster = handle self.mServices = HandlerServicesHoster self.mDefault = HandlerDefaultHoster else: self.mServices = HandlerServicesHoster self.mDefault = HandlerDefaultHoster
def _showAccounts(self, first = True): if first: choice = self._option(35288, 33743, 33821) if choice == Wizard.ChoiceLeft: return self._cancel() orion = orionoid.Orionoid() enabled = interface.Format.fontBold(interface.Format.fontColor(interface.Translation.string(32301), interface.Format.ColorExcellent)) disabled = interface.Format.fontBold(interface.Format.fontColor(interface.Translation.string(32302), interface.Format.ColorBad)) special = interface.Translation.string(33105) premium = interface.Translation.string(33768) provider = interface.Translation.string(33681) general = interface.Translation.string(32310) items = [ interface.Format.fontBold(interface.Translation.string(33821)), interface.Format.fontBold('[' + special + '] ' + interface.Translation.string(35400) + ': ') + (enabled if orion.accountValid() else disabled), interface.Format.fontBold('[' + general + '] ' + interface.Translation.string(32315) + ': ') + (enabled if tools.Settings.getBoolean('accounts.informants.trakt.enabled') else disabled), interface.Format.fontBold('[' + general + '] ' + interface.Translation.string(32034) + ': ') + (enabled if tools.Settings.getBoolean('accounts.informants.imdb.enabled') else disabled), interface.Format.fontBold('[' + general + '] ' + interface.Translation.string(35260) + ': ') + (enabled if tools.Settings.getBoolean('accounts.artwork.fanart.enabled') else disabled), interface.Format.fontBold('[' + premium + '] ' + interface.Translation.string(33566) + ': ') + (enabled if debrid.Premiumize().accountValid() else disabled), interface.Format.fontBold('[' + premium + '] ' + interface.Translation.string(35200) + ': ') + (enabled if debrid.OffCloud().accountValid() else disabled), interface.Format.fontBold('[' + premium + '] ' + interface.Translation.string(33567) + ': ') + (enabled if debrid.RealDebrid().accountValid() else disabled), interface.Format.fontBold('[' + premium + '] ' + interface.Translation.string(33794) + ': ') + (enabled if debrid.EasyNews().accountValid() else disabled), interface.Format.fontBold('[' + premium + '] ' + interface.Translation.string(33568) + ': ') + (enabled if debrid.AllDebrid().accountValid() else disabled), interface.Format.fontBold('[' + premium + '] ' + interface.Translation.string(33569) + ': ') + (enabled if debrid.RapidPremium().accountValid() else disabled), ] choice = interface.Dialog.options(title = 32346, items = items) if choice < 0: return self._cancel() if choice == 0: return Wizard.OptionContinue elif choice == 1: if self._showOrion() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 2: if self._showTrakt() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 3: if self._showImdb() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 4: if self._showFanart() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 5: if self._showPremiumize() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 6: if self._showOffCloud() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 7: if self._showRealDebrid() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 8: if self._showEasyNews() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 9: if self._showAllDebrid() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard elif choice == 10: if self._showRapidPremium() == Wizard.OptionCancelWizard: return Wizard.OptionCancelWizard return self._showAccounts(first = False)
def __init__(self): Handle.__init__(self, 'RapidPremium') self.mService = debrid.RapidPremium() self.mServices = None