Esempio n. 1
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()
Esempio n. 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')
Esempio n. 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()
Esempio n. 4
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)
Esempio n. 5
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)
Esempio n. 6
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)
Esempio n. 7
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'])
Esempio n. 8
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)
Esempio n. 9
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'])
Esempio n. 10
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')
Esempio n. 11
0
 def make_stream_directory(r):
     menu = kodi.ContextMenu()
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("stream", )
             }
         })
     infoLabel = {"title": r['title'], "display": r['display']}
     menu.add(
         'Master Control', {
             "mode": "master_control",
             "media": kodi.args['media'],
             "raw_url": r['raw_url'],
             "service": r['service'],
             "title": kodi.args['title'],
             "year": kodi.arg('year'),
             "season": kodi.arg('season'),
             "episode": kodi.arg('episode'),
             "trakt_id": kodi.arg('trakt_id')
         })
     if r['torrent']:
         menu.add(
             'Add to Cloud', {
                 "mode": "execute_api",
                 "api": {
                     "name": "premiumize",
                     "method": "create_transfer",
                     "args": (r['raw_url'], ),
                     "notify": True,
                     "confirm": "Add to Premiumize Cloud?",
                     "message": r['title']
                 }
             })
     kodi.add_video_item(
         {
             "mode": "play_stream",
             "raw_url": r['raw_url'],
             "title": kodi.args['title'],
             "service": r['service'],
             "ids": ids,
             "media": kodi.args['media'],
             "trakt_id": kodi.args['trakt_id']
         },
         infoLabel,
         menu=menu,
         icon=r['icon'])
Esempio n. 12
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()
Esempio n. 13
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'])
Esempio n. 14
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')
Esempio n. 15
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')
Esempio n. 16
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)
Esempio n. 17
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)
Esempio n. 18
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)
Esempio n. 19
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'])
Esempio n. 20
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()
Esempio n. 21
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'])
Esempio n. 22
0
def tv_menu():
    from commoncore.trakt import is_authorized as trakt_authorized
    TRAKT_AUTH = trakt_authorized()
    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': 'my_calendar'}, {'title': "My Calendar"},
                       icon='calendar.png',
                       visible=TRAKT_AUTH)
    kodi.add_menu_item({
        'mode': 'custom_list_menu',
        'media': 'shows'
    }, {'title': "My Show Lists"},
                       icon='lists.png',
                       visible=TRAKT_AUTH)
    kodi.add_menu_item(
        {
            'mode': 'shows_watchlist',
            "api": {
                "name": "trakt",
                "method": "get_my_watchlist_shows"
            }
        }, {'title': "My Watchlist"},
        icon='watchlist.png',
        visible=TRAKT_AUTH)
    kodi.add_menu_item(
        {
            'mode': 'shows_collection',
            "api": {
                "name": "trakt",
                "method": "get_my_collection_shows"
            }
        }, {'title': "My Collection"},
        icon='collected.png',
        visible=TRAKT_AUTH)
    kodi.add_menu_item({'mode': 'shows_standard_menu'},
                       {'title': "Trakt Lists"},
                       icon='lists.png',
                       visible=TRAKT_AUTH)
    kodi.add_menu_item(
        {
            'mode': 'shows_trending',
            "api": {
                "name": "trakt",
                "method": "get_trending_shows"
            }
        }, {'title': "Trending Shows"},
        icon='trending.png',
        visible=TRAKT_AUTH == False)
    kodi.add_menu_item(
        {
            'mode': 'shows_popular',
            "api": {
                "name": "trakt",
                "method": "get_popular_shows"
            }
        }, {'title': "Popular Shows"},
        icon='popular.png',
        visible=TRAKT_AUTH == False)
    kodi.add_menu_item(
        {
            'mode': 'shows_recommended',
            "api": {
                "name": "trakt",
                "method": "get_recommended_shows"
            }
        }, {'title': "Recommended Shows"},
        icon='recommended.png',
        visible=TRAKT_AUTH == False)
    kodi.add_menu_item(
        {
            'mode': 'shows_anticipated',
            "api": {
                "name": "trakt",
                "method": "get_anticipated_shows"
            }
        }, {'title': "Anticipated Shows"},
        icon='anticipated.png',
        visible=TRAKT_AUTH == False)
    kodi.add_menu_item(
        {
            'mode': 'shows_genres',
            "media": "shows",
            "api": {
                "name": "trakt",
                "method": "get_genres",
                "args": ("shows", )
            }
        }, {'title': "Genres"},
        icon='genres.png',
        visible=TRAKT_AUTH == False)
    kodi.add_menu_item(
        {
            'mode': 'shows_inprogress',
            "api": {
                "name": "coreplayback",
                "method": "get_inprogress_shows"
            }
        }, {'title': "In Progress"},
        icon='in_progress.png')
    kodi.add_menu_item({
        'mode': 'search_menu',
        'media': 'show'
    }, {'title': "Search"},
                       icon='search.png')
    kodi.eod(DEFAULT_VIEWS.LIST)
Esempio n. 23
0
 def make_calendar_directory(record):
     show = record['show']
     ids = show['ids']
     episode = record['episode']
     infoLabel = core.make_infolabel('episode',
                                     episode,
                                     ids=ids,
                                     watched=watched)
     if infoLabel['season'] == 0 or infoLabel['season'] == 0: return
     infoLabel['display'] = "%sx%s. %s - %s" % (
         infoLabel['season'], infoLabel['episode'], show['title'],
         infoLabel['title'])
     if not infoLabel: return
     menu = kodi.ContextMenu()
     inprogress = in_progress('episode', infoLabel['trakt_id'])
     ids['episode_ids'] = episode['ids']
     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(
         'Browse Seasons', {
             "mode": "list_seasons",
             "trakt_id": show['ids']['trakt'],
             "ids": show['ids']
         })
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("episode", )
             }
         })
     kodi.add_menu_item(
         {
             "mode": "search_streams",
             "media": "episode",
             "trakt_id": infoLabel['trakt_id'],
             "title": show['title'],
             "episode_title": infoLabel['title'],
             "year": show['year'],
             "season": infoLabel['season'],
             "episode": infoLabel['episode'],
             "ids": ids
         },
         infoLabel,
         in_progress=inprogress,
         menu=menu,
         image=infoLabel['poster'])
Esempio n. 24
0
def premiumize_folders():
    import re
    from commoncore import premiumize
    from scrapecore.scrapers.common import BaseScraper, QUALITY
    id = kodi.arg('id', '')
    folders = premiumize.list_folder(id)
    kodi.add_menu_item(
        {
            "mode": "execute_api",
            "api": {
                "name": "premiumize",
                "method": "delete_folder",
                "refresh": True,
                "confirm": "Confirm Delete Folder(s)?",
                "message": "Delete all",
                "args": ('', )
            }
        }, {'title': "*** Delete All Files and Folders ***"},
        icon="delete_all_files.png")
    for f in folders['content']:
        menu = kodi.ContextMenu()
        if f['type'] == 'folder':
            menu.add(
                'Delete Folder', {
                    "mode": "execute_api",
                    "api": {
                        "name": "premiumize",
                        "method": "delete_folder",
                        "args": (f['id'], ),
                        "refresh": True,
                        "confirm": "Confirm Delete Folder(s)?",
                        "message": f['name']
                    }
                })
            kodi.add_menu_item({
                'mode': 'premiumize_folders',
                "id": f['id']
            }, {'title': f['name']},
                               menu=menu,
                               icon="definition/folder.png")
        elif f['type'] == 'file':
            menu.add(
                'Delete Item', {
                    "mode": "execute_api",
                    "api": {
                        "name": "premiumize",
                        "method": "delete_item",
                        "args": (f['id'], ),
                        "refresh": True,
                        "confirm": "Confirm Delete Folder(s)?",
                        "message": f['name']
                    }
                })
            display = "PREMIUMIZE | %s | %s" % (core.format_color(
                core.format_size(f['size']), 'blue'), f['name'])
            if re.search("\.(txt|text|htm|html|info|ifo)$", f['name'],
                         re.IGNORECASE):
                kodi.add_menu_item(
                    {
                        "mode": "premiumize_direct",
                        "name": f['name'],
                        "type": "txt",
                        "url": f['link']
                    }, {
                        "title": f['name'],
                        "display": display
                    },
                    menu=menu,
                    icon='void.png')
            else:
                if re.search("\.(avi|mpg|mpeg|vob|mkv|mp4)$", f['name'],
                             re.IGNORECASE):
                    quality = QUALITY.r_map[BaseScraper().test_quality(
                        f['name'])]
                    icon = "definition/%s.png" % quality.lower()
                else:
                    icon = ''
                kodi.add_video_item(
                    {
                        "mode": "premiumize_direct",
                        "name": f['name'],
                        "type": "stream",
                        "url": f['link']
                    }, {
                        "title": f['name'],
                        "display": display
                    },
                    icon=icon,
                    menu=menu)
    kodi.eod(DEFAULT_VIEWS.STREAMS)
Esempio n. 25
0
 def make_movie_directory(record):
     ids = record['movie']['ids'] if 'movie' in record else record['ids']
     infoLabel = core.make_infolabel('movie', record, watched=watched)
     infoLabel['display'] = "%s (%s)" % (infoLabel['title'],
                                         infoLabel['year'])
     menu = kodi.ContextMenu()
     inprogress = in_progress('movie', infoLabel['trakt_id'])
     menu.add(
         'Toggle Watched', {
             "mode": "toggle_watched",
             "api": {
                 "name":
                 "trakt",
                 "method":
                 "set_watched_state",
                 "args":
                 ("movie", infoLabel['trakt_id'], infoLabel['playcount']
                  == 0),
                 "refresh":
                 True
             }
         })
     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":
                     ("movie", 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": ("movie", infoLabel['trakt_id'])
                 }
             })
     menu.add(
         'Set Default View', {
             "mode": "set_default_view",
             "api": {
                 "name": "kodi",
                 "method": "set_default_view",
                 "args": ("movie", )
             }
         })
     kodi.add_menu_item(
         {
             "mode": "search_streams",
             "media": "movie",
             "trakt_id": infoLabel['trakt_id'],
             "title": infoLabel['title'],
             "year": infoLabel["year"],
             "ids": ids
         },
         infoLabel,
         in_progress=inprogress,
         menu=menu,
         image=infoLabel['poster'])