Exemple #1
0
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(),
        }
    }
Exemple #2
0
 def __init__(self):
     Handle.__init__(self,
                     id=self.Id,
                     name=self.Name,
                     abbreviation=self.Abbreviation)
     self.mService = debrid.RapidPremium()
     self.mServices = None
Exemple #3
0
	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
Exemple #4
0
def servicesRapidPremium():
    try:
        rapidpremium = debridx.RapidPremium()
        if rapidpremium.accountEnabled() and rapidpremium.accountValid():
            return rapidpremium.servicesList(onlyEnabled=True)
    except:
        pass
    return []
Exemple #5
0
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
Exemple #6
0
 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
Exemple #7
0
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
Exemple #8
0
	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
Exemple #9
0
	def __init__(self):
		Handle.__init__(self, id = HandleRapidPremium.Id, name = HandleRapidPremium.Name, abbreviation = HandleRapidPremium.Abbreviation, debrid = True)
		self.mService = debrid.RapidPremium()
		self.mServices = None
Exemple #10
0
	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
Exemple #11
0
	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)
Exemple #12
0
 def __init__(self):
     Handle.__init__(self, 'RapidPremium')
     self.mService = debrid.RapidPremium()
     self.mServices = None