示例#1
0
def movies_batch_add_to_library():
	from resources.lib.TheMovieDB import Movies
	movie_batch_file = plugin.get_setting('movies_batch_add_file_path', unicode)
	if xbmcvfs.exists(movie_batch_file):
		try:
			f = open(xbmc.translatePath(movie_batch_file), 'r')
			r = f.read()
			f.close()
			ids = r.split('\n')
		except:
			plugin.notify('Movies', 'not found', plugin.get_addon_icon(), 3000)
		library_folder = lib_movies.setup_library(plugin.get_setting('movies_library_folder', unicode))
		for id in ids:
			if ',' in id:
				csvs = id.split(',')
				for csv in csvs:
					if not str(csv).startswith('tt') and csv != '':
						movie = Movies(csv).info()
						csv = movie.get('imdb_id')
					lib_movies.batch_add_movies_to_library(library_folder, csv)
			else:
				if not str(id).startswith('tt') and id != '':
					movie = Movies(id).info()
					id = movie.get('imdb_id')
				lib_movies.batch_add_movies_to_library(library_folder, id)
		os.remove(xbmc.translatePath(movie_batch_file))
		lib_movies.update_library()
		return True
示例#2
0
def update_library():
    now = time.time()
    is_syncing = plugin.getProperty('openmeta_syncing_library')
    is_updating = plugin.getProperty('openmeta_updating_library')
    if is_syncing and now - int(is_syncing) < 120:
        plugin.log.debug('Skipping library sync')
    else:
        if plugin.get_setting('library_sync_collection', bool) == True:
            try:
                plugin.setProperty('openmeta_syncing_library', int(now))
                plugin.notify('OpenMeta', 'Syncing library',
                              plugin.get_addon_icon(), 1000)
                lib_tvshows.sync_trakt_collection()
                lib_movies.sync_trakt_collection()
            finally:
                plugin.clearProperty('openmeta_syncing_library')
    if is_updating and now - int(is_updating) < 120:
        plugin.log.debug('Skipping library update')
        return
    else:
        if plugin.get_setting('library_updates', bool) == True:
            try:
                plugin.setProperty('openmeta_updating_library', int(now))
                plugin.notify('OpenMeta', 'Updating library',
                              plugin.get_addon_icon(), 1000)
                lib_tvshows.update_library()
            finally:
                plugin.clearProperty('openmeta_updating_library')
示例#3
0
def total_setup():
    plugin.notify('Total Setup', 'Started', plugin.get_addon_icon(), 2000)
    if sources_setup() == True:
        pass
    if players_setup() == True:
        pass
    plugin.notify('Total Setup', 'Done', plugin.get_addon_icon(), 3000)
示例#4
0
def update_players(url=None):
    url = plugin.get_setting('players_update_url', unicode)
    if updater.update_players(url):
        plugin.notify('OpenMeta players update', 'Done',
                      plugin.get_addon_icon(), 3000)
    else:
        plugin.notify('OpenMeta players update', 'Failed',
                      plugin.get_addon_icon(), 3000)
示例#5
0
def clear_cache():
    for filename in os.listdir(plugin.storage_path):
        file_path = os.path.join(plugin.storage_path, filename)
        if os.path.isfile(file_path):
            os.unlink(file_path)
        elif os.path.isdir(file_path):
            shutil.rmtree(file_path)
    plugin.notify('Cache', 'Cleared', plugin.get_addon_icon(), 3000)
示例#6
0
def update_players(url=None):
    url = plugin.get_setting('players_update_url', unicode)
    if updater.update_players(url):
        plugin.notify('KodiTVR_VIDEO_PLAYER players update', 'Done',
                      plugin.get_addon_icon(), 3000)
    else:
        plugin.notify('KodiTVR_VIDEO_PLAYER players update', 'Failed',
                      plugin.get_addon_icon(), 3000)
示例#7
0
def make_movie_item(movie_info):
    try:
        tmdb_id = movie_info.get('tmdb')
    except:
        tmdb_id = ''
    if tmdb_id == '':
        try:
            tmdb_id = info['tmdb']
        except:
            tmdb_id = False
    try:
        imdb_id = movie_info.get('imdb')
    except:
        imdb_id = ''
    if imdb_id == '':
        try:
            imdb_id = info['imdb']
        except:
            imdb_id = False
    if tmdb_id:
        id = tmdb_id
        src = 'tmdb'
    elif imdb_id:
        id = imdb_id
        src = 'imdb'
    else:
        plugin.notify('tmdb or imdb id', 'not found', plugin.get_addon_icon(),
                      3000)
    if xbmc.getCondVisibility('system.hasaddon(script.extendedinfo)'):
        context_menu = [
            ('OpenInfo',
             'RunScript(script.extendedinfo,info=extendedinfo,id=%s)' % id),
            ('Movie trailer',
             'RunScript(script.extendedinfo,info=playtrailer,id=%s)' % id),
            ('Add to library', 'RunPlugin(%s)' %
             plugin.url_for('movies_add_to_library', src=src, id=id))
        ]
    else:
        context_menu = [
            ('Add to library', 'RunPlugin(%s)' %
             plugin.url_for('movies_add_to_library', src=src, id=id))
        ]
    return {
        'label': movie_info['title'],
        'path': plugin.url_for('movies_play', src=src, id=id),
        'context_menu': context_menu,
        'thumbnail': movie_info['poster'],
        'banner': movie_info['fanart'],
        'poster': movie_info['poster'],
        'fanart': movie_info['fanart'],
        'is_playable': True,
        'info_type': 'video',
        'stream_info': {
            'video': {}
        },
        'info': movie_info
    }
示例#8
0
def update_library_from_settings():
	now = time.time()
	if plugin.yesno('OpenMeta', 'Would you like to update the library now?'):
		try:
			plugin.setProperty('openmeta_updating_library', int(now))
			plugin.notify('OpenMeta', 'Updating library', plugin.get_addon_icon(), 500)
			lib_tvshows.update_library()
		finally:
			plugin.clearProperty('openmeta_updating_library')
示例#9
0
def sources_setup():
	movielibraryfolder = plugin.get_setting('movies_library_folder', unicode)
	tvlibraryfolder = plugin.get_setting('tv_library_folder', unicode)
	try:
		lib_movies.auto_movie_setup(movielibraryfolder)
		lib_tvshows.auto_tvshows_setup(tvlibraryfolder)
		plugin.notify('OpenMeta sources setup', 'Done', plugin.get_addon_icon(), 3000)
	except:
		plugin.notify('OpenMeta sources setup', 'Failed', plugin.get_addon_icon(), 3000)
	return True
示例#10
0
def movies_play_choose_player(src, id, usedefault):
	from resources.lib.TheMovieDB import Find
	tmdb_id = None
	if src == 'tmdb':
		tmdb_id = id
	elif src == 'imdb':
		info = Find(id).info(external_source='imdb_id')
		tmdb_id = info['movie_results'][0]['id']
	if not tmdb_id:
		plugin.notify('tmdb id', 'not found', plugin.get_addon_icon(), 3000)
	play_movies.play_movie(tmdb_id, usedefault)	
示例#11
0
def tv_batch_add_to_library():
    tv_batch_file = plugin.get_setting('tv_batch_add_file_path', unicode)
    if xbmcvfs.exists(tv_batch_file):
        try:
            f = open(xbmc.translatePath(tv_batch_file), 'r')
            r = f.read()
            f.close()
            ids = r.split('\n')
        except:
            plugin.notify('TV shows', 'not found', plugin.get_addon_icon(),
                          3000)
        library_folder = lib_tvshows.setup_library(
            plugin.get_setting('tv_library_folder', unicode))
        ids_index = 0
        for id in ids:
            if id == None or id == 'None':
                pass
            elif ',' in id:
                csvs = id.split(',')
                for csv in csvs:
                    if csv == None or csv == 'None':
                        pass
                    elif str(csv).startswith('tt') and csv != '':
                        tvdb_id = get_tvdb_id_from_imdb_id(csv)
                    else:
                        tvdb_id = csv
                    show = TVDB[int(tvdb_id)]
                    lib_tvshows.batch_add_tvshows_to_library(
                        library_folder, show)
            else:
                if id == None or id == 'None' or id == '':
                    pass
                elif str(id).startswith('tt'):
                    tvdb_id = get_tvdb_id_from_imdb_id(id)
                else:
                    tvdb_id = id
                try:
                    show = TVDB[int(tvdb_id)]
                    lib_tvshows.batch_add_tvshows_to_library(
                        library_folder, show)
                except:
                    #					plugin.notify('Failed to add', '%s' % id, plugin.get_addon_icon(), 3000)
                    xbmc.log('Failed to add' + '%s' % id, xbmc.LOGERROR)

            ids_index += 1
        os.remove(xbmc.translatePath(tv_batch_file))
        lib_tvshows.update_library()
        return True
示例#12
0
def players_setup():
	plugin.setProperty('openmeta_players_setup', 'true')
	url = plugin.get_setting('players_update_url', unicode)
	if url == '':
		if plugin.yesno('OpenMeta players setup', 'Would you like to set a URL for players now?'):
			plugin.open_settings()
		else:
			plugin.notify('OpenMeta players setup', 'Failed', plugin.get_addon_icon(), 3000)
	elif updater.update_players(url):
		plugin.notify('OpenMeta players setup', 'Done', plugin.get_addon_icon(), 3000)
	else:
		plugin.notify('OpenMeta players setup', 'Failed', plugin.get_addon_icon(), 3000)
	plugin.clearProperty('openmeta_players_setup')
	return True
示例#13
0
def make_movie_item(movie_info):
    try:
        tmdb_id = movie_info.get('tmdb')
    except:
        tmdb_id = ''
    if tmdb_id == '':
        try:
            tmdb_id = info['tmdb']
        except:
            tmdb_id = False
    try:
        imdb_id = movie_info.get('imdbnumber')
    except:
        imdb_id = ''
    if imdb_id == '':
        try:
            imdb_id = info['imdb_id']
        except:
            imdb_id = False
    if tmdb_id:
        id = tmdb_id
        src = 'tmdb'
    elif imdb_id:
        id = imdb_id
        src = 'imdb'
    else:
        plugin.notify('tmdb or imdb id', 'not found', plugin.get_addon_icon(),
                      3000)
    context_menu = [('Add to library', 'RunPlugin(%s)' %
                     plugin.url_for('movies_add_to_library', src=src, id=id))]
    try:
        if traktenabled and countenabled:
            if 'trakt_id' in movie_info.keys(
            ) and movie_info['trakt_id'] != '':
                movie_id = movie_info['trakt_id']
            elif tmdb_id != '':
                movie_id = Trakt.find_trakt_ids('tmdb', tmdb_id,
                                                'movie')['trakt']
            else:
                movie_id = Trakt.find_trakt_ids('imdb', imdb_id,
                                                'movie')['trakt']
            playdata = Trakt.get_movie_history(movie_id)
            movie_info.update({
                'playcount':
                len([
                    k for d in playdata for k in d.keys() if k == 'watched_at'
                ])
            })
    except:
        pass
    movieitem = {
        'label': movie_info['title'],
        'path': plugin.url_for('movies_play', src=src, id=id, usedefault=True),
        'context_menu': context_menu,
        'thumbnail': movie_info['poster'],
        'banner': movie_info['fanart'],
        'poster': movie_info['poster'],
        'fanart': movie_info['fanart'],
        'is_playable': True,
        'info_type': 'video',
        'stream_info': {
            'video': {}
        },
        'info': movie_info
    }
    if enablefanart:
        try:
            art = get_fanarttv_art(id)
            art = checkart(art)
            movieitem.update(art)
        except:
            pass
    return movieitem