Пример #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)
Пример #2
0
	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')
Пример #3
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()
Пример #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()
Пример #5
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()
Пример #6
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
Пример #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)
Пример #8
0
 def make_episode_directory(episode):
     infoLabel = core.make_infolabel('episode',
                                     episode,
                                     show=show,
                                     ids=ids,
                                     watched=watched)
     if not infoLabel: return
     infoLabel['display'] = "%sx%s. %s" % (
         infoLabel['season'], infoLabel['episode'], infoLabel['title'])
     menu = kodi.ContextMenu()
     menu.add(
         'Toggle Watched', {
             "mode": "toggle_watched",
             "api": {
                 "name":
                 "trakt",
                 "method":
                 "set_watched_state",
                 "args":
                 ("episode", infoLabel['trakt_id'], infoLabel['playcount']
                  == 0),
                 "refresh":
                 True
             }
         })
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("episode", )
             }
         })
     if infoLabel['aired']:
         inprogress = in_progress('episode', infoLabel['trakt_id'])
         kodi.add_menu_item(
             {
                 "mode": "search_streams",
                 "media": "episode",
                 "trakt_id": infoLabel['trakt_id'],
                 "title": infoLabel['showtitle'],
                 "episode_title": infoLabel['title'],
                 "year": infoLabel['year'],
                 "season": infoLabel['season'],
                 "episode": infoLabel['episode'],
                 "ids": ids
             },
             infoLabel,
             in_progress=inprogress,
             menu=menu,
             image=infoLabel['poster'])
     else:
         infoLabel['display'] = core.format_color(infoLabel['display'],
                                                  'maroon')
         kodi.add_menu_item({"mode": "void"},
                            infoLabel,
                            menu=menu,
                            image=infoLabel['poster'])
Пример #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)
Пример #10
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()
Пример #11
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()
Пример #12
0
 def make_season_directory(season):
     infoLabel = core.make_season_infolabel(season, ids)
     if not infoLabel: return
     if 'aired_episodes' in season and infoLabel[
             'season'] in watched and season['aired_episodes'] == len(
                 watched[infoLabel['season']]):
         infoLabel['overlay'] = 7
         infoLabel['playcount'] = 1
     menu = kodi.ContextMenu()
     menu.add(
         'Toggle Watched', {
             "mode": "toggle_watched",
             "api": {
                 "name": "trakt",
                 "method": "set_watched_state",
                 "args": ("season", kodi.arg('trakt_id'), season, True),
                 "refresh": True
             }
         })
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("season", )
             }
         })
     menu.add(
         'Toggle Watched', {
             "mode": "toggle_watched",
             "api": {
                 "name":
                 "trakt",
                 "method":
                 "set_watched_state",
                 "args": ("season", kodi.arg('trakt_id'), True,
                          infoLabel['season']),
                 "refresh":
                 True
             }
         })
     kodi.add_menu_item(
         {
             "mode": "list_episodes",
             "trakt_id": ids['trakt'],
             "season": infoLabel['season'],
             "ids": ids
         },
         infoLabel,
         menu=menu,
         image=infoLabel['poster'])
Пример #13
0
	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')
Пример #14
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)
Пример #15
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()
Пример #16
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()
Пример #17
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
Пример #18
0
 def make_show_directory(record):
     infoLabel = core.make_infolabel('show', record)
     ids = record['show']['ids'] if 'show' in record else record['ids']
     infoLabel['display'] = "%s (%s)" % (infoLabel['title'],
                                         infoLabel['year'])
     menu = kodi.ContextMenu()
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("show", )
             }
         })
     if kodi.mode in ['shows_watchlist', 'shows_custom_list']:
         menu.add(
             'Remove From List', {
                 "mode": "execute_api",
                 "api": {
                     "name": "trakt",
                     "method": "remove_from_list",
                     "args":
                     ("show", api['args'][0], infoLabel['trakt_id']),
                     "refresh": True,
                     "confirm": "Confirm Remove from List?",
                     "message": api['args'][0]
                 }
             })
     else:
         menu.add(
             'Add to List', {
                 "mode": "execute_api",
                 "api": {
                     "name": "trakt",
                     "method": "add_to_list",
                     "args": ("show", infoLabel['trakt_id'])
                 }
             })
     kodi.add_menu_item(
         {
             "mode": "list_seasons",
             "trakt_id": infoLabel['trakt_id'],
             "ids": ids
         },
         infoLabel,
         menu=menu,
         image=infoLabel['poster'])
Пример #19
0
	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')
Пример #20
0
	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')
Пример #21
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)
Пример #22
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)
Пример #23
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)
Пример #24
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)
Пример #25
0
 def make_show_directory(record):
     ids = json.loads(record[0])
     metadata = json.loads(record[1])
     episode = metadata['episode']
     show = metadata['show']['items']
     infoLabel = metadata['episode']
     infoLabel['display'] = "%sx%s. %s - %s" % (
         infoLabel['season'], infoLabel['episode'], show['title'],
         infoLabel['title'])
     menu = kodi.ContextMenu()
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("show", )
             }
         })
     menu.add(
         'Add to List', {
             "mode": "execute_api",
             "api": {
                 "name": "trakt",
                 "method": "add_to_list",
                 "args": ("show", infoLabel['trakt_id'])
             }
         })
     kodi.add_menu_item(
         {
             "mode": "search_streams",
             "media": "episode",
             "trakt_id": infoLabel['trakt_id'],
             "title": show['title'],
             "year": show['year'],
             "season": infoLabel['season'],
             "episode": infoLabel['episode'],
             "ids": ids
         },
         infoLabel,
         menu=menu,
         in_progress=True,
         image=infoLabel['poster'])
Пример #26
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()
Пример #27
0
 def make_movie_directory(record):
     ids = json.loads(record[0])
     infoLabel = json.loads(record[1])
     infoLabel['display'] = "%s (%s)" % (infoLabel['title'],
                                         infoLabel['year'])
     menu = kodi.ContextMenu()
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("movie", )
             }
         })
     menu.add(
         'Add to List', {
             "mode": "execute_api",
             "api": {
                 "name": "trakt",
                 "method": "add_to_list",
                 "args": ("movie", infoLabel['trakt_id'])
             }
         })
     kodi.add_menu_item(
         {
             "mode": "search_streams",
             "media": "movie",
             "trakt_id": infoLabel['trakt_id'],
             "title": infoLabel['title'],
             "year": infoLabel['year'],
             "ids": ids
         },
         infoLabel,
         menu=menu,
         in_progress=True,
         image=infoLabel['poster'])
Пример #28
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()
Пример #29
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()
Пример #30
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()
Пример #31
0
	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')
Пример #32
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()
Пример #33
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()
Пример #34
0
def resource_list():
    for r in scrapecore.get_installed_resources():
        kodi.add_menu_item({
            'mode': 'void',
        }, {'title': r['name']}, icon='')
    kodi.eod()
Пример #35
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()
Пример #36
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()
Пример #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()