Ejemplo n.º 1
0
def search_menu():
    from commoncore import trakt
    kodi.add_menu_item(
        {
            'mode': '%s_search_results' % kodi.args['media'],
            "api": {
                "name": "trakt",
                "method": "search",
                "args": ('', )
            }
        }, {'title': "*** New Search ***"},
        icon='search.png')
    history = trakt.get_search_history(kodi.args['media'])
    for h in history:
        kodi.add_menu_item(
            {
                'mode': '%s_search_results' % kodi.args['media'],
                "api": {
                    "name": "trakt",
                    "method": "search",
                    "args": h
                }
            }, {'title': h[0]},
            icon='search.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 2
0
def main():
    menu = kodi.ContextMenu()
    menu.add(
        'Set Default View', {
            "mode": "set_default_view",
            "api": {
                "name": "kodi",
                "method": "set_default_view",
                "args": ("list", )
            }
        })
    kodi.add_menu_item({'mode': 'tv_menu'}, {'title': "Shows"},
                       menu=menu,
                       icon='shows.png')
    kodi.add_menu_item({'mode': 'movie_menu'}, {'title': "Movies"},
                       menu=menu,
                       icon='movies.png')
    kodi.add_menu_item(
        {
            'mode': 'execute_api',
            "api": {
                "name": "kodi",
                "method": "go_to_url",
                "args": ("plugin://plugin.video.scrapecore.bowser", )
            }
        }, {'title': "Bowser"},
        menu=menu,
        icon='bowser.png',
        visible=kodi.get_condition_visiblity(
            'System.HasAddon(plugin.video.scrapecore.bowser)') == 1)
    kodi.add_menu_item({'mode': 'settings_menu'},
                       {'title': "Settings and Tools"},
                       menu=menu,
                       icon='settings.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 3
0
def feed_list():
    from commoncore.baseapi import CACHABLE_API, EXPIRE_TIMES

    class FeedAPI(CACHABLE_API):
        base_url = ''
        default_return_type = 'xml'

    try:
        xml = FeedAPI().request(kodi.arg('url'),
                                cache_limit=EXPIRE_TIMES.EIGHTHOURS)
        for r in xml.findAll('repository'):
            name = r.find('name').text
            username = r.find('username').text
            desc = r.find('description').text
            title = "%s: %s" % (name, desc)
            kodi.add_menu_item(
                {
                    'mode': 'search',
                    'type': 'username',
                    'query': username
                }, {
                    'title': title,
                    'plot': desc
                },
                icon='null')
        kodi.eod()
    except:
        pass
Ejemplo n.º 4
0
def list_modules():
    from scrapecore import scrapecore
    for r in scrapecore.get_installed_resources():
        kodi.add_menu_item({
            'mode': 'void',
        }, {'title': r['name']}, icon='')
    kodi.eod()
Ejemplo n.º 5
0
def feed_menu():
    from libs.database import DB
    kodi.add_menu_item({'mode': 'new_feed'},
                       {'title': "*** New Search Feed ***"},
                       icon='null')
    feeds = DB.query_assoc(
        "SELECT feed_id, name, url, enabled FROM feed_subscriptions")
    for feed in feeds:
        menu = kodi.ContextMenu()

        name = feed['name'] if feed['name'] else feed['url']
        if not feed['enabled']:
            title = "[COLOR darkred]%s[/COLOR]" % name
        else:
            title = name
        menu.add('Delete Feed', {
            "mode": "delete_feed",
            "title": title,
            "id": feed['feed_id']
        })
        kodi.add_menu_item({
            'mode': 'list_feed',
            'url': feed['url']
        }, {'title': title},
                           menu=menu,
                           icon='null')
    kodi.eod()
Ejemplo n.º 6
0
def browse_service():
    from scrapecore import scrapers
    if kodi.args['media'] == 'shows':
        shows = scrapers.list_shows(kodi.args['service'])
        for show in shows:
            image = show['image'] if 'image' in show else ''
            kodi.add_menu_item(
                {
                    'mode': 'browse_show',
                    "service": kodi.args['service'],
                    "url": show['url']
                }, {'title': show['title']},
                image=image)
    else:
        movies = scrapers.list_movies(kodi.args['service'])
        for movie in movies:
            image = movie['image'] if 'image' in movie else ''
            kodi.add_menu_item(
                {
                    'mode': 'play_direct',
                    "service": kodi.args['service'],
                    "url": movie['url']
                }, {'title': movie['title']},
                image=image)
    kodi.eod()
Ejemplo n.º 7
0
def premiumize_transfers():
    import re
    from commoncore import premiumize
    from scrapecore.scrapers.common import BaseScraper, QUALITY
    id = kodi.arg('id', '')
    transfers = premiumize.list_transfers()
    kodi.add_menu_item(
        {
            "mode": "execute_api",
            "api": {
                "name": "premiumize",
                "method": "clear_transfers",
                "refresh": True,
                "confirm": "Confirm Clear Transfers(s)?",
                "message": "Delete all transfers"
            }
        }, {'title': "*** Clear Finished Transfered ***"},
        icon="clear_transfers.png")
    for t in transfers['transfers']:
        menu = kodi.ContextMenu()
        kodi.add_menu_item({
            'mode': 'void',
            "id": t['id']
        }, {'title': t['name']},
                           menu=menu,
                           icon="definition/folder.png")
    kodi.eod(DEFAULT_VIEWS.STREAMS)
Ejemplo n.º 8
0
def realdebrid_torrents():
    from commoncore import realdebrid
    from scrapecore.scrapers.common import BaseScraper
    s = BaseScraper()
    torrents = realdebrid.list_torrents()
    for t in torrents:
        menu = kodi.ContextMenu()
        icon = ''
        quality = s.test_quality(t['filename'])
        size = core.format_size(t['bytes'])
        display = "RealDebrid | %s | %s" % (core.format_color(
            size, 'blue'), t['filename'])
        kodi.add_video_item(
            {
                "mode": "realdebrid_direct",
                "name": t['filename'],
                "type": "stream",
                "url": t['links'][0]
            }, {
                "title": t['filename'],
                "display": display
            },
            icon=icon,
            menu=menu)

    kodi.eod(DEFAULT_VIEWS.STREAMS)
Ejemplo n.º 9
0
def movies_standard_menu():
    menu = kodi.ContextMenu()
    menu.add(
        'Set Default View', {
            "mode": "set_default_view",
            "api": {
                "name": "kodi",
                "method": "set_default_view",
                "args": ("list", )
            }
        })
    kodi.add_menu_item(
        {
            'mode': 'movies_trending',
            "api": {
                "name": "trakt",
                "method": "get_trending_movies"
            }
        }, {'title': "Trending Movies"},
        icon='trending.png')
    kodi.add_menu_item(
        {
            'mode': 'movies_popular',
            "api": {
                "name": "trakt",
                "method": "get_popular_movies"
            }
        }, {'title': "Popular Movies"},
        icon='popular.png')
    kodi.add_menu_item(
        {
            'mode': 'movies_recommended',
            "api": {
                "name": "trakt",
                "method": "get_recommended_movies"
            }
        }, {'title': "Recommended Movies"},
        icon='recommended.png')
    kodi.add_menu_item(
        {
            'mode': 'movies_anticipated',
            "api": {
                "name": "trakt",
                "method": "get_anticipated_movies"
            }
        }, {'title': "Anticipated Movies"},
        icon='anticipated.png')
    kodi.add_menu_item(
        {
            'mode': 'movies_genres',
            'media': 'movies',
            "api": {
                "name": "trakt",
                "method": "get_genres",
                "args": ("movies", )
            }
        }, {'title': "Genres"},
        icon='genres.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 10
0
def main():
	show_about()
	kodi.add_menu_item({'mode': 'search_menu', 'type': "username", 'title': "Search by GitHub Username"}, {'title': "Search by GitHub Username"}, icon='username.png')
	kodi.add_menu_item({'mode': 'search_menu', 'type': "repository", 'title': "Search by GitHub Repository Title"}, {'title': "Search by GitHub Repository Title [COLOR red](Advanced)[/COLOR]"}, icon='repository.png')
	kodi.add_menu_item({'mode': 'search_menu', 'type': "addonid",'title': "Search by Addon ID"}, {'title': "Search by Addon ID [COLOR red](Advanced)[/COLOR]"}, icon='addonid.png')
	kodi.add_menu_item({'mode': 'feed_menu'}, {'title': "Search Feeds"}, icon='search_feeds.png')
	kodi.add_menu_item({'mode': 'installer_menu'}, {'title': "Batch Installers"}, icon='batch_installer.png') 
	kodi.add_menu_item({'mode': 'about'}, {'title': "About GitHub Installer"}, icon='about.png')
	kodi.add_menu_item({'mode': 'settings_menu'}, {'title': "Tools and Settings"}, icon='settings.png')
	kodi.eod()
Ejemplo n.º 11
0
def main():
	show_about()
	kodi.add_menu_item({'mode': 'search_menu', 'type': "username", 'title': "Search by GitHub Username"}, {'title': "Search by GitHub Username"}, icon='username.png')
	kodi.add_menu_item({'mode': 'search_menu', 'type': "repository", 'title': "Search by GitHub Repository Title"}, {'title': "Search by GitHub Repository Title [COLOR red](Advanced)[/COLOR]"}, icon='repository.png')
	kodi.add_menu_item({'mode': 'search_menu', 'type': "addonid",'title': "Search by Addon ID"}, {'title': "Search by Addon ID [COLOR red](Advanced)[/COLOR]"}, icon='addonid.png')
	kodi.add_menu_item({'mode': 'feed_menu'}, {'title': "Search Feeds"}, icon='search_feeds.png', visible=feed_count()>0)
	kodi.add_menu_item({'mode': 'update_addons'}, {'title': "Check for Updates [COLOR red](Advanced)[/COLOR]"}, icon='update.png', visible=kodi.get_setting('enable_updates') == 'true')
	kodi.add_menu_item({'mode': 'about'}, {'title': "About GitHub Installer"}, icon='about.png')
	kodi.add_menu_item({'mode': 'addon_settings'}, {'title': "Tools and Settings"}, icon='settings.png')
	kodi.eod()
Ejemplo n.º 12
0
def main():
	show_about()
	kodi.add_menu_item({'mode': 'search_menu', 'type': "username", 'title': "Search by GitHub Username"}, {'title': "Search by GitHub Username"}, icon='username.png')
	kodi.add_menu_item({'mode': 'search_menu', 'type': "repository", 'title': "Search by GitHub Repository Title"}, {'title': "Search by GitHub Repository Title [COLOR red](Advanced)[/COLOR]"}, icon='repository.png')
	kodi.add_menu_item({'mode': 'search_menu', 'type': "addonid",'title': "Search by Addon ID"}, {'title': "Search by Addon ID [COLOR red](Advanced)[/COLOR]"}, icon='addonid.png')
	kodi.add_menu_item({'mode': 'feed_menu'}, {'title': "Search Feeds"}, icon='search_feeds.png')
	kodi.add_menu_item({'mode': 'installer_menu'}, {'title': "Batch Installers"}, icon='batch_installer.png') 
	kodi.add_menu_item({'mode': 'about'}, {'title': "About GitHub Installer"}, icon='about.png')
	kodi.add_menu_item({'mode': 'settings_menu'}, {'title': "Tools and Settings"}, icon='settings.png')
	kodi.eod()
Ejemplo n.º 13
0
def scraper_list():
    for s in scrapecore.get_scrapers():
        if kodi.get_setting(s['service'] + '_enable') == 'true':
            title = format_color(s['name'], 'green')
        else:
            title = format_color(s['name'], 'maroon')
        kodi.add_menu_item({
            'mode': 'toggle_scraper',
            "service": s['service']
        }, {'title': title},
                           icon='')
    kodi.eod()
Ejemplo n.º 14
0
def main():
    kodi.add_menu_item({
        "mode": "browse_menu",
        "media": "shows"
    }, {"title": "TV Shows"})
    kodi.add_menu_item({
        "mode": "browse_menu",
        "media": "movies"
    }, {"title": "Movies"})
    kodi.add_menu_item({"mode": "list_modules"},
                       {"title": "List Resource Modules"})
    kodi.eod()
Ejemplo n.º 15
0
def browse_menu():
    from scrapecore import scrapers
    services = scrapers.get_browsable_scrapers(kodi.args['media'])
    for service, name in services:
        kodi.add_menu_item(
            {
                'mode': 'browse_service',
                "service": service,
                "media": kodi.args['media']
            }, {'title': "Browse: %s" % name},
            icon='png')
    kodi.eod()
Ejemplo n.º 16
0
def search_menu():
	from libs.database import DB
	menu = kodi.ContextMenu()
	menu.add('Search Filter', {"mode": "search_filter"})
	kodi.add_menu_item({'mode': 'void'}, {'title': "[COLOR darkorange]%s[/COLOR]" % kodi.arg('title')}, icon='null', menu=menu)
	kodi.add_menu_item({'mode': 'search', 'type': kodi.arg('type')}, {'title': "*** New Search ***"}, icon='null', menu=menu)
	results = DB.query_assoc("SELECT search_id, query FROM search_history WHERE search_type=? ORDER BY ts DESC LIMIT 25", [kodi.arg('type')], quiet=True)
	if results is not None:
		for result in results:
			menu = kodi.ContextMenu()
			menu.add('Search Filter', {"mode": "search_filter"})
			menu.add('Delete from search history', {"mode": "history_delete", "id": result['search_id']})
			kodi.add_menu_item({'mode': 'search', 'type': kodi.arg('type'), 'query': result['query']}, {'title': result['query']}, menu=menu, icon='null')
	kodi.eod()
Ejemplo n.º 17
0
def browse_show():
    from scrapecore import scrapers
    episodes = scrapers.list_episodes(kodi.args['service'], kodi.args['url'])
    for episode in episodes:
        image = episode['image'] if 'image' in episode else ''
        kodi.add_video_item(
            {
                'mode': 'play_direct',
                "service": kodi.args['service'],
                "raw_url": episode['url']
            }, {'title': episode['title']},
            random_url=False,
            image=image)
    kodi.eod()
Ejemplo n.º 18
0
def search_menu():
	from libs.database import DB
	menu = kodi.ContextMenu()
	menu.add('Search Filter', {"mode": "search_filter"})
	kodi.add_menu_item({'mode': 'void'}, {'title': "[COLOR darkorange]%s[/COLOR]" % kodi.arg('title')}, icon='null', menu=menu)
	kodi.add_menu_item({'mode': 'search', 'type': kodi.arg('type')}, {'title': "*** New Search ***"}, icon='null', menu=menu)
	results = DB.query_assoc("SELECT search_id, query FROM search_history WHERE search_type=? ORDER BY ts DESC LIMIT 25", [kodi.arg('type')], quiet=True)
	if results is not None:
		for result in results:
			menu = kodi.ContextMenu()
			menu.add('Search Filter', {"mode": "search_filter"})
			menu.add('Delete from search history', {"mode": "history_delete", "id": result['search_id']})
			kodi.add_menu_item({'mode': 'search', 'type': kodi.arg('type'), 'query': result['query']}, {'title': result['query']}, menu=menu, icon='null')
	kodi.eod()
Ejemplo n.º 19
0
def feed_menu():
	from libs.database import DB
	kodi.add_menu_item({'mode': 'install_local_feed'}, {'title': "*** Local Search Feed File ***"}, icon='install_feed_local.png')
	#kodi.add_menu_item({'mode': 'search', 'query': 'gitbrowser.feed', 'type': 'addonid'}, {'title': "*** Search for Feeds ***"}, icon='null')
	feeds = DB.query_assoc("SELECT feed_id, name, url, enabled FROM feed_subscriptions")
	for feed in feeds:
		menu = kodi.ContextMenu()
		
		name = feed['name'] if feed['name'] else feed['url']
		if not feed['enabled']:
			title = "[COLOR darkred]%s[/COLOR]" % name
		else: title = name
		menu.add('Delete Feed', {"mode": "delete_feed", "title": title, "id": feed['feed_id']})
		kodi.add_menu_item({'mode': 'list_feed', 'url': feed['url']}, {'title': title}, menu=menu, icon='null')
	kodi.eod()
Ejemplo n.º 20
0
def feed_menu():
	from libs.database import DB
	kodi.add_menu_item({'mode': 'install_local_feed'}, {'title': "*** Local Search Feed File ***"}, icon='install_feed_local.png')
	#kodi.add_menu_item({'mode': 'search', 'query': 'gitbrowser.feed', 'type': 'addonid'}, {'title': "*** Search for Feeds ***"}, icon='null')
	feeds = DB.query_assoc("SELECT feed_id, name, url, enabled FROM feed_subscriptions")
	for feed in feeds:
		menu = kodi.ContextMenu()
		
		name = feed['name'] if feed['name'] else feed['url']
		if not feed['enabled']:
			title = "[COLOR darkred]%s[/COLOR]" % name
		else: title = name
		menu.add('Delete Feed', {"mode": "delete_feed", "title": title, "id": feed['feed_id']})
		kodi.add_menu_item({'mode': 'list_feed', 'url': feed['url']}, {'title': title}, menu=menu, icon='null')
	kodi.eod()
Ejemplo n.º 21
0
def feed_list():
	from commoncore.baseapi import CACHABLE_API, EXPIRE_TIMES
	class FeedAPI(CACHABLE_API):
		base_url = ''
		default_return_type = 'xml'
	try:
		xml = FeedAPI().request(kodi.arg('url'), cache_limit=EXPIRE_TIMES.EIGHTHOURS)
		for r in xml.findAll('repository'):
			name = r.find('name').text
			username = r.find('username').text
			desc = r.find('description').text
			title = "%s: %s" % (name, desc)
			kodi.add_menu_item({'mode': 'search', 'type': 'username', 'query': username}, {'title': title, 'plot': desc}, icon='null')
		kodi.eod()	
	except:pass
Ejemplo n.º 22
0
def main():
    kodi.add_menu_item({'mode': 'scraper_list'}, {'title': "Scrapers"},
                       icon='')
    kodi.add_menu_item({'mode': 'resource_list'},
                       {'title': "Installed Scraper Resources"},
                       icon='')
    kodi.add_menu_item({'mode': 'auth_realdebrid'},
                       {'title': "Authorize RealDebrid"},
                       icon='settings.png')
    kodi.add_menu_item({'mode': 'rebuild_settings'},
                       {'title': "Rebuild Settings File"},
                       icon='settings.png')
    kodi.add_menu_item({'mode': 'prune_cache'}, {'title': "Prune Cache"},
                       icon='settings.png')
    kodi.add_menu_item({'mode': 'addon_settings'}, {'title': "Settings"},
                       icon='settings.png')
    kodi.eod()
Ejemplo n.º 23
0
def custom_list_menu():
    from commoncore import trakt
    lists = trakt.get_custom_lists()
    for l in lists['items']:
        kodi.add_menu_item(
            {
                'mode': '%s_custom_list' % kodi.arg('media'),
                "api": {
                    "name": "trakt",
                    "method": "get_custom_list",
                    "args": (
                        l['ids']['slug'],
                        kodi.arg('media'),
                    )
                }
            }, {'title': l['name']},
            icon='list.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 24
0
def realdebrid_menu():
    menu = kodi.ContextMenu()
    menu.add(
        'Set Default View', {
            "mode": "set_default_view",
            "api": {
                "name": "kodi",
                "method": "set_default_view",
                "args": ("list", )
            }
        })
    kodi.add_menu_item({'mode': 'auth_realdebrid'},
                       {'title': "Authorize RealDebrid"},
                       icon='authorize.png')
    kodi.add_menu_item({'mode': 'realdebrid_torrents'},
                       {'title': "Browse Torrent Cloud"},
                       icon='cloud.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 25
0
def premiumize_menu():
    menu = kodi.ContextMenu()
    menu.add(
        'Set Default View', {
            "mode": "set_default_view",
            "api": {
                "name": "kodi",
                "method": "set_default_view",
                "args": ("list", )
            }
        })
    kodi.add_menu_item({'mode': 'premiumize_transfers'},
                       {'title': "Torrent Transfer List"},
                       icon='cloud.png')
    kodi.add_menu_item({'mode': 'premiumize_folders'},
                       {'title': "Browse Torrent Cloud"},
                       icon='cloud.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 26
0
def settings_menu():
    menu = kodi.ContextMenu()
    menu.add(
        'Set Default View', {
            "mode": "set_default_view",
            "api": {
                "name": "kodi",
                "method": "set_default_view",
                "args": ("list", )
            }
        })
    kodi.add_menu_item(
        {'mode': 'realdebrid_menu'}, {'title': "RealDebrid"},
        icon='realdebrid.png',
        visible=kodi.get_setting('realdebrid_enable',
                                 'script.module.scrapecore') == 'true')
    kodi.add_menu_item(
        {'mode': 'premiumize_menu'}, {'title': "Premiumize Cloud"},
        icon='cloud.png',
        visible=kodi.get_setting('premiumize_enable',
                                 'script.module.scrapecore') == 'true')
    kodi.add_menu_item(
        {
            'mode': 'scrapecore_settings',
            "api": {
                "name": "kodi",
                "method": "open_settings",
                "args": ("script.module.scrapecore", )
            }
        }, {'title': "ScrapeCore Settings"},
        icon='settings.png')
    kodi.add_menu_item(
        {
            'mode': 'open_settings',
            'addon_id': 'service.fanart.proxy'
        }, {'title': "Fanart Proxy Settings"},
        icon='settings.png',
        visible=kodi.has_addon('service.fanart.proxy'))
    kodi.add_menu_item({'mode': 'commoncore_settings'},
                       {'title': "CommonCore Settings"},
                       icon='settings.png')
    kodi.add_menu_item({'mode': 'addon_settings'}, {'title': "Addon Settings"},
                       icon='settings.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 27
0
def sub_menu():
    if kodi.mode == 'shows_genres':
        from commoncore.trakt import SHOW_GENRES as GENRES
    else:
        from commoncore.trakt import MOVIE_GENRES as GENRES
    method = "get_trending_%s" % kodi.arg('media')
    mode = "%s_genre_list" % kodi.arg('media')
    for genre, slug in GENRES:
        kodi.add_menu_item(
            {
                'mode': mode,
                "api": {
                    "name": "trakt",
                    "method": method,
                    "args": ('genres', slug)
                }
            }, {'title': genre},
            icon='genre.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Ejemplo n.º 28
0
def scraper_list():
    for s in scrapecore.get_scrapers():
        if kodi.get_setting(s['service'] + '_enable') == 'true':
            title = format_color(s['name'], 'green')
        else:
            title = format_color(s['name'], 'maroon')
        menu = kodi.ContextMenu()
        menu.add(
            'Uninstall Scraper', {
                "mode": "uninstall_scraper",
                "service": s['service'],
                "name": s['name']
            })
        kodi.add_menu_item({
            'mode': 'toggle_scraper',
            "service": s['service']
        }, {'title': title},
                           icon='',
                           menu=menu)
    kodi.eod()
Ejemplo n.º 29
0
def scraper_browser():
    if 'media' not in kodi.args:
        kodi.add_menu_item({
            'mode': 'scraper_browser',
            'media': "shows"
        }, {'title': "Browse Shows"},
                           icon='')
        kodi.add_menu_item({
            'mode': 'scraper_browser',
            'media': "movies"
        }, {'title': "Browse Movies"},
                           icon='')
    else:
        from lib.scrapecore import scrapers
        services = scrapers.get_browsable_scrapers(kodi.args['media'])
        for service, name in services:
            kodi.add_menu_item(
                {
                    'mode': 'browse_service',
                    "service": service,
                    "media": kodi.args['media']
                }, {'title': "Browse: %s" % name},
                icon='browse.png')
    kodi.eod()
Ejemplo n.º 30
0
def installer_menu():
	kodi.add_menu_item({'mode': 'browse_local'}, {'title': "*** Install From Local File ***"}, icon='install_batch_local.png')
	#kodi.add_menu_item({'mode': 'search', 'query': 'gitbrowser.installer', 'type': 'addonid'}, {'title': "*** Search for Batch Installers ***"}, icon='null')
	kodi.eod()
Ejemplo n.º 31
0
def resource_list():
    for r in scrapecore.get_installed_resources():
        kodi.add_menu_item({
            'mode': 'void',
        }, {'title': r['name']}, icon='')
    kodi.eod()
Ejemplo n.º 32
0
def settings_menu():
	kodi.add_menu_item({'mode': 'update_addons'}, {'title': "Check for Updates [COLOR red](Advanced)[/COLOR]"}, icon='update.png', visible=kodi.get_setting('enable_updates') == 'true')
	kodi.add_menu_item({'mode': 'addon_settings'}, {'title': "Addon Settings"}, icon='settings.png')
	kodi.eod()
Ejemplo n.º 33
0
				return LooseVersion(v.group(1))
			else: 
				return LooseVersion('0.0.0')
		
		results.sort(key=lambda x:version_sort(x['name']), reverse=True)
			
		for i in results:
			menu = kodi.ContextMenu()
			r = i['repository']
			full_name = r['full_name']
			title = highlight("%s/%s" % (full_name, i['name']), q, 'yellow')
			url = content_url % (full_name, i['path'])
			menu.add("Search Username", {'mode': 'search', 'type': 'username', 'query': r['owner']['login']})
			kodi.add_menu_item({'mode': 'github_install', "url": url, "file": i['name'], "full_name": full_name}, {'title': title}, menu=menu, icon='null')
	dispatcher.run(kodi.arg('type'))
	kodi.eod()

@kodi.register('search_filter')
def search_filter():
	from commoncore.core import format_color
	options = display =['None', 'Repository', 'Feed', 'Music Plugin', 'Video Plugin', 'Script']
	filter = kodi.get_property('search.filter')
	if filter in options:
		index = options.index(filter)
		display[index] = format_color(display[index], 'yellow')
	else:
		display[0] = format_color(display[0], 'yellow')
		
	c = kodi.dialog_select("Filter Results by:", display)
	if c is not False:
		if c is 0:
Ejemplo n.º 34
0
def search():
	from commoncore.dispatcher import dispatcher
	from libs.database import DB
	from libs import github
	from libs.github import get_download_url
	q = kodi.arg('query') if kodi.arg('query') else kodi.dialog_input('Search GitHub')
	if q in [None, False, '']: return False
	DB.execute('REPLACE INTO search_history(search_type, query) VALUES(?,?)', [kodi.arg('type'), q])
	DB.commit()
	
	@dispatcher.register('username')
	def username():
		rtype = 'api'
		response = github.find_zips(q)
		if response is None: return
		for r in github.sort_results(response['items']):
			url = get_download_url(r['repository']['full_name'], r['path'])
			menu = kodi.ContextMenu()
			if r['is_repository']:
				menu.add('Browse Repository Contents', {"mode": "browse_repository", "url": url, "file": r['name'], "full_name": "%s/%s" % (q, r['repository']['name'])})
			if r['is_feed']:
				r['display'] = "[COLOR yellow]%s[/COLOR]" % r['name']
				kodi.add_menu_item({'mode': 'install_feed', "url": url}, {'title': r['name'], 'display': r['display']}, menu=menu, icon='null')
			elif r['is_installer']:
				r['display'] = "[COLOR orange]%s[/COLOR]" % r['name']
				kodi.add_menu_item({'mode': 'install_batch', "url": url}, {'title': r['name'], 'display': r['display']}, menu=menu, icon='null')	
			else:
				kodi.add_menu_item({'mode': 'github_install', "url": url, "user": q, "file": r['name'], "full_name": "%s/%s" % (q, r['repository']['name'])}, {'title': r['name']}, menu=menu, icon='null')
	
	@dispatcher.register('repository')
	def repository():
		rtype = 'api'
		results = github.search(q, 'title')
		if results is None: return
		for i in results['items']:
			user = i['owner']['login']
			response = github.find_zips(user)
			if response is None: continue
			for r in github.sort_results(response['items']):
				url = get_download_url(r['repository']['full_name'], r['path'])
				menu = kodi.ContextMenu()
				if r['is_repository']:
					menu.add('Browse Repository Contents', {"mode": "browse_repository", "url": url, "file": r['name'], "full_name": "%s/%s" % (q, r['repository']['name'])})
				if r['is_feed']:
					r['display'] = "[COLOR yellow]%s[/COLOR]" % r['name']
					kodi.add_menu_item({'mode': 'install_feed', "url": url}, {'title': r['name']}, menu=menu, icon='null')
				elif r['is_installer']:
					r['display'] = "[COLOR orange]%s[/COLOR]" % r['name']
					kodi.add_menu_item({'mode': 'install_batch', "url": url}, {'title': r['name'], 'display': r['display']}, menu=menu, icon='null')	
				else:
					kodi.add_menu_item({'mode': 'github_install', "url": url, "user": q, "file": r['name'], "full_name": "%s/%s" % (q, r['repository']['name'])}, {'title': r['name']}, menu=menu, icon='null')
	
	@dispatcher.register('addonid')
	def addonid():
		from commoncore.core import highlight
		from libs.github import version_sort
		rtype = 'api'
		results = github.search(q, 'id')
		if results is None: return
		results.sort(key=lambda x:version_sort(x['name']), reverse=True)
			
		for i in results:
			menu = kodi.ContextMenu()
			r = i['repository']
			full_name = r['full_name']
			title = highlight("%s/%s" % (full_name, i['name']), q, 'yellow')
			url = get_download_url(full_name, i['path'])
			menu.add("Search Username", {'mode': 'search', 'type': 'username', 'query': r['owner']['login']})
			kodi.add_menu_item({'mode': 'github_install', "url": url, "file": i['name'], "full_name": full_name}, {'title': title}, menu=menu, icon='null')
	dispatcher.run(kodi.arg('type'))
	kodi.eod()
Ejemplo n.º 35
0
def search():
    from commoncore.dispatcher import dispatcher
    from libs.database import DB
    from libs import github
    q = kodi.arg('query') if kodi.arg('query') else kodi.dialog_input(
        'Search GitHub')
    if q in [None, False, '']: return False
    DB.execute('INSERT INTO search_history(search_type, query) VALUES(?,?)',
               [kodi.arg('type'), q])
    DB.commit()

    @dispatcher.register('username')
    def username():
        rtype = 'api'
        response = github.find_zips(q)
        if response is None: return
        for r in github.sort_results(response['items']):
            url = github.content_url % (r['repository']['full_name'],
                                        r['path'])
            menu = kodi.ContextMenu()
            if r['is_repository']:
                menu.add(
                    'Browse Repository Contents', {
                        "mode": "browse_repository",
                        "url": url,
                        "file": r['name'],
                        "full_name": "%s/%s" % (q, r['repository']['name'])
                    })
            if r['is_feed']:
                r['display'] = "[COLOR yellow]%s[/COLOR]" % r['name']
                kodi.add_menu_item({
                    'mode': 'install_feed',
                    "url": url
                }, {
                    'title': r['name'],
                    'display': r['display']
                },
                                   menu=menu,
                                   icon='null')
            else:
                kodi.add_menu_item(
                    {
                        'mode': 'github_install',
                        "url": url,
                        "user": q,
                        "file": r['name'],
                        "full_name": "%s/%s" % (q, r['repository']['name'])
                    }, {'title': r['name']},
                    menu=menu,
                    icon='null')

    @dispatcher.register('repository')
    def repository():
        rtype = 'api'
        results = github.search(q, 'title')
        if results is None: return
        for i in results['items']:
            user = i['owner']['login']
            response = github.find_zips(user)
            if response is None: continue
            for r in github.sort_results(response['items']):
                url = github.content_url % (r['repository']['full_name'],
                                            r['path'])
                menu = kodi.ContextMenu()
                if r['is_repository']:
                    menu.add(
                        'Browse Repository Contents', {
                            "mode": "browse_repository",
                            "url": url,
                            "file": r['name'],
                            "full_name": "%s/%s" % (q, r['repository']['name'])
                        })
                if r['is_feed']:
                    kodi.add_menu_item({
                        'mode': 'install_feed',
                        "url": url
                    }, {'title': r['name']},
                                       menu=menu,
                                       icon='null')
                else:
                    kodi.add_menu_item(
                        {
                            'mode': 'github_install',
                            "url": url,
                            "user": q,
                            "file": r['name'],
                            "full_name": "%s/%s" % (q, r['repository']['name'])
                        }, {'title': r['name']},
                        menu=menu,
                        icon='null')

    @dispatcher.register('addonid')
    def addonid():
        from commoncore.core import highlight
        from libs.github import re_version, content_url
        from distutils.version import LooseVersion
        rtype = 'api'
        results = github.search(q, 'id')
        if results is None: return

        def version_sort(name):
            v = re_version.search(name)
            if v:
                return LooseVersion(v.group(1))
            else:
                return LooseVersion('0.0.0')

        results.sort(key=lambda x: version_sort(x['name']), reverse=True)

        for i in results:
            menu = kodi.ContextMenu()
            r = i['repository']
            full_name = r['full_name']
            title = highlight("%s/%s" % (full_name, i['name']), q, 'yellow')
            url = content_url % (full_name, i['path'])
            menu.add("Search Username", {
                'mode': 'search',
                'type': 'username',
                'query': r['owner']['login']
            })
            kodi.add_menu_item(
                {
                    'mode': 'github_install',
                    "url": url,
                    "file": i['name'],
                    "full_name": full_name
                }, {'title': title},
                menu=menu,
                icon='null')

    dispatcher.run(kodi.arg('type'))
    kodi.eod()
Ejemplo n.º 36
0
def installer_menu():
	kodi.add_menu_item({'mode': 'browse_local'}, {'title': "*** Install From Local File ***"}, icon='install_batch_local.png')
	#kodi.add_menu_item({'mode': 'search', 'query': 'gitbrowser.installer', 'type': 'addonid'}, {'title': "*** Search for Batch Installers ***"}, icon='null')
	kodi.eod()
Ejemplo n.º 37
0
def settings_menu():
	kodi.add_menu_item({'mode': 'update_addons'}, {'title': "Check for Updates [COLOR red](Advanced)[/COLOR]"}, icon='update.png', visible=kodi.get_setting('enable_updates') == 'true')
	kodi.add_menu_item({'mode': 'addon_settings'}, {'title': "Addon Settings"}, icon='settings.png')
	kodi.eod()