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)
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')
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()
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()
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()
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
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)
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'])
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)
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()
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()
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'])
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')
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)
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()
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()
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
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'])
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')
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')
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)
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)
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)
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)
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'])
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()
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'])
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()
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()
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()
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')
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()
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()
def resource_list(): for r in scrapecore.get_installed_resources(): kodi.add_menu_item({ 'mode': 'void', }, {'title': r['name']}, icon='') kodi.eod()
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()
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()
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()