def fill_metadata(self, table, mp): """ Fill the table with available data, empty otherwise """ for child in table.get_children(): table.remove( child ) #FIXME maybe change the glade to avoid removing any widget table.resize(1, 2) row = 1 for meta in DCTERMS: t = gtk.Label(metadata[meta]) t.set_justify(gtk.JUSTIFY_LEFT) t.set_alignment(0, 0) modification = str(int(self.hprop * 16)) + "px" t.modify_font(pango.FontDescription(modification)) t.set_width_chars(15) d = gtk.Entry() d.set_name(meta) try: if meta in ["ispartof", "isPartOf"]: d = ComboBoxEntryExt(self.par, listseries.get_series(), NO_SERIES) d.set_name(meta) if mp.getSeriesIdentifier() != None: d.child.set_text(mp.getSeriesTitle()) else: d.child.set_text(NO_SERIES) elif mp.metadata_episode.has_key(meta): d.set_text(mp.metadata_episode[meta] or '') else: d.set_text('') except (TypeError, KeyError) as error: context.get_logger().error("Exception Filling Metadata " + meta) if meta == "created": # currently Unused d.connect("button-press-event", self.edit_date) if meta == "title": d.set_tooltip_text(d.get_text()) d.modify_font(pango.FontDescription(modification)) table.attach(t, 0, 1, row - 1, row, False, False, 0, 0) table.attach(d, 1, 2, row - 1, row, gtk.EXPAND | gtk.FILL, False, 0, 0) row = row + 1
def init(): global conf, logger, event_handler, jobs dispatcher = context.get_dispatcher() conf = context.get_conf() logger = context.get_logger() path = conf.get('cameracontrol', 'path') pysca.connect(path) pysca.set_zoom(1, 0) pysca.pan_tilt_home(1) dispatcher.connect('init', load_ui) pysca.osd_off(1) logger.info("Cam connected") icons = [ "left", "right", "up1", "down1", "up_right", "up_left", "down_left", "down_right", "plus", "minus" ] icontheme = Gtk.IconTheme() for name in icons: pixbuf = GdkPixbuf.Pixbuf.new_from_file(get_image_path(name + ".svg")) icontheme.add_builtin_icon(name, 20, pixbuf) dispatcher.connect("action-key-press", on_key_press) dispatcher.connect("action-key-release", on_key_release) event_handler = Handler() jobs = Queue.Queue() t = T(jobs) t.setDaemon(True) t.start()
def init(): try: conf = context.get_conf() mode = conf.get('qrcode', 'pause_mode') or 'hold' # or 'start_stop' symbols = {} symbols['start'] = conf.get('qrcode', 'start_code') or 'start' symbols['stop'] = conf.get('qrcode', 'stop_code') or 'stop' symbols['hold'] = conf.get('qrcode', 'hold_code') or 'hold' rescale = conf.get('qrcode', 'rescale') or 'source' drop_frames = conf.get_boolean('qrcode', 'drop_frames') or False buffers = conf.get_int('qrcode', 'buffers') or 200 hold_timeout = conf.get_int('qrcode', 'hold_timeout') or 1 # secs ignore_bins = conf.get('qrcode', 'ignore_track_name') or None qr = QRCodeScanner(mode, symbols, hold_timeout, rescale, drop_frames, buffers, ignore_bins, context.get_logger()) dispatcher = context.get_dispatcher() dispatcher.connect('recorder-ready', qr.qrcode_add_pipeline) # only process sync-messages when recording to reduce overhead dispatcher.connect('recorder-started', qr.qrcode_connect_to_sync_message) dispatcher.connect('recorder-stopped', qr.qrcode_disconnect_to_sync_message) qr.set_add_edits(conf.get_boolean('qrcode', 'mp_add_edits') or False) qr.set_trimhold( conf.get_boolean('qrcode', 'mp_force_trimhold') or False) qr.set_add_smil(conf.get_boolean('qrcode', 'mp_add_smil') or False) dispatcher.connect('recorder-stopped', qr.qrcode_update_mediapackage) except ValueError: pass
def init(): global conf, logger dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() dispatcher.connect('init', show_msg) dispatcher.connect('record-finished', show_msg)
def init(): global conf, logger, recorder, dispatcher dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() recorder = context.get_recorder() dispatcher.connect('init', manage_button)
def main(args): def usage(): sys.stderr.write("usage: %s\n" % args[0]) return 1 if len(args) != 1: return usage() try: Gst.init(None) gc = core.Main() Gtk.main() except KeyboardInterrupt: gc.emit_quit() print "Interrupted by user!" except Exception as exc: # debug # print traceback.format_exc() msg = "Error starting Galicaster: {0}".format(exc) print msg from galicaster.core import context logger = context.get_logger() logger and logger.error(msg) d = context.get_dispatcher() d.emit("galicaster-notify-quit") return -1 return 0
def test_fromXML_without_galicaster_xml(self): logger = context.get_logger() xml = path.join(self.baseDir, 'wrongmp', 'manifest.xml') mp = fromXML(xml, logger) self.assertEqual(mp.title, "Opening a folder...") self.assertEqual(mp.getIdentifier(), "dae91194-2114-481b-8908-8a8962baf8dc") self.assertEqual(mp.status, 4)
def init(): global minfree, logger, repo, ocservice, dispatcher conf = context.get_conf() dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() ocservice = context.get_ocservice() minfree = None try: minfree = int(conf.get('checkspace', 'minfreespace')) except Exception as exc: raise Exception("Wrong parameter minfreespace: {}".format(exc)) if minfree: logger.info("Parameter 'minfreespace' set to {} GB".format(minfree)) dispatcher.connect('timer-nightly', check_space) dispatcher.connect('recorder-status', check_space_status) oninit = conf.get('checkspace', 'checkoninit') if oninit in ["True", "true"]: check_space(None) else: raise Exception("Parameter minfreespace not configured")
def set_property(): logger = context.get_logger() recorder = context.get_recorder() if not recorder.current_mediapackage: error_message = "[{}] No current_mediapackage available. Recording should be started before calling the endpoint.".format(request.fullpath) logger.error(error_message) abort(400, error_message) mp = recorder.current_mediapackage try: property_name = request.forms['name'] except KeyError as exc: error_message = "[{}] The request does not have the required field {}".format(request.fullpath, exc) logger.error(error_message) abort(400, error_message) if mp.getProperty(property_name): error_message = "[{}] The mp already has the property {}, we do not overwrite it.".format(request.fullpath, property_name) logger.error(error_message) abort(400, error_message) try: property_value = request.forms['value'] except KeyError as exc: error_message = "[{}] The request does not have the required field {}".format(request.fullpath, exc) logger.error(error_message) abort(400, error_message) mp.setProperty(property_name, property_value) logger.info("Setting property {} with value {} for the mediapackage {}".format(property_name, property_value, mp.getIdentifier()))
def init(): global recorder, dispatcher, logger, config, repo config = context.get_conf().get_section(CONFIG_SECTION) or {} dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() backend = config.get(BACKEND) if backend == "onvif": global cam import galicaster.utils.camctrl_onvif_interface as camera # connect to the camera cam = camera.AXIS_V5915() cam.connect(config.get(IPADDRESS), config.get(PORT, DEFAULT_PORT), config.get(USERNAME), config.get(PASSWORD)) # initiate the onvif user interface dispatcher.connect("init", init_onvif_ui) elif backend == "visca": global pysca import galicaster.utils.pysca as pysca # If port is not defined, a None value will make this method fail pysca.connect(config.get(PORT_KEY)) # initiate the visca user interface dispatcher.connect("init", init_visca_ui) else: logger.warn( "You have to choose a backend in the config file before starting Galicaster, otherwise the cameracontrol plugin does not work." ) raise RuntimeError("No backend for the cameracontrol plugin defined.") logger.info("Camera connected.")
def init(): global conf, logger, event_handler, jobs, cam_ctrl dispatcher = context.get_dispatcher() conf = context.get_conf() logger = context.get_logger() camera = conf.get('cameracontrol', 'camera') cam = __import__(camera, globals()) cam_ctrl = cam.Controls() icons = [ "left", "right", "up1", "down1", "up_right", "up_left", "down_left", "down_right", "plus", "minus" ] icontheme = Gtk.IconTheme() for name in icons: pixbuf = GdkPixbuf.Pixbuf.new_from_file(get_image_path(name + ".svg")) icontheme.add_builtin_icon(name, 20, pixbuf) dispatcher.connect('init', load_ui) dispatcher.connect("action-key-press", on_key_press) dispatcher.connect("action-key-release", on_key_release) event_handler = Handler() jobs = Queue.Queue() t = T(jobs) t.setDaemon(True) t.start()
def fill_metadata(self,table,mp): """ Fill the table with available data, empty otherwise """ for child in table.get_children(): table.remove(child) #FIXME maybe change the glade to avoid removing any widget table.resize(1,2) row = 1 for meta in DCTERMS: t=gtk.Label(metadata[meta]) t.set_justify(gtk.JUSTIFY_LEFT) t.set_alignment(0,0) modification = str(int(self.hprop*16))+"px" t.modify_font(pango.FontDescription(modification)) t.set_width_chars(15) d=gtk.Entry() d.set_name(meta) try: if meta in ["ispartof", "isPartOf"]: d = ComboBoxEntryExt(self.par,listseries.get_series(), NO_SERIES) d.set_name(meta) if mp.getSeriesIdentifier() != None: d.child.set_text(mp.getSeriesTitle()) else: d.child.set_text(NO_SERIES) elif mp.metadata_episode.has_key(meta): d.set_text(mp.metadata_episode[meta] or '') else: d.set_text('') except (TypeError, KeyError) as error: context.get_logger().error("Exception Filling Metadata "+meta) if meta == "created": # currently Unused d.connect("button-press-event",self.edit_date) if meta == "title": d.set_tooltip_text(d.get_text()) d.modify_font(pango.FontDescription(modification)) table.attach(t,0,1,row-1,row,False,False,0,0) table.attach(d,1,2,row-1,row,gtk.EXPAND|gtk.FILL,False,0,0) row=row+1
def wrapper(*args,**kwargs): try: return func(*args,**kwargs) except Exception as e: logger = context.get_logger() error_txt = str(e) logger.error("Error in function '{}': {}".format(func.func_name, error_txt)) abort(503, error_txt)
def init(): global logger, repo, ocservice, dispatcher conf = context.get_conf() dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() ocservice = context.get_ocservice() logger.info("Logging process memory use") dispatcher.connect('timer-long', check_mem)
def run(self): """Runs and removes a job from the queue. Marks the job as done. """ logger = context.get_logger() while True: job, params = self.queue.get() try: job(*params) except Exception as exc: logger.error(exc) self.queue.task_done()
def __init__(self): conf = context.get_conf() self.logger = context.get_logger() self.url = conf.get('cameracontrol', 'path') self.zoom_levels = conf.get_int('cameracontrol', 'zoom_levels') self.max_speed_pan_tilt = conf.get_int('cameracontrol', 'max_speed_pan_tilt') r = self.send_cmd("#O") if r.text == "p0": self.send_cmd("#O1") self.logger.info("Connected to remote cam {}".format(self.url))
def init(): global logger logger = context.get_logger() # If port is not defined, a None value will make this method fail pysca.connect(context.get_conf().get(CONFIG_SECTION, PORT_KEY)) dispatcher = context.get_dispatcher() dispatcher.connect('starting-record', on_start_recording) # We don't have such thing as a "post-stop" signal, so we have to live with what we do have dispatcher.connect('restart-preview', on_stop_recording)
def main(args): parser = argparse.ArgumentParser() parser.add_argument( '-v', '--version', action='version', version='Galicaster {version}'.format(version=__version__)) parser.parse_args(args=args[1:]) try: Gst.init(None) gc = core.Main() # Bug with Gtk.main() not raising a KeyboardInterrupt(SIGINT) exception # https://bugzilla.gnome.org/show_bug.cgi?id=622084 # Calling GObject.MainLoop.run() instead could be an option. # Sadly, Gtk.main_quit() does not work with it. # This workaround will stay until a better solution # is found or the bug is fixed. def handler(gc): print("SIGINT sent. Interrupted by user!") gc.quit() GLib.unix_signal_add(GLib.PRIORITY_HIGH, 2, handler, gc) # 2 = SIGINT Gtk.main() except KeyboardInterrupt: gc.emit_quit() print("Interrupted by user!") except AlreadyRunning as exc: #Added custom exception when galicaster it's already running msg = "Error starting Galicaster: {0}".format(exc) print(msg) d = context.get_dispatcher() d.emit("quit") return -2 except Exception as exc: # debug # print traceback.format_exc() msg = "Error starting Galicaster: {0}".format(exc) print(msg) logger = context.get_logger() logger and logger.error(msg) d = context.get_dispatcher() d.emit("quit") return -1 return 0
def init(): global logger, hidecursor, settings, default_settings dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() dispatcher.connect('init', configure_init) dispatcher.connect('quit', configure_quit) settings = conf.get_json('appearance', 'settings') default_settings = conf.get_json('appearance', 'defaultsettings') hidecursor = conf.get_boolean('appearance', 'hidecursor')
def test_recover_recording(self): repo_folder = get_resource('repository') rectemp_aux = get_resource('utils/temporary_recording') rectemp = get_resource('repository/rectemp') # Read info.json info = {} info_filename = os.path.join(rectemp_aux, 'info.json') with open(info_filename, 'r') as handle: info = json.load(handle) # Modify path of tracks for indx, track in enumerate(info['tracks']): info['tracks'][indx]['path'] = rectemp # Copy temporary files for temp_file in os.listdir(rectemp_aux): full_path = os.path.join(rectemp_aux, temp_file) copy(full_path, os.path.join(rectemp, temp_file)) # Overwrite info.json with new paths f = open(os.path.join(rectemp, 'info.json'), 'w') f.write(json.dumps(info, indent=4, sort_keys=True)) f.close() # Get old length old_length = len(self.get_folders_in_repository(repo_folder)) # Create the repository from galicaster.core import context logger = context.get_logger() repo = repository.Repository( repo_folder, '', 'gc_{hostname}_{year}-{month}-{day}T{hour}h{minute}m{second}', logger) # Check 1 self.assertEqual(old_length + 1, len(self.get_folders_in_repository(repo_folder))) # Check 2 mp = repo.get('4ea1049f-c946-4d36-95d4-b8d01223bd73') self.assertNotEqual(mp, None) mp_info = mp.getAsDict() self.assertEqual(mp_info['status'], 4) self.assertTrue('Recovered' in mp_info['title']) self.assertEqual(len(mp_info['tracks']), 2) # Clean for temp_file in os.listdir(rectemp): os.remove(os.path.join(rectemp, temp_file)) repo.delete(mp)
def quit(): logger = context.get_logger() recorder = context.get_recorder() main_window = context.get_mainwindow() force = request.forms.get('force') if not recorder.is_recording() or readable.str2bool(force): logger.info("Quit Galicaster through API rest") GObject.idle_add(main_window.do_quit) else: abort(401, "Sorry, there is a current recording")
def init(): global conf, logger, repo, dispatcher, minfreespace, freespace conf = context.get_conf() dispatcher = context.get_dispatcher() logger = context.get_logger() repo = context.get_repository() minfreespace = conf.get_int('checkspace','minfreespace') if not minfreespace: raise Exception("Parameter minfreespace not configured") logger.info("Parameter 'minfreespace' set to {} GB".format(minfreespace)) dispatcher.connect("recorder-ready", check_space)
def get_series(): logger = context.get_logger() recorder = context.get_recorder() if not recorder.current_mediapackage: error_message = "[{}] No current_mediapackage available. Recording should be started before calling the endpoint.".format(request.fullpath) logger.error(error_message) abort(400, error_message) mp = recorder.current_mediapackage series = mp.getSeries() logger.info("Called {} api. Returned series of mp {} as {}".format(request.fullpath, mp.getIdentifier(), series)) return json.dumps(series);
def init(): global conf, logger, repo, dispatcher, minfreespace, freespace conf = context.get_conf() dispatcher = context.get_dispatcher() logger = context.get_logger() repo = context.get_repository() minfreespace = conf.get_int('checkspace', 'minfreespace') if not minfreespace: raise Exception("Parameter minfreespace not configured") logger.info("Parameter 'minfreespace' set to {} GB".format(minfreespace)) dispatcher.connect("recorder-ready", check_space)
def init(): global dispatcher, logger, timeout logger = context.get_logger() dispatcher = context.get_dispatcher() conf = context.get_conf() threshold = conf.get('lowaudio','lowaudio_threshold') timeout = conf.get_float('lowaudio','timeout') if not threshold or not timeout: raise Exception("Failed to load plugin lowaudio, no parameters set in configuration file") dispatcher.add_new_signal("low-audio") dispatcher.add_new_signal("low-audio-recovered") dispatcher.connect('low-audio', low_audio) dispatcher.connect('low-audio-recovered', low_audio_recovered)
def __init__(self): conf = context.get_conf() self.logger = context.get_logger() self.path = conf.get('cameracontrol', 'path') self.zoom_levels = conf.get_int('cameracontrol', 'zoom_levels') self.max_speed_pan_tilt = int( conf.get('cameracontrol', 'max_speed_pan_tilt'), 16) pysca.connect(self.path) pysca.set_zoom(1, 0) pysca.pan_tilt_home(1) pysca.osd_off(1) self.logger.info("Connected to remote cam {}".format(self.path))
def init(): global dispatcher, logger, timeout logger = context.get_logger() dispatcher = context.get_dispatcher() conf = context.get_conf() threshold = conf.get('lowaudio', 'lowaudio_threshold') timeout = conf.get_float('lowaudio', 'timeout') if not threshold or not timeout: raise Exception( "Failed to load plugin lowaudio, no parameters set in configuration file" ) dispatcher.add_new_signal("low-audio") dispatcher.add_new_signal("low-audio-recovered") dispatcher.connect('low-audio', low_audio) dispatcher.connect('low-audio-recovered', low_audio_recovered)
def test_recover_recording(self): repo_folder = get_resource('repository') rectemp_aux = get_resource('utils/temporary_recording') rectemp = get_resource('repository/rectemp') # Read info.json info = {} info_filename = os.path.join(rectemp_aux, 'info.json') with open(info_filename, 'r') as handle: info = json.load(handle) # Modify path of tracks for indx, track in enumerate(info['tracks']): info['tracks'][indx]['path'] = rectemp # Copy temporary files for temp_file in os.listdir(rectemp_aux): full_path = os.path.join(rectemp_aux, temp_file) copy(full_path, os.path.join(rectemp, temp_file)) # Overwrite info.json with new paths f = open(os.path.join(rectemp, 'info.json'), 'w') f.write(json.dumps(info, indent=4, sort_keys=True)) f.close() # Get old length old_length = len(self.get_folders_in_repository(repo_folder)) # Create the repository from galicaster.core import context logger = context.get_logger() repo = repository.Repository(repo_folder, '', 'gc_{hostname}_{year}-{month}-{day}T{hour}h{minute}m{second}', logger) # Check 1 self.assertEqual(old_length +1 , len(self.get_folders_in_repository(repo_folder))) # Check 2 mp = repo.get('4ea1049f-c946-4d36-95d4-b8d01223bd73') self.assertNotEqual(mp, None) mp_info = mp.getAsDict() self.assertEqual(mp_info['status'], 4) self.assertTrue('Recovered' in mp_info['title']) self.assertEqual(len(mp_info['tracks']), 2) # Clean for temp_file in os.listdir(rectemp): os.remove(os.path.join(rectemp, temp_file)) repo.delete(mp)
def post_calendar(): # DEBUG purposes # TODO: be able to receive an icalendar using a post field conf = context.get_conf() if conf.get_boolean('ingest', 'active'): abort(503, "The Opencast service is enabled, so ingoring this command to avoid inconsisten behaviour") repo = context.get_repository() scheduler = context.get_scheduler() logger = context.get_logger() repo.delete_next_mediapackages() ical_data = repo.get_attach('calendar.ical').read() ical.handle_ical(ical_data, None, repo, scheduler, logger) return "OK"
def get_property(): logger = context.get_logger() recorder = context.get_recorder() if not recorder.current_mediapackage: error_message = "[{}] No current_mediapackage available. Recording should be started before calling the endpoint.".format(request.fullpath) logger.error(error_message) abort(400, error_message) mp = recorder.current_mediapackage try: property_name = request.query['name'] except KeyError as exc: error_message = "[{}] The request does not have the required field {}".format(request.fullpath, exc) logger.error(error_message) abort(400, error_message) property = mp.getProperty(property_name) logger.info("Called {} api for property {} of mp {}: {}".format(request.fullpath, property_name, mp.getIdentifier(), property)) return json.dumps(property)
def main(args): def usage(): sys.stderr.write("usage: %s\n" % args[0]) return 1 if len(args) != 1: return usage() try: Gst.init(None) gc = core.Main() # Bug with Gtk.main() not raising a KeyboardInterrupt(SIGINT) exception # https://bugzilla.gnome.org/show_bug.cgi?id=622084 # Calling GObject.MainLoop.run() instead could be an option. # Sadly, Gtk.main_quit() does not work with it. # This workaround will stay until a better solution # is found or the bug is fixed. def handler(gc): print("SIGINT sent. Interrupted by user!") gc.quit() GLib.unix_signal_add(GLib.PRIORITY_HIGH, 2, handler, gc) # 2 = SIGINT Gtk.main() except KeyboardInterrupt: gc.emit_quit() print("Interrupted by user!") except Exception as exc: # debug # print traceback.format_exc() msg = "Error starting Galicaster: {0}".format(exc) print(msg) from galicaster.core import context logger = context.get_logger() logger and logger.error(msg) d = context.get_dispatcher() d.emit("quit") return -1 return 0
def init(): global inactivity, logger, power_settings, default_power_settings dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() inactivity_val = conf.get('screensaver', 'inactivity') try: inactivity = int(inactivity_val) except Exception as exc: raise Exception("Error trying to convert inactivity value to integer: {}".format(exc)) dispatcher.connect('recorder-upcoming-event', deactivate_and_poke) dispatcher.connect('recorder-starting', deactivate_and_poke) dispatcher.connect('recorder-stopped', activate_and_poke) dispatcher.connect('quit', configure_quit) power_settings = conf.get_json('screensaver', 'powersettings') default_power_settings = conf.get_json('screensaver', 'defaultpowersettings') activate_screensaver()
def init(): global days, logger conf = context.get_conf() dispatcher = context.get_dispatcher() dispatcher.connect('galicaster-notify-nightly', clear_job) logger = context.get_logger() days = None try: days = int(conf.get('cleanstale', 'maxarchivaldays')) if days: logger.info("Parameter 'maxarchivaldays' set to {} days".format(days)) oninit = conf.get('cleanstale', 'checkoninit') if oninit in ["True", "true"]: clear_job(None) except Exception as exc: logger.error("Could not read the config parameters: {}".format(exc))
def logstale(): conf = context.get_conf() logger = context.get_logger() filename = logger.get_path() stale = conf.get('logger', 'stale') or 300 # 5 minutes info = {} if not logger: abort(503, "The logger service is not available") age = int (math.ceil( (time.time() - os.path.getmtime(filename)) )) info['filename'] = filename info['stale'] = False info['age'] = age if age > stale: info['stale'] = True return json.dumps(info)
def init(): global inactivity, logger, power_settings, default_power_settings dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() try: inactivity = conf.get_int('screensaver', 'inactivity') except Exception as exc: raise Exception( "Error trying to convert inactivity value to integer: {}".format( exc)) dispatcher.connect('recorder-upcoming-event', deactivate_and_poke) dispatcher.connect('recorder-starting', deactivate_and_poke) dispatcher.connect('recorder-stopped', activate_and_poke) dispatcher.connect('quit', configure_quit) power_settings = conf.get_json('screensaver', 'powersettings') default_power_settings = conf.get_json('screensaver', 'defaultpowersettings') activate_screensaver()
def resize_button(button,**kwargs): try: image = button.get_children() if type(image[0]) == Gtk.Image: image[0].set_pixel_size(int(kwargs.get('size_image',None))) elif type(image[0]) == Gtk.Box: for element in image[0].get_children(): if type(element) == Gtk.Image: element.set_pixel_size(int(kwargs.get('size_box',None))) if type(element) == Gtk.Label: relabel(image[0],kwargs.get('size_label',None),False) elif type(image[0]) == Gtk.VBox: for element in image[0].get_children(): if type(element) == Gtk.Image: element.set_pixel_size(int(kwargs.get('size_vbox',None))) else: relabel(image[0],kwargs.get('size_label',None),False) except Exception as exc: logger = context.get_logger() logger.error(exc) return button
def resize_button(button, **kwargs): try: image = button.get_children() if type(image[0]) == Gtk.Image: image[0].set_pixel_size(int(kwargs.get('size_image', None))) elif type(image[0]) == Gtk.Box: for element in image[0].get_children(): if type(element) == Gtk.Image: element.set_pixel_size(int(kwargs.get('size_box', None))) if type(element) == Gtk.Label: relabel(image[0], kwargs.get('size_label', None), False) elif type(image[0]) == Gtk.VBox: for element in image[0].get_children(): if type(element) == Gtk.Image: element.set_pixel_size(int(kwargs.get('size_vbox', None))) else: relabel(image[0], kwargs.get('size_label', None), False) except Exception as exc: logger = context.get_logger() logger.error(exc) return button
def init(): global days, logger conf = context.get_conf() dispatcher = context.get_dispatcher() logger = context.get_logger() days = None try: days = int(conf.get('cleanstale', 'maxarchivaldays')) except Exception as exc: raise Exception("Wrong parameter maxarchivaldays: {}".format(exc)) if days: logger.info("Parameter 'maxarchivaldays' set to {} days".format(days)) dispatcher.connect('timer-nightly', clear_job) oninit = conf.get('cleanstale', 'checkoninit') if oninit in ["True", "true"]: clear_job(None) else: raise Exception("Parameter maxarchivaldays not configured")
def init(): global recorder, dispatcher, logger, config, repo, oc_client, METADATA, ACL config = context.get_conf().get_section(CONFIG_SECTION) or {} dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() recorder = context.get_recorder() oc_client = context.get_occlient() with open(get_ui_path("series_metadata_template.json"), "r") as metadataFile: METADATA = Template(metadataFile.read()) with open(get_ui_path("acl_template.json"), "r") as aclFile: ACL = Template(aclFile.read()) try: dispatcher.connect("init", init_user_ui) except Exception as e: logger.error(e) logger.info("Set user loaded.")
def init(): try: global MAX_AMPLITUDE global audio_track global pipe, bus global dispatcher, logger, repo, conf dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() audio_device = conf.get('failovermic', 'device', 'default') MAX_AMPLITUDE = conf.get('failovermic', 'failover_threshold') audio_track = conf.get('failovermic', 'audio_track') logger.info("Max amplutide: {}".format(MAX_AMPLITUDE)) dispatcher.connect('recorder-vumeter', check_pipeline_amp) dispatcher.connect('recorder-stopped', save_failover_audio) dispatcher.connect('recorder-starting', record) dispatcher.connect('recorder-stopping', stop) pipe, bus = set_pipeline(audio_device) except ValueError: pass
import gtk glib.threads_init() gtk.gdk.threads_init() import os from galicaster import __version__ from galicaster.core import context from galicaster import plugins from galicaster.utils.dbusservice import DBusService from galicaster.classui.recorderui import RecorderClassUI from galicaster.classui.listing import ListingClassUI from galicaster.classui.playerui import PlayerClassUI from galicaster.classui.distrib import DistribUI logger = context.get_logger() REC = 0 PLA = 2 MMA = 1 DIS = 3 class Main(): def __init__(self): DBusService(self) logger.info('galicaster.__version__: %r', __version__) logger.info('galicaster.__file__: %r', __file__) self.change_cwd()