def wrapper(_list_, limit=5, score=70): results = [] if not _list_: return term = control.inputDialog() if not term: return try: term = term.decode('utf-8') except AttributeError: pass control.busy() titles = [i['title'].encode('unicode-escape') for i in _list_] matches = [ titles.index(l) for l, s in process.extract( term.encode('unicode-escape'), titles, limit=limit ) if s >= score ] for m in matches: results.append(_list_[m]) control.idle() return results
def pin(): control.busy() title = control.infoLabel('ListItem.Title') pin_to_file(PINNED, title) control.infoDialog(control.lang(30338), time=750) control.idle()
def play(url, meta=None, quality=None): if meta: control.busy() stream = resolver(url, quality) try: isa_enabled = control.addon_details('inputstream.adaptive').get( 'enabled') except KeyError: isa_enabled = False dash = ('.mpd' in stream or 'dash' in stream or '.ism' in stream or '.hls' in stream or '.m3u8' in stream) and isa_enabled mimetype = None if isinstance(meta, dict): control.idle() if meta['title'] == 'custom': title = control.inputDialog() meta['title'] = title if dash and control.setting('disable_mpd') == 'false': if '.hls' in stream or 'm3u8' in stream: manifest_type = 'hls' mimetype = 'application/vnd.apple.mpegurl' elif '.ism' in stream: manifest_type = 'ism' else: manifest_type = 'mpd' log_debug('Activating MPEG-DASH for this url: ' + stream) directory.resolve(stream, meta=meta, dash=dash, manifest_type=manifest_type, mimetype=mimetype, resolved_mode=meta is None) else: directory.resolve(stream, meta=meta, resolved_mode=meta is None)
def unpin(): control.busy() title = control.infoLabel('ListItem.Title') unpin_from_file(PINNED, title) control.sleep(100) control.refresh() control.infoDialog(control.lang(30338), time=750) control.idle()
def play(url, meta=None): if meta: control.busy() stream = router(url) if isinstance(meta, dict): control.idle() if meta['title'] == 'custom': title = control.inputDialog() meta['title'] = title directory.resolve(stream, meta=meta, resolved_mode=meta is None)