def fetch_channels(self): config = Config.get() bucket = storage.bucket("yada-comp451.appspot.com") channel_path = Path(channel_module_directory) if not channel_path.exists(): channel_path.mkdir() for key in filter(lambda section: section.startswith("channel/"), config.sections()): config.remove_section(key) for root, dirs, files in os.walk(channel_module_directory): for file in files: os.remove(os.path.join(root, file)) template = self.template_snapshot.to_dict() for channel_name, filename in template["channels"].items(): blob = bucket.blob(f"{PREFIX}{filename['script']}") blob.download_to_filename( f"{channel_module_directory}{channel_name}.py") config[f"channel/{channel_name}"] = { "module": filename['script'].replace(".py", "") } config["config"]["template_modified_date"] = template["modified"]
def UpdateSettings(self, handler, query): config = ConfigParser.ConfigParser() config.read(config_file_path) for key in query: if key.startswith('Server.'): section, option = key.split('.') if option == "new__setting": new_setting = query[key][0] continue if option == "new__value": new_value = query[key][0] continue if query[key][0] == " ": config.remove_option(section, option) else: config.set(section, option, query[key][0]) if not(new_setting == ' ' and new_value == ' '): config.set('Server', new_setting, new_value) sections = query['Section_Map'][0].split(']') sections.pop() #last item is junk for section in sections: ID, name = section.split('|') if query[ID][0] == "Delete_Me": config.remove_section(name) continue if query[ID][0] != name: config.remove_section(name) config.add_section(query[ID][0]) for key in query: if key.startswith(ID + '.'): junk, option = key.split('.') if option == "new__setting": new_setting = query[key][0] continue if option == "new__value": new_value = query[key][0] continue if query[key][0] == " ": config.remove_option(query[ID][0], option) else: config.set(query[ID][0], option, query[key][0]) if not(new_setting == ' ' and new_value == ' '): config.set(query[ID][0], new_setting, new_value) if query['new_Section'][0] != " ": config.add_section(query['new_Section'][0]) f = open(config_file_path, "w") config.write(f) f.close() subcname = query['Container'][0] cname = subcname.split('/')[0] handler.send_response(200) handler.end_headers() t = Template(file=os.path.join(SCRIPTDIR,'templates', 'redirect.tmpl')) t.container = cname t.time = '10' t.url = '/TiVoConnect?Command=Admin&Container=' + cname t.text = '<h3>Your Settings have been saved.</h3> <br>You settings have been saved to the pyTivo.conf file.'+\ 'However you will need to do a <b>Soft Reset</b> before these changes will take effect.'+\ '<br> The <a href="/TiVoConnect?Command=Admin&Container='+ cname +'"> Admin</a> page will reload in 10 seconds.' handler.wfile.write(t)
def UpdateSettings(self, handler, query): config = ConfigParser.ConfigParser() config.read(config_file_path) for key in query: if key.startswith('Server.'): section, option = key.split('.') if option == "new__setting": new_setting = query[key][0] continue if option == "new__value": new_value = query[key][0] continue if query[key][0] == " ": config.remove_option(section, option) else: config.set(section, option, query[key][0]) if not (new_setting == ' ' and new_value == ' '): config.set('Server', new_setting, new_value) sections = query['Section_Map'][0].split(']') sections.pop() #last item is junk for section in sections: ID, name = section.split('|') if query[ID][0] == "Delete_Me": config.remove_section(name) continue if query[ID][0] != name: config.remove_section(name) config.add_section(query[ID][0]) for key in query: if key.startswith(ID + '.'): junk, option = key.split('.') if option == "new__setting": new_setting = query[key][0] continue if option == "new__value": new_value = query[key][0] continue if query[key][0] == " ": config.remove_option(query[ID][0], option) else: config.set(query[ID][0], option, query[key][0]) if not (new_setting == ' ' and new_value == ' '): config.set(query[ID][0], new_setting, new_value) if query['new_Section'][0] != " ": config.add_section(query['new_Section'][0]) f = open(config_file_path, "w") config.write(f) f.close() subcname = query['Container'][0] cname = subcname.split('/')[0] handler.send_response(200) handler.end_headers() t = Template( file=os.path.join(SCRIPTDIR, 'templates', 'redirect.tmpl')) t.container = cname t.time = '10' t.url = '/TiVoConnect?Command=Admin&Container=' + cname t.text = '<h3>Your Settings have been saved.</h3> <br>You settings have been saved to the pyTivo.conf file.'+\ 'However you will need to do a <b>Soft Reset</b> before these changes will take effect.'+\ '<br> The <a href="/TiVoConnect?Command=Admin&Container='+ cname +'"> Admin</a> page will reload in 10 seconds.' handler.wfile.write(t)