def get_video_link(self):
     if not self._read_sources():
         dialog = xbmcgui.Dialog()
         dialog.notification(control.lang(30103), "",
                             xbmcgui.NOTIFICATION_ERROR)
         return None
     return self._select_source()
    def _fetch_sources_progress(self, sources):
        dialog = xbmcgui.DialogProgress()
        dialog.create(control.lang(30100))
        ret = self._fetch_sources(sources, dialog)
        dialog.close()

        return ret
    def _fetch_sources_progress(self, sources):
        dialog = xbmcgui.DialogProgress()
        dialog.create(control.lang(30100))
        ret = self._fetch_sources(sources, dialog)
        dialog.close()

        return ret
Beispiel #4
0
def nullify(_id_):

    null = [{
        'title': control.lang(_id_),
        'image': control.join(control.addonmedia('null.png')),
        'url': sysurl
    }]

    return null
    def _select_source(self):
        if len(self._sources) == 1:
            print "1 source was found, returning it"
            return self._sources.values()[0]

        dialog = xbmcgui.Dialog()
        slist = sorted(self._sources.keys())
        sel = dialog.select(control.lang(30102), slist)
        if sel == -1:
            return None
        return self._sources[slist[sel]]
    def _select_source(self):
        if len(self._sources) == 1:
            print "1 source was found, returning it"
            return self._sources.values()[0]

        dialog = xbmcgui.Dialog()
        slist = sorted(self._sources.keys())
        sel = dialog.select(control.lang(30102), slist)
        if sel == -1:
            return None
        return self._sources[slist[sel]]
Beispiel #7
0
def switcher():

    groups = [control.lang(30016)] + constructor()[1]

    choices = control.dialog.select(heading=control.lang(30017), list=groups)

    if choices == 0:
        control.setSetting('group', 'ALL')
        control.execute('Dialog.Close(busydialog)')
        control.sleep(50)
        control.execute('Container.Refresh')
    elif choices <= len(groups) and not choices == -1:
        control.setSetting('group', (groups.pop(choices)))
        control.execute('Dialog.Close(busydialog)')
        control.sleep(50)
        control.execute('Container.Refresh')
    else:
        control.execute('Dialog.Close(busydialog)')
        control.dialog.notification(heading=control.addonInfo('name'),
                                    message=control.lang(30019),
                                    icon=control.addonInfo('icon'),
                                    sound=False)
    def _fetch_sources(self, sources, dialog):
        fetched_sources = []
        factor = 100.0 / len(sources)

        for i, do in enumerate(sources):
            if dialog.iscanceled():
                return None

            name, url = do
            try:
                dialog.update(int(i * factor), control.lang(30101) % name)
                fetched_url = embed_extractor.load_video_from_url(url)
                if fetched_url is not None:
                    fetched_sources.append(("%03d | %s" % (len(fetched_sources) + 1, name), fetched_url))
                else:
                    print "Skipping invalid source %s" % name
                dialog.update(int(i * factor), "")
            except Exception, e:
                print "[*E*] Skiping %s because Exception at parsing" % name
                print e
    def _fetch_sources(self, sources, dialog):
        fetched_sources = []
        factor = 100.0 / len(sources)

        for i, do in enumerate(sources):
            if dialog.iscanceled():
                return None

            name, url = do
            try:
                dialog.update(int(i * factor), control.lang(30101) % name)
                fetched_url = embed_extractor.load_video_from_url(url)
                if fetched_url is not None:
                    fetched_sources.append(
                        ("%03d | %s" % (len(fetched_sources) + 1, name),
                         fetched_url))
                else:
                    print "Skipping invalid source %s" % name
                dialog.update(int(i * factor), "")
            except Exception, e:
                print "[*E*] Skiping %s because Exception at parsing" % name
                print e
Beispiel #10
0
def SEARCH(payload):
    query = control.keyboard(control.lang(30002))
    if query:
        return control.draw_items(AnimeramBrowser().search_site(query))
    return False
Beispiel #11
0
from resources.lib import control
from resources.lib.SourcesList import SourcesList
from resources.lib.router import route, router_process
from resources.lib.AnimeramBrowser import AnimeramBrowser

AB_LIST = [".", "0"] + [chr(i) for i in range(ord("A"), ord("Z")+1)]
MENU_ITEMS = [
    (control.lang(30000), "latest"),
    (control.lang(30001), "all"),
    (control.lang(30002), "search")
]

@route('animes/*')
def ANIMES_PAGE(animeurl):
    return control.draw_items(AnimeramBrowser().get_anime_episodes(animeurl))

@route('latest')
def LATEST(payload):
    return control.draw_items(AnimeramBrowser().get_latest())

@route('search')
def SEARCH(payload):
    query = control.keyboard(control.lang(30002))
    if query:
        return control.draw_items(AnimeramBrowser().search_site(query))
    return False

@route('all')
def LIST_ALL_AB(payload):
    return control.draw_items([control.allocate_item(i, "all/%s" % i, True) for i in AB_LIST])
Beispiel #12
0
def SEARCH(payload):
    query = control.keyboard(control.lang(30002))
    if query:
        return control.draw_items(AnimeramBrowser().search_site(query))
    return False
Beispiel #13
0
from resources.lib import control
from resources.lib.SourcesList import SourcesList
from resources.lib.router import route, router_process
from resources.lib.AnimeramBrowser import AnimeramBrowser

AB_LIST = [".", "0"] + [chr(i) for i in range(ord("A"), ord("Z") + 1)]
MENU_ITEMS = [(control.lang(30000), "latest"), (control.lang(30001), "all"),
              (control.lang(30002), "search")]


@route('animes/*')
def ANIMES_PAGE(animeurl):
    return control.draw_items(AnimeramBrowser().get_anime_episodes(animeurl))


@route('latest')
def LATEST(payload):
    return control.draw_items(AnimeramBrowser().get_latest())


@route('search')
def SEARCH(payload):
    query = control.keyboard(control.lang(30002))
    if query:
        return control.draw_items(AnimeramBrowser().search_site(query))
    return False


@route('all')
def LIST_ALL_AB(payload):
    return control.draw_items(
Beispiel #14
0
def main_menu():

    _list_ = []

    root_menu = [{
        'title': control.lang(30011),
        'image': control.join(control.addonmedia('settings.png')),
        'url': '{0}?action={1}'.format(sysurl, 'settings')
    }, {
        'title':
        control.lang(30015).format(
            control.lang(30016) if control.setting('group') ==
            'ALL' else control.setting('group').decode('utf-8')),
        'image':
        control.join(control.addonmedia('switcher.png')),
        'url':
        '{0}?action={1}'.format(sysurl, 'switcher')
    }]

    try:
        if constructor() == 'Youtube':
            if 'playlist?list=' in control.setting('youtube_url'):
                _items_ = root_menu + cache.get(
                    youtube.youtube(
                        key='AIzaSyA8k1OyLGf03HBNl0byD511jr9cFWo2GR4').
                    playlist,
                    int(control.setting('caching'))
                    if int(control.setting('caching')) > 0 else 0,
                    control.setting('youtube_url').partition('list=')[2])
                del _items_[1]
            elif not bool(control.setting('youtube_url')):
                raise TypeError
            else:
                raise ValueError
        elif constructor() == 'null':
            raise TypeError
        elif not constructor()[0] == []:
            if len(constructor()[1]) == 1:
                del root_menu[1]
            if control.setting('group') not in constructor()[1]:
                control.setSetting('group', 'ALL')
            filtered = [
                item for item in constructor()[0] if any(
                    item['group'] == selected
                    for selected in [control.setting('group').decode('utf-8')])
            ] if not control.setting('group') == 'ALL' else constructor()[0]
            _items_ = root_menu + filtered
        else:
            raise ValueError
    except ValueError:
        _items_ = root_menu + nullify(30013)
        del _items_[1]
    except TypeError:
        _items_ = root_menu + nullify(30026)
        del _items_[1]

    for item in _items_:

        li = control.item(label=item['title'])
        li.setInfo('video', {'title': item['title']})
        li.setArt({
            'icon': item['image'],
            'thumb': item['image'],
            'fanart': control.addonInfo('fanart')
        })
        li.setProperty('IsPlayable', 'true')
        li.addContextMenuItems([
            (control.lang(30012),
             'RunPlugin({0}?action=refresh)'.format(sysurl))
        ])
        _url_ = '{0}?action=play&url={1}'.format(sysurl, item['url'])
        isFolder = False
        if control.setting('youtube') == 'true' and item['url'].startswith(
                'plugin://plugin.video.youtube/play/?video_id='):
            _url_ = '{0}?action=play&url={1}'.format(sysurl, item['url'])
        if control.setting('youtube') == 'false' and item['url'].startswith(
                'plugin://plugin.video.youtube/play/?video_id='):
            _url_ = item['url']
        if item['url'].startswith('plugin://'):
            _url_ = item['url']
        if item['url'].endswith(('settings', 'switcher')):
            li.setProperty('IsPlayable', 'false')
        _list_.append((_url_, li, isFolder))

    control.addItems(syshandle, _list_)
    control.directory(syshandle, cacheToDisc=True)
Beispiel #15
0
            except NameError:
                play_item(params['url'])
        except NameError:
            try:
                if urlresolver.HostedMediaFile(params['url']).valid_url():
                    url = urlresolver.resolve(params['url'])
                    play_item(url)
                else:
                    play_item(params['url'])
            except NameError:
                play_item(params['url'])

elif action == 'install_youtube-dl':

    if control.condVisibility('System.HasAddon(script.module.youtube.dl)'):
        control.infoDialog(control.lang(30030))
    else:
        control.execute('RunPlugin(plugin://script.module.youtube.dl)')

elif action == 'install_urlresolver':

    if control.condVisibility('System.HasAddon(script.module.urlresolver)'):
        control.infoDialog(control.lang(30031))
    else:
        control.execute('RunPlugin(plugin://script.module.urlresolver)')

elif action == 'settings':

    control.openSettings()

elif action == 'refresh':
 def get_video_link(self):
     if not self._read_sources():
         dialog = xbmcgui.Dialog()
         dialog.notification(control.lang(30103), "", xbmcgui.NOTIFICATION_ERROR)
         return None
     return self._select_source()