Ejemplo n.º 1
0
def main():
	from service import create_mark_file
	create_mark_file()

	params = get_params()
	debug(params)
	settings = load_settings()

	debug(settings.base_path())
	if 'torrent' in params:
		# import rpdb2
		# rpdb2.start_embedded_debugger('pw')
		play_torrent(settings=settings, params=params)

	elif params.get('action') == 'anidub-add-favorites':
		debug('anidub-add-favorites')
		anidub_enable = _addon.getSetting('anidub_enable') == 'true'
		if anidub_enable:
			if settings.anime_save:
				debug('scan for anidub-add-favorites')
				anidub.write_favorites(settings.anime_tvshow_path(), settings)

	elif params.get('action') == 'settings':
		dialog_action(dialog_action_case.settings, settings)

	elif params.get('action') == 'search':
		dialog_action(dialog_action_case.search, settings)

	elif params.get('action') == 'search_context':
		s = params.get('s')
		show_list(MovieAPI.search(s.decode('utf-8')))

	elif params.get('action') == 'catalog':
		dialog_action(dialog_action_case.catalog, settings)

	elif params.get('action') == 'show_category':
		if params.get('category') == 'popular':
			show_list(MovieAPI.popular())
		if params.get('category') == 'top_rated':
			show_list(MovieAPI.top_rated())
		if params.get('category') == 'popular_tv':
			show_list(MovieAPI.popular_tv())
		if params.get('category') == 'top_rated_tv':
			show_list(MovieAPI.top_rated_tv())

	elif params.get('action') == 'show_similar':
		listing = MovieAPI.show_similar(params.get('tmdb'))
		log.debug(listing)
		show_list(listing)

	elif params.get('action') == 'add_media':
		title = urllib.unquote_plus(params.get('title')).decode('utf-8')
		imdb = params.get('imdb')

		import json
		found = None

		# import rpdb2
		# rpdb2.start_embedded_debugger('pw')

		req = {"jsonrpc": "2.0", "method": "VideoLibrary.GetMovies", "params": {"properties": ["title", "originaltitle", "year", "file", "imdbnumber"]}, "id": "libMovies"}
		result = json.loads(xbmc.executeJSONRPC(json.dumps(req)))
		try:
			for r in result['result']['movies']:
				if r['imdbnumber'] == imdb:
					found = 'movie'
					break
		except KeyError:
			debug('KeyError: Movies not found')

		if not found:
			req = {"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShows", "params": {"properties": ["title", "originaltitle", "year", "file", "imdbnumber"]}, "id": "libTvShows"}
			result = json.loads(xbmc.executeJSONRPC(json.dumps(req)))
			try:
				for r in result['result']['tvshows']:
					if r['imdbnumber'] == imdb:
						found = 'tvshow'
						break
			except KeyError:
				debug('KeyError: TVShows not found')

		dialog = xbmcgui.Dialog()
		if found == 'movie':
			if dialog.yesno(u'Кино найдено в библиотеке', u'Запустить?'):
				#with filesystem.fopen(r['file'], 'r') as strm:
				#	xbmc.executebuiltin('RunPlugin("%s")' % strm.read())
				xbmc.executebuiltin('PlayMedia("%s")' % r['file'].encode('utf-8'))
		elif found == 'tvshow':
			if dialog.yesno(u'Сериал найден в библиотеке', u'Перейти?'):
				xbmc.executebuiltin('ActivateWindow(Videos,%s,return)' % r['file'].encode('utf-8'))
		elif not params.get('norecursive'):
			if dialog.yesno(u'Кино/сериал не найден в библиотеке', u'Запустить поиск по трекерам?'):
				from service import add_media
				add_media(title, imdb)

	else:
		menu_items = [u'Генерировать .strm и .nfo файлы',
		              u'Создать источники',
		              u'Настройки',
		              u'Поиск',
		              u'Каталог'
		]
		menu_actions = ['generate',
		                'sources',
						'settings',
						'search',
						'catalog'
		]

		if params.get('menu') in menu_actions:
			dialog_action(menu_actions.index(params.get('menu')), settings)
		else:
			indx = 0
			addon_handle = int(sys.argv[1])
			for menu in menu_items:
				li = xbmcgui.ListItem(menu)
				url = 'plugin://script.media.aggregator/?menu=' + menu_actions[indx]
				xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=indx > dialog_action_case.settings)
				indx += 1

			xbmcplugin.endOfDirectory(addon_handle)

		'''