def toggle_auto_play(): if __autoplay_enabled(): addon.setSetting('auto-play', 'false') kodi.notify(msg='SALTS Auto-Play Turned Off') else: addon.setSetting('auto-play', 'true') kodi.notify(msg='SALTS Auto-Play Turned On')
def check_resolver(self): try: r = cache.get( client.request, 1, base64.b64decode( 'aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3hpYmFsYmExMC9zY3JpcHQubW9kdWxlLmFkdWx0cmVzb2x2ZXIvbWFzdGVyL2xpYi9hZHVsdHJlc29sdmVyL3Jlc29sdmVyLnB5' )) if len(r) > 1: with open(self.resolverFile, 'r') as f: compfile = f.read() if 'import' in r: if compfile == r: log_utils.log('Resolver checked and up to date!', log_utils.LOGNOTICE) pass else: with open(self.resolverFile, 'w') as f: f.write(r) log_utils.log('Resolver updated!', log_utils.LOGNOTICE) kodi.notify(msg='Resolver Updated.', duration=1250, sound=True) except Exception as e: log_utils.log( 'Error checking for resolver update :: Error: %s' % str(e), log_utils.LOGERROR)
def toggle_auto_play(): addon = xbmcaddon.Addon('plugin.video.salts') auto_play = addon.getSetting('auto-play') if auto_play == 'true': addon.setSetting('auto-play', 'false') kodi.notify(msg='SALTS Auto-Play Turned Off') else: addon.setSetting('auto-play', 'true') kodi.notify(msg='SALTS Auto-Play Turned On')
def main(argv=None): try: if kodi.get_setting('email_prompt') != 'true' and not kodi.get_setting( 'email'): kodi.set_setting('email_prompt', 'true') kodi.show_settings() if __confirm_upload(): upload_logs() except Exception as e: log_utils.log('Uploader Error: %s' % (e), log_utils.LOGWARNING) kodi.notify(msg=str(e)) raise
def main(argv=None): if sys.argv: argv = sys.argv log_utils.log('Version: |%s|' % (kodi.get_version())) log_utils.log('Args: |%s|' % (argv)) path = xbmc.getInfoLabel('ListItem.FileNameAndPath') if not path: path = xbmc.getInfoLabel('ListItem.Path') if __is_salts_listitem(path): dialog = xbmcgui.Dialog() tools = __get_tools(path) ret = dialog.select('SALTS Tools', [i[0] for i in tools]) if ret > -1: tools[ret][1](*tools[ret][2]) else: kodi.notify(msg='Not a SALTS Library Item')
def upload_logs(): logs = __get_logs() results = {} last_error = '' uploaders = uploader.Uploader.__class__.__subclasses__(uploader.Uploader) uploaders = [ klass for klass in uploaders if SERVER_ORDER.get(klass.name, 100) and kodi.get_setting('enable_%s' % (klass.name)) == 'true' ] uploaders.sort(key=lambda x: SERVER_ORDER.get(x.name, 100)) if not uploaders: last_error = 'No Uploaders Enabled' for log in logs: full_path, name = log if '.old.' not in name or kodi.get_setting('include_old') == 'true': with open(full_path, 'r') as f: log = f.read() for pattern, replace in REPLACES: log = re.sub(pattern, replace, log) for klass in uploaders: try: log_service = klass() result = log_service.upload_log(log, name) results[log_service.name] = results.get( log_service.name, { 'service': log_service, 'results': {} }) results[log_service.name]['results'][name] = result break except UploaderError as e: log_utils.log( 'Uploader Error: (%s) %s: %s' % (log_service.__class__.__name__, name, e), log_utils.LOGWARNING) last_error = str(e) else: log_utils.log( 'No successful upload for: %s Last Error: %s' % (name, last_error), log_utils.LOGWARNING) if results: email = None if email: for service in results: try: success = results[service]['service'].send_email( email, results[service]['results']) results[service]['email'] = success except UploaderError as e: log_utils.log('Email Error: (%s): %s' % (service, e), log_utils.LOGWARNING) results[service]['email'] = False args = [i18n('logs_uploaded')] for _, name in FILES: for service in results: if name in results[service]['results']: line = '%s: %s' % (name, results[service]['results'][name]) args.append(line) log_utils.log( '[COLOR white]Log Uploaded: %s: %s[/COLOR]' % (name, results[service]['results'][name]), log_utils.LOGNOTICE) xbmcgui.Dialog().ok(*args) else: kodi.notify(i18n('logs_failed') % (last_error), duration=5000)