Ejemplo n.º 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(),
        }
    }
Ejemplo n.º 2
0
	def _showOffCloud(self):
		choice = self._option(35262, 33897, 33898)
		if choice == Wizard.ChoiceLeft: return Wizard.OptionCancelStep
		choice = self._option(35263, 33899, 33900)
		if choice == Wizard.ChoiceLeft:
			tools.System.openLink(tools.Settings.getString('link.offcloud', raw = True))
			choice = self._option(35266, 33743, 33898)
			if choice == Wizard.ChoiceLeft: return self._cancel()
		api = apiOriginal = tools.Settings.getString('accounts.debrid.offcloud.api')
		while True:
			choice = self._option(35264, 33743, 33901)
			if choice == Wizard.ChoiceLeft: return self._cancel()
			api = self._input(default = api)
			interface.Loader.show()
			tools.Settings.set('accounts.debrid.offcloud.enabled', True)
			tools.Settings.set('accounts.debrid.offcloud.api', api)
			valid = debrid.OffCloud().accountVerify()
			interface.Loader.hide()
			if valid:
				tools.Settings.set('providers.universal.premium.member.offcloud', True)
				choice = self._option(35265, 33743, 33821)
				if choice == Wizard.ChoiceLeft: return self._cancel()
				return Wizard.OptionContinue
			else:
				tools.Settings.set('accounts.debrid.offcloud.enabled', False)
				tools.Settings.set('accounts.debrid.offcloud.api', apiOriginal)
				choice = self._option(35267, 33743, 33902)
				if choice == Wizard.ChoiceLeft: return self._cancel()
		return Wizard.OptionContinue
Ejemplo n.º 3
0
 def __init__(self):
     Handle.__init__(self,
                     id=self.Id,
                     name=self.Name,
                     abbreviation=self.Abbreviation)
     self.mService = debrid.OffCloud()
     self.mServices = None
Ejemplo n.º 4
0
    def __init__(self):
        self.orion = orionoid.Orionoid()

        self.pack = False  # Checked by provider.py
        self.priority = 0
        self.language = ['un']

        self.base_link = self.orion.link()
        self.domains = [network.Networker.linkDomain(self.base_link)]

        enabledPremiumize = debrid.Premiumize().accountValid() and (
            tools.Settings.getBoolean('streaming.torrent.premiumize.enabled')
            or
            tools.Settings.getBoolean('streaming.usenet.premiumize.enabled'))
        enabledOffCloud = debrid.OffCloud().accountValid() and (
            tools.Settings.getBoolean('streaming.torrent.offcloud.enabled')
            or tools.Settings.getBoolean('streaming.usenet.offcloud.enabled'))
        enabledRealDebrid = debrid.RealDebrid().accountValid(
        ) and tools.Settings.getBoolean('streaming.torrent.realdebrid.enabled')
        self.cache = tools.Settings.getBoolean('scraping.cache.enabled') and (
            (enabledPremiumize
             and tools.Settings.getBoolean('scraping.cache.premiumize')) or
            (enabledOffCloud
             and tools.Settings.getBoolean('scraping.cache.offcloud')) or
            (enabledRealDebrid
             and tools.Settings.getBoolean('scraping.cache.realdebrid')))
Ejemplo n.º 5
0
def servicesOffCloud():
    try:
        offcloud = debridx.OffCloud()
        if offcloud.accountEnabled() and offcloud.accountValid():
            return offcloud.servicesList(onlyEnabled=True)
    except:
        pass
    return []
Ejemplo n.º 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
Ejemplo n.º 7
0
	def handlesSingleCache(self):
		global HandlesCache
		if HandlesCache == None:
			HandlesCache = 0
			services = [debrid.Premiumize(), debrid.OffCloud(), debrid.RealDebrid()]
			for service in services:
				if service.accountValid():
					HandlesCache += 1
		return HandlesCache <= 1
Ejemplo n.º 8
0
    def _items(self, category, title, year, season, episode, pack):
        try:
            timerEnd = tools.Settings.getInteger(
                'scraping.providers.timeout') - 3
            timer = tools.Time(start=True)

            items = debrid.OffCloud().items(category=category)
            try:
                self.mutex.acquire()
            except:
                pass

            threads = []
            for item in items:
                if item['status'] == debrid.OffCloud.StatusFinished:  # Only finished downloads.
                    id = item['id']
                    if not id in self.ids:
                        meta = metadata.Metadata(name=item['name'],
                                                 title=title,
                                                 year=year,
                                                 season=season,
                                                 episode=episode,
                                                 pack=pack)
                        if not meta.ignore(size=False):
                            self.ids.append(id)
                            if category == debrid.OffCloud.CategoryInstant:
                                self.items.append(item)
                            else:
                                threads.append(
                                    threading.Thread(target=self._item,
                                                     args=(category, id,
                                                           season, episode)))

            try:
                self.mutex.release()
            except:
                pass

            if len(threads) > 0:
                [thread.start() for thread in threads]

                while True:
                    if timer.elapsed() > timerEnd:
                        break
                    if all([not thread.is_alive() for thread in threads]):
                        break
                    time.sleep(0.5)
        except:
            tools.Logger.error()
Ejemplo n.º 9
0
 def _verifyAccountsOffcloud(self, checkDisabled=True):
     name = 'OffCloud'
     if self.__done(name): return
     try:
         if not checkDisabled or self.__enabled(
                 'accounts.debrid.offcloud.enabled'):
             if debrid.OffCloud().accountVerify():
                 status = Verification.StatusOperational
             else:
                 status = Verification.StatusFailure
         else:
             status = Verification.StatusDisabled
     except:
         status = Verification.StatusFailure
     return self.__append(name=name, status=status)
Ejemplo n.º 10
0
 def _item(self, category, id, season, episode):
     try:
         item = debrid.OffCloud().item(category=category,
                                       id=id,
                                       transfer=True,
                                       files=True,
                                       season=season,
                                       episode=episode)
         try:
             self.mutex.acquire()
         except:
             pass
         if item: self.items.append(item)
         try:
             self.mutex.release()
         except:
             pass
     except:
         tools.Logger.error()
Ejemplo n.º 11
0
	def _debridClear(self):
		if self.handle:
			if not isinstance(self.handle, basestring):
				self.handle = self.handle.id()
			self.handle = self.handle.lower()
			source = self.source['source']
			try: id = self.source['stream']['id']
			except: id = self.url
			try: handle = self.source['stream']['handle']
			except: handle = None
			if handle == handler.HandlePremiumize.Id and debrid.Premiumize.deletePossible(source):
				pack = self.source['pack'] if 'pack' in self.source else None
				debrid.Premiumize().deletePlayback(id, pack)
			elif handle == handler.HandleOffCloud.Id and debrid.OffCloud.deletePossible(source):
				try: category = self.source['stream']['category']
				except: category = None
				pack = self.source['pack'] if 'pack' in self.source else None
				debrid.OffCloud().deletePlayback(id, pack, category)
			elif handle == handler.HandleRealDebrid.Id and debrid.RealDebrid.deletePossible(source):
				debrid.RealDebrid().deletePlayback(id)
Ejemplo n.º 12
0
 def instanceEnabled(self):
     offcloud = debrid.OffCloud()
     return offcloud.accountEnabled() and offcloud.accountValid()
Ejemplo n.º 13
0
    def sources(self, url, hostDict, hostprDict):
        self.items = [
        ]  # NB: The same object of the provider is used for both normal episodes and season packs. Make sure it is cleared from the previous run.
        sources = []
        try:
            if url == None:
                raise Exception()

            if not debrid.OffCloud().accountValid():
                raise Exception()

            data = urlparse.parse_qs(url)
            data = dict([(i, data[i][0]) if data[i] else (i, '')
                         for i in data])

            if 'exact' in data and data['exact']:
                title = data['tvshowtitle'] if 'tvshowtitle' in data else data[
                    'title']
                year = None
                season = None
                episode = None
                pack = False
                packCount = 0
            else:
                title = data['tvshowtitle'] if 'tvshowtitle' in data else data[
                    'title']
                year = int(
                    data['year']
                ) if 'year' in data and not data['year'] == None else None
                season = int(
                    data['season']
                ) if 'season' in data and not data['season'] == None else None
                episode = int(
                    data['episode']) if 'episode' in data and not data[
                        'episode'] == None else None
                pack = data['pack'] if 'pack' in data else False
                packCount = data['packcount'] if 'packcount' in data else False

            timerEnd = tools.Settings.getInteger(
                'scraping.providers.timeout') - 3
            timer = tools.Time(start=True)

            threads = []
            self.ids = []
            threads.append(
                threading.Thread(target=self._items,
                                 args=(debrid.OffCloud.CategoryCloud, title,
                                       year, season, episode, pack)))
            threads.append(
                threading.Thread(target=self._items,
                                 args=(debrid.OffCloud.CategoryInstant, title,
                                       year, season, episode, pack)))
            [thread.start() for thread in threads]

            while True:
                if timer.elapsed() > timerEnd:
                    break
                if all([not thread.is_alive() for thread in threads]):
                    break
                time.sleep(0.5)

            try:
                self.mutex.acquire()
            except:
                pass
            items = self.items
            try:
                self.mutex.release()
            except:
                pass

            for item in items:
                try:
                    jsonName = item['video']['name']
                    try:
                        if not item['name'] == jsonName:
                            jsonName = item[
                                'name'] + ' - ' + jsonName  # Sometimes metadata, like quality, is only in the folder name, not the file name.
                    except:
                        pass

                    jsonLink = item['video']['link']
                    try:
                        jsonSize = item['size']['bytes']
                    except:
                        jsonSize = None

                    # Metadata
                    meta = metadata.Metadata(name=jsonName,
                                             title=title,
                                             year=year,
                                             season=season,
                                             episode=episode,
                                             size=jsonSize,
                                             pack=pack,
                                             packCount=packCount)

                    # Add
                    sources.append({
                        'url': jsonLink,
                        'premium': True,
                        'debridonly': True,
                        'direct': True,
                        'memberonly': True,
                        'source': 'OffCloud',
                        'language': self.language[0],
                        'quality': meta.videoQuality(),
                        'metadata': meta,
                        'file': jsonName
                    })
                except:
                    pass
            return sources
        except:
            return sources
Ejemplo n.º 14
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
Ejemplo n.º 15
0
	def __init__(self):
		Handle.__init__(self, id = HandleOffCloud.Id, name = HandleOffCloud.Name, abbreviation = HandleOffCloud.Abbreviation, debrid = True)
		self.mService = debrid.OffCloud()
		self.mServices = None
Ejemplo n.º 16
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
Ejemplo n.º 17
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
Ejemplo n.º 18
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)