コード例 #1
0
def set_reuselanguageinvoker():
    try:
        addon_xml = control.joinPath(control.addonPath('plugin.video.dg'),
                                     'addon.xml')
        tree = ET.parse(addon_xml)
        root = tree.getroot()
        for item in root.iter('reuselanguageinvoker'):
            current_value = str(item.text)
        if current_value:
            new_value = 'true' if current_value == 'false' else 'false'
            if not control.yesnoDialog(
                    control.lang(33018) % (current_value, new_value), '', ''):
                return control.openSettings(query='12.6')
            if new_value == 'true':
                if not control.yesnoDialog(control.lang(33019), '', ''): return
            item.text = new_value
            hash_start = gen_file_hash(addon_xml)
            tree.write(addon_xml)
            hash_end = gen_file_hash(addon_xml)
            if hash_start != hash_end:
                control.setSetting('reuse.languageinvoker', new_value)
                control.okDialog(
                    message='%s\n%s' %
                    (control.lang(33017) % new_value, control.lang(33020)))
            else:
                return control.okDialog(message=33021)
            current_profile = control.infoLabel('system.profilename')
            control.execute('LoadProfile(%s)' % current_profile)
    except:
        from resources.lib.modules import log_utils
        log_utils.error()
コード例 #2
0
def _rating(action, imdb=None, tvdb=None, season=None, episode=None):
    try:
        addon = 'script.trakt'
        if control.condVisibility('System.HasAddon(%s)' % addon):
            data = {}
            data['action'] = action
            if tvdb:
                data['video_id'] = tvdb
                if episode:
                    data['media_type'] = 'episode'
                    data['dbid'] = 1
                    data['season'] = int(season)
                    data['episode'] = int(episode)
                elif season:
                    data['media_type'] = 'season'
                    data['dbid'] = 5
                    data['season'] = int(season)
                else:
                    data['media_type'] = 'show'
                    data['dbid'] = 2
            else:
                data['video_id'] = imdb
                data['media_type'] = 'movie'
                data['dbid'] = 4
            script = control.joinPath(control.addonPath(addon), 'resources',
                                      'lib', 'sqlitequeue.py')
            sqlitequeue = imp.load_source('sqlitequeue', script)
            data = {'action': 'manualRating', 'ratingData': data}
            sqlitequeue.SqliteQueue().append(data)
        else:
            control.notification(title=32315, message=33659)
    except:
        log_utils.error()
コード例 #3
0
	def traktHiddenManager(self, idx=True):
		control.busy()
		try:
			if trakt.getActivity() > cache.timeout(self.trakt_list, self.progress_link, self.trakt_user): raise Exception()
			self.list = cache.get(self.trakt_list, 24, self.progress_link, self.trakt_user)
		except:
			self.list = cache.get(self.trakt_list, 0, self.progress_link, self.trakt_user)
		try:
			hidden = cache.get(trakt.getTrakt, 0, self.hiddenprogress_link) # if this gets cached and user hides an item it's not instantly removed.
			hidden = jsloads(hidden)
			hidden = [str(i['show']['ids']['tvdb']) for i in hidden]
			for i in self.list: i.update({'isHidden': 'true'}) if i['tvdb'] in hidden else i.update({'isHidden': ''})
			if idx: self.worker()
			self.list = sorted(self.list, key=lambda k: re.sub(r'(^the |^a |^an )', '', k['tvshowtitle'].lower()), reverse=False)
			self.list = sorted(self.list, key=lambda k: k['isHidden'], reverse=True)
			control.hide()
			from resources.lib.windows.trakthidden_manager import TraktHiddenManagerXML
			window = TraktHiddenManagerXML('trakthidden_manager.xml', control.addonPath(control.addonId()), results=self.list)
			chosen_hide, chosen_unhide = window.run()
			del window
			if chosen_unhide:
				success = trakt.unHideItems(chosen_unhide)
				if success: control.notification(title='Trakt Hidden Progress Manager', message='Successfully Unhid %s Item%s' % (len(chosen_unhide), 's' if len(chosen_unhide) >1 else ''))
			if chosen_hide:
				success = trakt.hideItems(chosen_hide)
				if success: control.notification(title='Trakt Hidden Progress Manager', message='Successfully Hid %s Item%s' % (len(chosen_hide), 's' if len(chosen_hide) >1 else ''))
		except:
			from resources.lib.modules import log_utils
			log_utils.error()
コード例 #4
0
	def load_uncachedTorrents(self):
		try:
			from resources.lib.windows.uncached_results import UncachedResultsXML
			from resources.lib.modules.control import addonPath, addonId
			window = UncachedResultsXML('uncached_results.xml', addonPath(addonId()), uncached=self.uncached, meta=self.meta)
			window.run()
		except:
			from resources.lib.modules import log_utils
			log_utils.error()
コード例 #5
0
ファイル: player.py プロジェクト: 123Venom/plugin.video.venom
	def show_stillwatching_xml(self):
		try:
			next_meta = self.getNext_meta()
			if not next_meta: raise Exception()
			from resources.lib.windows.playnext_stillwatching import StillWatchingXML
			window = StillWatchingXML('playnext_stillwatching.xml', control.addonPath(control.addonId()), meta=next_meta)
			window.run()
			del window
			self.play_next_triggered = True
		except:
			log_utils.error()
			self.play_next_triggered = True
コード例 #6
0
def get(name):
    nameDict = {
        'DG': 'plugin.video.dg',
        'MyAccounts': 'script.module.myaccounts',
        'FenomScrapers': 'script.module.fenomscrapers'
    }
    addon_path = addonPath(nameDict[name])
    addon_version = addonVersion(nameDict[name])
    changelog_file = joinPath(addon_path, 'changelog.txt')
    if not existsPath(changelog_file):
        from resources.lib.modules.control import notification
        return notification(message='ChangeLog File not found.')
    f = open(changelog_file, 'r', encoding='utf-8', errors='ignore')
    text = f.read()
    f.close()
    heading = '[B]%s -  v%s - ChangeLog[/B]' % (name, addon_version)
    windows = TextViewerXML('textviewer.xml',
                            addonPath('plugin.video.dg'),
                            heading=heading,
                            text=text)
    windows.run()
    del windows
コード例 #7
0
ファイル: help.py プロジェクト: rrosajp/plugin.video.venom
def get(file):
    venom_path = addonPath(addonId())
    venom_version = getVenomVersion()
    helpFile = joinPath(venom_path, 'resources', 'help', file + '.txt')
    r = open(helpFile)
    text = r.read()
    r.close()
    heading = '[B]Venom -  v%s - %s[/B]' % (venom_version, file)
    windows = TextViewerXML('textviewer.xml',
                            venom_path,
                            heading=heading,
                            text=text)
    windows.run()
    del windows
コード例 #8
0
def get(file):
    venom_path = addonPath(addonId())
    venom_version = getVenomVersion()
    helpFile = joinPath(venom_path, 'resources', 'help', file + '.txt')
    f = open(helpFile, 'r', encoding='utf-8', errors='ignore')
    text = f.read()
    f.close()
    heading = '[B]Venom -  v%s - %s[/B]' % (venom_version, file)
    windows = TextViewerXML('textviewer.xml',
                            venom_path,
                            heading=heading,
                            text=text)
    windows.run()
    del windows
コード例 #9
0
def get():
    venom_path = addonPath(addonId())
    venom_version = getVenomVersion()
    changelogfile = joinPath(venom_path, 'changelog.txt')
    r = open(changelogfile)
    text = r.read()
    r.close()
    heading = '[B]Venom -  v%s - ChangeLog[/B]' % venom_version
    windows = TextViewerXML('textviewer.xml',
                            venom_path,
                            heading=heading,
                            text=text)
    windows.run()
    del windows
コード例 #10
0
 def run(self):
     if control.getKodiVersion() < 18: return
     xbmc.log(
         '[ plugin.video.venom ]  ReuseLanguageInvokerCheck Service Starting...',
         2)
     try:
         import xml.etree.ElementTree as ET
         addon_xml = control.joinPath(
             control.addonPath('plugin.video.venom'), 'addon.xml')
         tree = ET.parse(addon_xml)
         root = tree.getroot()
         current_addon_setting = control.addon(
             'plugin.video.venom').getSetting('reuse.languageinvoker')
         try:
             current_xml_setting = [
                 str(i.text) for i in root.iter('reuselanguageinvoker')
             ][0]
         except:
             return xbmc.log(
                 '[ plugin.video.venom ]  ReuseLanguageInvokerCheck failed to get settings.xml value',
                 2)
         if current_addon_setting == '':
             current_addon_setting = 'true'
             control.setSetting('reuse.languageinvoker',
                                current_addon_setting)
         if current_xml_setting == current_addon_setting:
             return xbmc.log(
                 '[ plugin.video.venom ]  ReuseLanguageInvokerCheck Service Finished',
                 2)
         control.okDialog(message='%s\n%s' %
                          (control.lang(33023), control.lang(33020)))
         for item in root.iter('reuselanguageinvoker'):
             item.text = current_addon_setting
             hash_start = control.gen_file_hash(addon_xml)
             tree.write(addon_xml)
             hash_end = control.gen_file_hash(addon_xml)
             xbmc.log(
                 '[ plugin.video.venom ]  ReuseLanguageInvokerCheck Service Finished',
                 2)
             if hash_start != hash_end:
                 current_profile = control.infoLabel('system.profilename')
                 control.execute('LoadProfile(%s)' % current_profile)
             else:
                 control.okDialog(title='default', message=33022)
         return
     except:
         log_utils.error()
         pass
コード例 #11
0
def view_LogFile(name):
	try:
		from resources.lib.windows.textviewer import TextViewerXML
		from resources.lib.modules.control import addonPath
		log_file = joinPath(LOGPATH, '%s.log' % name.lower())
		if not existsPath(log_file):
			from resources.lib.modules.control import notification
			return notification(message='Log File not found, likely logging is not enabled.')
		f = open(log_file, 'r', encoding='utf-8', errors='ignore')
		text = f.read()
		f.close()
		heading = '[B]%s -  LogFile[/B]' % name
		windows = TextViewerXML('textviewer.xml', addonPath('plugin.video.venom'), heading=heading, text=text)
		windows.run()
		del windows
	except:
		error()
コード例 #12
0
ファイル: furk.py プロジェクト: 123Venom/plugin.video.venom
	def account_info_to_dialog(self):
		if not self.api_key: return
		from resources.lib.windows.textviewer import TextViewerXML
		try:
			control.busy()
			url = (self.base_link + self.account_info_link % (self.api_key))
			account_info = requests.get(url, timeout=20).json()
			if not account_info:
				control.hide()
				return control.notification(message=32221, icon=en_icon)
			account_type = account_info['premium']['name']
			month_time_left = float(account_info['premium']['bw_month_time_left']) / 60 / 60 / 24
			try: total_time_left = float(account_info['premium']['time_left']) / 60 / 60 / 24
			except: total_time_left = ''
			try: renewal_date = account_info['premium']['to_dt']
			except: renewal_date = ''
			try: is_not_last_month = account_info['premium']['is_not_last_month']
			except: is_not_last_month = ''
			try: bw_used_month = float(account_info['premium']['bw_used_month']) / 1073741824
			except: bw_used_month = ''
			try: bw_limit_month = float(account_info['premium']['bw_limit_month']) / 1073741824
			except: bw_limit_month = ''
			try: rem_bw_limit_month = bw_limit_month - bw_used_month
			except: rem_bw_limit_month = ''
			body = []
			append = body.append
			append(getLS(32489) % account_type.upper()) # Account
			append(getLS(32490) % str(round(bw_limit_month, 0))) # Monthly Limit
			append(getLS(32491)) # Current Month
			append('        - %s' % getLS(32492) % str(round(month_time_left, 2))) # Days Remaining
			append('        - %s GB' % getLS(32493) % str(round(bw_used_month, 2))) # Data Used
			append('        - %s GB' % getLS(32494) % str(round(rem_bw_limit_month, 2))) # Data Remaining
			if not account_type == 'LIFETIME':
				append(getLS(32495)) # Current Subscription
				append('[B]        - %s' % getLS(32492) % str(round(total_time_left, 0))) # Days Remaining
				if is_not_last_month == '1': append('        - %s' % getLS(32496) % renewal_date) # Resets On
				else: append('        - %s' % getLS(32497) % renewal_date) # Renewal Needed On
			control.hide()
			windows = TextViewerXML('textviewer.xml', control.addonPath(control.addonId()), heading='[B]FURK[/B]', text='\n\n'.join(body))
			windows.run()
			del windows
		except:
			from resources.lib.modules import log_utils
			log_utils.error()
コード例 #13
0
 def account_info_to_dialog(self):
     from datetime import datetime
     import time
     from resources.lib.windows.textviewer import TextViewerXML
     try:
         control.busy()
         account_info, usage_info = self.account()
         if not account_info or not usage_info:
             control.hide()
             return control.notification(message=32221, icon=en_icon)
         expires = datetime.fromtimestamp(
             time.mktime(time.strptime(account_info[2], '%Y-%m-%d')))
         days_remaining = (expires - datetime.today()).days
         expires = expires.strftime('%Y-%m-%d')
         body = []
         append = body.append
         append(getLS(40036) % account_info[0])  # Username
         append(getLS(40066) % account_info[1])  # Plan
         append(getLS(40037) % account_info[3])  # Status
         append(getLS(40041) % expires)  # Expires
         append(getLS(40042) % days_remaining)  # Days Remaining
         append(getLS(32218) % usage_info[2])  # Loyalty
         append(getLS(32219) %
                usage_info[0].replace('Gigs', 'GB'))  # Data Used
         append(
             getLS(32220) % re.sub(r'[</].+?>', '', usage_info[1].replace(
                 'Gigs', 'GB')))  # Data Remaining
         control.hide()
         windows = TextViewerXML('textviewer.xml',
                                 control.addonPath(control.addonId()),
                                 heading='[B]EasyNews[/B]',
                                 text='\n\n'.join(body))
         windows.run()
         del windows
     except:
         from resources.lib.modules import log_utils
         log_utils.error()
         control.hide()
コード例 #14
0
# -*- coding: utf-8 -*-
"""
	Venom Add-on
"""

from resources.lib.modules import control

venom_path = control.addonPath(control.addonId())
venom_version = control.getVenomVersion()
changelogfile = control.joinPath(venom_path, 'changelog.txt')


def get():
    r = open(changelogfile)
    text = r.read()
    r.close()
    control.dialog.textviewer(
        '[COLOR red]Venom[/COLOR] -  v%s - ChangeLog' % venom_version, text)
コード例 #15
0
# -*- coding: utf-8 -*-
"""
	Kraken Add-on
"""

from resources.lib.modules import control

kraken_path = control.addonPath(control.addonId())
kraken_version = control.addonVersion(control.addonId())


def get(file):
    helpFile = control.joinPath(kraken_path, 'resources', 'help',
                                file + '.txt')
    r = open(helpFile)
    text = r.read()
    r.close()
    control.dialog.textviewer(
        '[COLOR red]Kraken[/COLOR] -  v%s - %s' % (kraken_version, file), text)
コード例 #16
0
	def show_stillwatching_xml(self):
		from resources.lib.windows.playnext_stillwatching import StillWatchingXML
		window = StillWatchingXML('playnext_stillwatching.xml', control.addonPath(control.addonId()), meta=self.getNext_meta())
		window.run()
		del window
		self.play_next_triggered = True
コード例 #17
0
ファイル: newsinfo.py プロジェクト: deangrice07/dg.github.io
# -*- coding: utf-8 -*-
"""
	dg Add-on
"""

from urllib.request import urlopen, Request
from resources.lib.modules.control import addonPath, addonId, joinPath
from resources.lib.windows.textviewer import TextViewerXML

dg_path = addonPath(addonId())
news_file = 'https://raw.githubusercontent.com/deangrice07/dg.github.io/master/Matrix/wiz/newsinfo.txt'
local_news = joinPath(dg_path, 'newsinfo.txt')


def news():
    message = open_news_url(news_file)
    compfile = open(local_news).read()
    if len(message) > 1:
        if compfile == message: pass
        else:
            text_file = open(local_news, "wb")
            text_file.write(message)
            text_file.close()
            compfile = message
    showText('[B]News and Info[/B]', compfile)


def open_news_url(url):
    req = Request(url)
    req.add_header('User-Agent', 'klopp')
    response = urlopen(req)
コード例 #18
0
	def show_playnext_xml(self):
		from resources.lib.windows.playnext import PlayNextXML
		window = PlayNextXML('playnext.xml', control.addonPath(control.addonId()), meta=self.getNext_meta())
		window.run()
		del window
		self.play_next_triggered = True
コード例 #19
0
# -*- coding: utf-8 -*-
"""
	Venom Add-on
"""

from urllib.request import urlopen, Request
from resources.lib.modules.control import addonPath, addonId, joinPath
from resources.lib.windows.textviewer import TextViewerXML

venom_path = addonPath(addonId())
news_file = 'https://raw.githubusercontent.com/123Venom/plugin.video.venom/matrix/newsinfo.txt'
local_news = joinPath(venom_path, 'newsinfo.txt')


def news():
    message = open_news_url(news_file)
    compfile = open(local_news).read()
    if len(message) > 1:
        if compfile == message: pass
        else:
            text_file = open(local_news, "wb")
            text_file.write(message)
            text_file.close()
            compfile = message
    showText('[B]News and Info[/B]', compfile)


def open_news_url(url):
    req = Request(url)
    req.add_header('User-Agent', 'klopp')
    response = urlopen(req)