commit 031b0c8f1ebfa6440f7a34e6aaf65b678befa83d Author: Ronald Schaten Date: Mon Mar 15 15:35:24 2021 +0100 initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..3d6e9a2 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +Installation: +git clone git@www.0x50.de:rschaten/script.cinematic.git script.cinemavision diff --git a/addon.py b/addon.py new file mode 100644 index 0000000..8ac4c66 --- /dev/null +++ b/addon.py @@ -0,0 +1,70 @@ +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) diff --git a/addon.xml b/addon.xml new file mode 100644 index 0000000..787d9dd --- /dev/null +++ b/addon.xml @@ -0,0 +1,15 @@ + + + + + + + executable + + + Execute a movie theater like workflow. + Idea taken from the seemingly abandoned CinemaVision plugin. + + all + + diff --git a/resources/settings.xml b/resources/settings.xml new file mode 100644 index 0000000..40e6f16 --- /dev/null +++ b/resources/settings.xml @@ -0,0 +1,6 @@ + + + + + +