def check_sources(settings):
	import sources
	if sources.need_create(settings):
		dialog = xbmcgui.Dialog()
		if dialog.yesno(settings.addon_name, u'Источники категорий не созданы. Создать?'):
			if sources.create(settings):
				if dialog.yesno(settings.addon_name, restart_msg):
					xbmc.executebuiltin('Quit')
			return True
		else:
			return False

	return True
def check_sources(settings):
	import sources
	if sources.need_create(settings):
		dialog = xbmcgui.Dialog()
		if dialog.yesno('Media Aggregator', u'Источники категорий не созданы. Создать?'):
			if sources.create(settings):
				if dialog.yesno('Media Aggregator', restart_msg):
					xbmc.executebuiltin('Quit')
			return True
		else:
			return False

	return True
def dialog_action(action, settings, params=None):

	if action == dialog_action_case.generate:
		anidub_enable = _addon.getSetting('anidub_enable') == 'true'
		hdclub_enable = False
		bluebird_enable = _addon.getSetting('bluebird_enable') == 'true'
		nnmclub_enable = _addon.getSetting('nnmclub_enable') == 'true'
		rutor_enable = _addon.getSetting('rutor_enable') == 'true'
		soap4me_enable = _addon.getSetting('soap4me_enable') == 'true'

		if not (anidub_enable or hdclub_enable or bluebird_enable or nnmclub_enable or rutor_enable or soap4me_enable):
			xbmcgui.Dialog().ok(_ADDON_NAME, u'Пожалуйста, заполните настройки', u'Ни одного сайта не выбрано')
			action = dialog_action_case.settings
		else:
			from service import start_generate
			# if check_sources(settings):
			start_generate()
			return True

	if action == dialog_action_case.sources:
		import sources

		dialog = xbmcgui.Dialog()
		if sources.create(settings):
			if dialog.yesno(settings.addon_name, restart_msg):
				from service import update_library_next_start

				update_library_next_start()
				xbmc.executebuiltin('Quit')

	if action == dialog_action_case.settings:
		save_nnmclub_login = settings.nnmclub_login
		save_nnmclub_password = settings.nnmclub_password
		_addon.openSettings()
		settings = load_settings()

		"""
		if save_nnmclub_login != settings.nnmclub_login or save_nnmclub_password != settings.nnmclub_password:
			from nnmclub import get_passkey
			passkey = get_passkey(settings=settings)
			_addon.setSetting('nnmclub_passkey', passkey)
			settings.nnmclub_passkey = passkey
		"""

	if action == dialog_action_case.search:
		if not 'keyword' in params:
			dlg = xbmcgui.Dialog()
			s = dlg.input(u'Введите поисковую строку')
			command = sys.argv[0] + sys.argv[2] + '&keyword=' + urllib.quote(s)
			xbmc.executebuiltin(b'Container.Update(\"%s\")' % command)
			debug('No keyword param. Return')
			return False

		s = urllib.unquote(params.get('keyword'))
		if s:
			from movieapi import TMDB_API

			debug('Keyword is: ' + s)
			show_list(TMDB_API.search(s.decode('utf-8')))

	if action == dialog_action_case.catalog:
		addon_handle = int(sys.argv[1])
		xbmcplugin.setContent(addon_handle, 'movies')

		listing = [

			('popular', u'Популярные'),
			('top_rated', u'Рейтинговые'),
			('popular_tv', u'Популярные сериалы'),
			('top_rated_tv', u'Рейтинговые сериалы')
		]

		if filesystem.exists('special://home/addons/plugin.video.shikimori.2'):
			listing.append(('anime', u'Аниме (Shikimori.org)' ), )

		for l in listing:
			li = xbmcgui.ListItem(l[1])
			li.setProperty("folder", "true")
			li.setProperty('IsPlayable', 'false')

			url = 'plugin://script.media.aggregator/?action=show_category&category=' + l[0]
			debug(url)
			xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True)

		xbmcplugin.endOfDirectory(addon_handle)

	if action == dialog_action_case.medialibrary:
		addon_handle = int(sys.argv[1])
		xbmcplugin.setContent(addon_handle, 'movies')

		listing = [

			('anime_top', u'Аниме: популярное'),
			('anime_recomended', u'Аниме: текущее'),
			('anime_last', u'Аниме: последнее'),

			('animation_top', u'Мультфильмы: популярное'),
			('animation_recomended', u'Мультфильмы: текущее'),
			('animation_last', u'Мультфильмы: последнее'),

			('animtv_top', u'Мультсериалы: популярное'),
			('animtv_recomended', u'Мультсериалы: текущее'),
			('animtv_last', u'Мультсериалы: последнее'),

			('documentary_top', u'Документальные фильмы: популярное'),
			('documentary_recomended', u'Документальные фильмы: текущее'),
			('documentary_last', u'Документальные фильмы: последнее'),

			('movie_top', u'Художественные фильмы: популярное'),
			('movie_recomended', u'Художественные фильмы: текущее'),
			('movie_last', u'Художественные фильмы: последнее'),

			('tvshow_top', u'Сериалы: популярное'),
			('tvshow_recomended', u'Сериалы: текущее'),
			('tvshow_last', u'Сериалы: последнее'),

		]

		for l in listing:
			li = xbmcgui.ListItem(l[1])
			li.setProperty("folder", "true")
			li.setProperty('IsPlayable', 'false')

			url = 'plugin://script.media.aggregator/?action=show_library&category=' + l[0]
			xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True)

		xbmcplugin.endOfDirectory(addon_handle)


	if action > dialog_action_case.settings or action < dialog_action_case.generate:
		return True

	return False
def dialog_action(action, settings):
	# import rpdb2
	# rpdb2.start_embedded_debugger('pw')


	if action == dialog_action_case.generate:
		anidub_enable = _addon.getSetting('anidub_enable') == 'true'
		hdclub_enable = _addon.getSetting('hdclub_enable') == 'true'
		nnmclub_enable = _addon.getSetting('nnmclub_enable') == 'true'
		rutor_enable = _addon.getSetting('rutor_enable') == 'true'

		if not (anidub_enable or hdclub_enable or nnmclub_enable or rutor_enable):
			xbmcgui.Dialog().ok(_ADDON_NAME, u'Пожалуйста, заполните настройки', u'Ни одного сайта не выбрано')
			action = dialog_action_case.settings
		else:
			from service import start_generate
			# if check_sources(settings):
			start_generate()
			return True

	if action == dialog_action_case.sources:
		# import rpdb2
		# rpdb2.start_embedded_debugger('pw')

		import sources

		# sources.create(settings)
		dialog = xbmcgui.Dialog()
		if sources.create(settings):
			if dialog.yesno('Media Aggregator', restart_msg):
				from service import update_library_next_start

				update_library_next_start()
				xbmc.executebuiltin('Quit')

	if action == dialog_action_case.settings:
		save_nnmclub_login = settings.nnmclub_login
		save_nnmclub_password = settings.nnmclub_password
		_addon.openSettings()
		settings = load_settings()

		if save_nnmclub_login != settings.nnmclub_login or save_nnmclub_password != settings.nnmclub_password:
			passkey = nnmclub.get_passkey(settings=settings)
			_addon.setSetting('nnmclub_passkey', passkey)
			settings.nnmclub_passkey = passkey

	if action == dialog_action_case.search:

		dlg = xbmcgui.Dialog()
		s = dlg.input(u'Введите поисковую строку')

		if s:
			debug(s)
			show_list(MovieAPI.search(s.decode('utf-8')))

	if action == dialog_action_case.catalog:
		addon_handle = int(sys.argv[1])
		xbmcplugin.setContent(addon_handle, 'movies')

		listing = {

			'popular': u'Популярные',
			'top_rated': u'Рейтинговые',
			'popular_tv': u'Популярные сериалы',
			'top_rated_tv': u'Рейтинговые сериалы'
		}

		for l in listing:
			li = xbmcgui.ListItem(listing[l])
			li.setProperty("folder", "true")
			li.setProperty('IsPlayable', 'false')

			url = 'plugin://script.media.aggregator/?action=show_category&category=' + l
			debug(url)
			xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True)

		xbmcplugin.endOfDirectory(addon_handle)

	if action > dialog_action_case.settings or action < dialog_action_case.generate:
		return True

	return False