import xbmc import xbmcgui import xbmcaddon import xbmcvfs import json import random import sys ADDON = xbmcaddon.Addon() CWD = ADDON.getAddonInfo('path').decode('utf-8') #CWD = ADDON.getAddonInfo('path') # for kodi 19 def files_from_dir(count, location): print("fetching %d files from %s" % (count, location)) dirs, files = xbmcvfs.listdir(location) files = random.sample(files, count) for i in range(len(files)): files[i] = location + files[i] return files def trailers_from_net(count, genre, rating): files = [] for i in range(count): files.append("TODO: find trailer %d" % i) return files if __name__ == '__main__': for arg in sys.argv[1:]: (name, value) = arg.split('=') if name == 'dbid': dbid = int(value) path = ADDON.getSettingString('cinematic_path') dirs, files = xbmcvfs.listdir(path) programs = [] for filename in files: if filename.endswith('.json'): programs.append(filename) dialog = xbmcgui.Dialog() ret = dialog.select('Cinematic: Select a program', programs) del dialog program_file = path + programs[ret] filehandle = xbmcvfs.File(program_file) program_json = filehandle.read() filehandle.close() program_data = json.loads(program_json) print("=== conducting program %s" % program_data['name']) filelist = [] for item in program_data['items']: print("selecting %s" % item['name']) settings = item['settings'] if settings['source'] == 'file': filelist.append(settings['location']) elif settings['source'] == 'dir': filelist.extend(files_from_dir(settings['count'], settings['location'])) elif settings['source'] == 'trailer': genre = 'TODO: find feature genre' rating = 'TODO: find feature rating' filelist.extend(trailers_from_net(settings['count'], genre, rating)) elif settings['source'] == 'feature': filelist.append("TODO: find feature %d" % dbid) print('=== playlist') for filename in filelist: print(" * %s" % filename)