def __init__(self, session, newTimer):
        self.xmlfile = Directories.resolveFilename(
            Directories.SCOPE_PLUGINS, "Extensions/AutoTimer/autotimerwizard.xml"
        )

        WizardLanguage.__init__(self, session, showSteps=True, showStepSlider=True)
        AutoTimerEditorBase.__init__(self, newTimer)
        Rc.__init__(self)

        # self.skinName = ["AutoTimerWizard", "NetworkWizard"]
        self["wizard"] = Pixmap()
        self["HelpWindow"] = Pixmap()
        self["HelpWindow"].hide()
        self["VKeyIcon"] = Boolean(False)

        self.doCancel = False
        self.emptyMatch = False
        self.tailingWhitespacesMatch = False

        # We might need to change shown items, so add some notifiers
        self.timespan.addNotifier(self.regenTimespanList, initial_call=False)
        self.generateTimespanList()

        self.servicesDlg = self.session.instantiateDialog(
            AutoTimerServiceEditor, self.serviceRestriction, self.services, self.bouquets
        )

        self.filterDlg = self.session.instantiateDialog(
            AutoTimerFilterEditor, self.filterSet, self.excludes, self.includes
        )

        self["TextEntryActions"] = ActionMap(
            ["TextEntryActions"], {"deleteForward": self.deleteForward, "deleteBackward": self.deleteBackward}, -2
        )
Beispiel #2
0
	def __init__(self):
		timer.Timer.__init__(self)

		self.Filename = Directories.resolveFilename(Directories.SCOPE_CONFIG, "pm_timers.xml")

		try:
			self.loadTimer()
		except IOError:
			print "unable to load timers from file!"
Beispiel #3
0
	def __init__(self):
		timer.Timer.__init__(self)
		
		self.Filename = Directories.resolveFilename(Directories.SCOPE_CONFIG, "timers.xml")
		
		try:
			self.loadTimer()
		except IOError:
			print("unable to load timers from file!")
	def __init__(self, session):
		self.xmlfile = Directories.resolveFilename(Directories.SCOPE_PLUGINS, "Extensions/GBIpboxClient/gbipboxwizard.xml")

		Wizard.__init__(self, session)

		self.setTitle(_('GBIpbox Client'))

		self.skinName = ["GBIpboxWizard", "NetworkWizard"]
		self["wizard"] = Pixmap()
		self["HelpWindow"] = Pixmap()
		self["HelpWindow"].hide()
		self["VKeyIcon"] = Boolean(False)
Beispiel #5
0
    def __init__(self):
        self.timer_list = []
        self.processed_timers = []
        self.Filename = Directories.resolveFilename(Directories.SCOPE_CONFIG,
                                                    "timers.xml")

        self.timer = eTimer()
        self.timer.callback.append(self.calcNextActivation)
        self.lastActivation = time()

        self.calcNextActivation()
        self.on_state_change = []
Beispiel #6
0
	def __init__(self):
		timer.Timer.__init__(self)

		self.onTimerAdded = []
		self.onTimerRemoved = []
		self.onTimerChanged = []

		self.Filename = Directories.resolveFilename(Directories.SCOPE_CONFIG, "timers.xml")

		try:
			self.loadTimer()
		except IOError:
			print "unable to load timers from file!"
    def loadStaticConfig(self):
        """
        Always try to load the static config file from
        /etc/enigma2/curlytx-pagefeed.xml
        """
        staticFeedPath = Directories.resolveFilename(Directories.SCOPE_CONFIG, self.staticPageFeedFile)
        if not os.path.exists(staticFeedPath):
            return

        from AtomFeed import AtomFeed
        AtomFeed(
            'file://' + staticFeedPath,
            self.saveStaticConfig, self.loadStaticConfigFail
            )
Beispiel #8
0
    def __init__(self):
        assert not HdmiCec.instance, "only one HdmiCec instance is allowed!"
        HdmiCec.instance = self

        self.wait = eTimer()
        self.wait.timeout.get().append(self.sendCmd)
        self.repeat = eTimer()
        self.repeat.timeout.get().append(self.wakeupMessages)
        self.queue = []

        eHdmiCEC.getInstance().messageReceived.get().append(
            self.messageReceived)
        config.misc.standbyCounter.addNotifier(self.onEnterStandby,
                                               initial_call=False)
        config.misc.DeepStandby.addNotifier(self.onEnterDeepStandby,
                                            initial_call=False)
        self.setFixedPhysicalAddress(
            config.hdmicec.fixed_physical_address.value)
        self.logicaladdress = eHdmiCEC.getInstance().getLogicalAddress()

        self.saveVolUp = None
        self.saveVolDown = None
        self.saveVolMute = None
        self.volumeForwardingDestination = 0
        config.hdmicec.volume_forwarding.addNotifier(
            self.configVolumeForwarding)
        config.hdmicec.enabled.addNotifier(self.configVolumeForwarding)
        uptime = float(open("/proc/uptime", "r").read().split()[0])
        if config.hdmicec.enabled.value and config.hdmicec.handle_deepstandby_events.value and uptime < 120:
            filename = Directories.resolveFilename(Directories.SCOPE_CONFIG,
                                                   "timers.xml")
            try:
                doc = xml.etree.cElementTree.parse(filename)
            except:
                doc = None
            if doc:
                root = doc.getroot()
                for timer in root.findall("timer"):
                    begin = int(timer.get("begin"))
                    disabled = long(timer.get("disabled") or "0")
                    justplay = long(timer.get("justplay") or "0")
                    always_zap = long(timer.get("always_zap") or "0")
                    if begin < time() or begin > time(
                    ) + 360 or disabled or justplay or always_zap:
                        continue
                    if Standby.inStandby is None:
                        Notifications.AddNotification(Standby.Standby)
                    return
            self.onLeaveStandby()
Beispiel #9
0
	def __init__(self, session):
		self.xmlfile = Directories.resolveFilename(Directories.SCOPE_PLUGINS, "SystemPlugins/Vision/clientmodebox.xml")
		WizardLanguage.__init__(self, session)
		self.setTitle(_('Vision Client Mode Box'))
		self.skinName = ["ClientModeBoxWizard"]
		self["lab1"] = StaticText(_("OpenVision"))
		self["lab2"] = StaticText(_("Lets define enigma2 once more"))
		self["lab3"] = StaticText(_("Report problems to:"))
		self["lab4"] = StaticText(_("https://openvision.tech"))
		self["lab5"] = StaticText(_("Sources are available at:"))
		self["lab6"] = StaticText(_("https://github.com/OpenVisionE2"))
		self['myactions'] = ActionMap(["MenuActions"],
									  {
									  'menu': self.Menu,
									  'exit': self.exit,
									  }, -1)
Beispiel #10
0
	def __init__(self):
		assert not HdmiCec.instance, "only one HdmiCec instance is allowed!"
		HdmiCec.instance = self

		self.wait = eTimer()
		self.wait.timeout.get().append(self.sendCmd)
		self.repeat = eTimer()
		self.repeat.timeout.get().append(self.wakeupMessages)
		self.queue = []

		eHdmiCEC.getInstance().messageReceived.get().append(self.messageReceived)
		config.misc.standbyCounter.addNotifier(self.onEnterStandby, initial_call = False)
		config.misc.DeepStandby.addNotifier(self.onEnterDeepStandby, initial_call = False)
		self.setFixedPhysicalAddress(config.hdmicec.fixed_physical_address.value)
		self.logicaladdress = eHdmiCEC.getInstance().getLogicalAddress()

		self.saveVolUp = None
		self.saveVolDown = None
		self.saveVolMute = None
		self.volumeForwardingDestination = 0
		config.hdmicec.volume_forwarding.addNotifier(self.configVolumeForwarding)
		config.hdmicec.enabled.addNotifier(self.configVolumeForwarding)
		uptime = float(open("/proc/uptime", "r").read().split()[0])
		if config.hdmicec.handle_deepstandby_events.value and uptime < 120:
			filename = Directories.resolveFilename(Directories.SCOPE_CONFIG, "timers.xml")
			try:
				doc = xml.etree.cElementTree.parse(filename)
			except:
				doc = None
			if doc:
				root = doc.getroot()
				for timer in root.findall("timer"):
					begin = int(timer.get("begin"))
					disabled = long(timer.get("disabled") or "0")
					justplay = long(timer.get("justplay") or "0")
					always_zap = long(timer.get("always_zap") or "0")
					if begin < time() or begin > time() + 360 or disabled or justplay or always_zap:
						continue
					if Standby.inStandby is None:
						Notifications.AddNotification(Standby.Standby)
					return
			self.onLeaveStandby()
Beispiel #11
0
	def load_pdc(self):
		try:
			doc = xml_parse(Directories.resolveFilename(Directories.SCOPE_CONFIG, "vps.xml"))
			xmlroot = doc.getroot()
			
			if xmlroot is not None:
				for xml in xmlroot.findall("channel"):
					serviceref = xml.get("serviceref").encode("utf-8")
					has_pdc = xml.get("has_pdc")
					last_check = xml.get("last_check")
					default_vps = xml.get("default_vps")
					self.checked_services[serviceref] = { }
					self.checked_services[serviceref]["last_check"] = int(last_check)
					self.checked_services[serviceref]["has_pdc"] = int(has_pdc)
					if default_vps and default_vps != "None":
						self.checked_services[serviceref]["default_vps"] = int(default_vps)
					else:
						self.checked_services[serviceref]["default_vps"] = 0
		except:
			pass
Beispiel #12
0
	def load_pdc(self):
		try:
			doc = xml_parse(Directories.resolveFilename(Directories.SCOPE_CONFIG, "vps.xml"))
			xmlroot = doc.getroot()

			if xmlroot is not None:
				for xml in xmlroot.findall("channel"):
					serviceref = xml.get("serviceref").encode("utf-8")
					has_pdc = xml.get("has_pdc")
					last_check = xml.get("last_check")
					default_vps = xml.get("default_vps")
					self.checked_services[serviceref] = {}
					self.checked_services[serviceref]["last_check"] = int(last_check)
					self.checked_services[serviceref]["has_pdc"] = int(has_pdc)
					if default_vps and default_vps != "None":
						self.checked_services[serviceref]["default_vps"] = int(default_vps)
					else:
						self.checked_services[serviceref]["default_vps"] = 0
		except:
			pass
    def __init__(self, session, newTimer):
        self.xmlfile = Directories.resolveFilename(
            Directories.SCOPE_PLUGINS,
            "Extensions/AutoTimer/autotimerwizard.xml")

        WizardLanguage.__init__(self,
                                session,
                                showSteps=True,
                                showStepSlider=True)
        AutoTimerEditorBase.__init__(self, newTimer)
        Rc.__init__(self)

        self.skinName = ["AutoTimerWizard", "NetworkWizard"]
        self["wizard"] = Pixmap()
        self["HelpWindow"] = Pixmap()
        self["HelpWindow"].hide()
        self["VKeyIcon"] = Boolean(False)

        self.doCancel = False
        self.emptyMatch = False
        self.tailingWhitespacesMatch = False

        # We might need to change shown items, so add some notifiers
        self.timespan.addNotifier(self.regenTimespanList, initial_call=False)
        self.generateTimespanList()

        self.servicesDlg = self.session.instantiateDialog(
            AutoTimerServiceEditor, self.serviceRestriction, self.services,
            self.bouquets)

        self.filterDlg = self.session.instantiateDialog(
            AutoTimerFilterEditor, self.filterSet, self.excludes,
            self.includes)

        self["TextEntryActions"] = ActionMap(
            ["TextEntryActions"], {
                "deleteForward": self.deleteForward,
                "deleteBackward": self.deleteBackward
            }, -2)
Beispiel #14
0
	def save_pdc(self):
		list = []
		list.append('<?xml version="1.0" ?>\n')
		list.append('<pdc_available>\n')
		
		now = time()
		for ch in self.checked_services:
			if (self.checked_services[ch]["last_check"] < (now - check_pdc_interval_available)) and self.checked_services[ch]["default_vps"] != 1:
				continue
			list.append('<channel')
			list.append(' serviceref="' + stringToXML(ch) + '"')
			list.append(' has_pdc="' + str(int(self.checked_services[ch]["has_pdc"])) + '"')
			list.append(' last_check="' + str(int(self.checked_services[ch]["last_check"])) + '"')
			list.append(' default_vps="' + str(int(self.checked_services[ch]["default_vps"])) + '"')
			list.append('></channel>\n')
		
		list.append('</pdc_available>\n')
		
		file = open(Directories.resolveFilename(Directories.SCOPE_CONFIG, "vps.xml"), "w")
		for x in list:
			file.write(x)
		file.close()
Beispiel #15
0
	def save_pdc(self):
		list = []
		list.append('<?xml version="1.0" ?>\n')
		list.append('<pdc_available>\n')

		now = time()
		for ch in self.checked_services:
			if (self.checked_services[ch]["last_check"] < (now - check_pdc_interval_available)) and self.checked_services[ch]["default_vps"] != 1:
				continue
			list.append('<channel')
			list.append(' serviceref="' + stringToXML(ch) + '"')
			list.append(' has_pdc="' + str(int(self.checked_services[ch]["has_pdc"])) + '"')
			list.append(' last_check="' + str(int(self.checked_services[ch]["last_check"])) + '"')
			list.append(' default_vps="' + str(int(self.checked_services[ch]["default_vps"])) + '"')
			list.append('></channel>\n')

		list.append('</pdc_available>\n')

		file = open(Directories.resolveFilename(Directories.SCOPE_CONFIG, "vps.xml"), "w")
		for x in list:
			file.write(x)
		file.close()
	def createSetup(self, timer):
		# Name
		self.name = NoSave(ConfigText(default = timer.name, fixed_size = False))

		# Match
		self.match = NoSave(ConfigText(default = timer.match, fixed_size = False))

		# Encoding
		default = timer.encoding
		selection = ['UTF-8', 'ISO8859-15']
		if default not in selection:
			selection.append(default)
		self.encoding = NoSave(ConfigSelection(choices = selection, default = default))

		# ...
		self.searchType = NoSave(ConfigSelection(choices = [("partial", _("partial match")), ("exact", _("exact match")), ("start", _("title starts with")), ("description", _("description match"))], default = timer.searchType))
		self.searchCase = NoSave(ConfigSelection(choices = [("sensitive", _("case-sensitive search")), ("insensitive", _("case-insensitive search"))], default = timer.searchCase))

		# Alternatives override
		self.overrideAlternatives = NoSave(ConfigYesNo(default = timer.overrideAlternatives))

		# Justplay
		self.justplay = NoSave(ConfigSelection(choices = [("zap", _("zap")), ("record", _("record"))], default = {0: "record", 1: "zap"}[int(timer.justplay)]))
		self.setEndtime = NoSave(ConfigYesNo(default=timer.setEndtime))

		# Timespan
		now = [x for x in localtime()]
		if timer.hasTimespan():
			default = True
			now[3] = timer.timespan[0][0]
			now[4] = timer.timespan[0][1]
			begin = mktime(now)
			now[3] = timer.timespan[1][0]
			now[4] = timer.timespan[1][1]
			end = mktime(now)
		else:
			default = False
			now[3] = 20
			now[4] = 15
			begin = mktime(now)
			now[3] = 23
			now[4] = 15
			end = mktime(now)
		self.timespan = NoSave(ConfigEnableDisable(default = default))
		self.timespanbegin = NoSave(ConfigClock(default = begin))
		self.timespanend = NoSave(ConfigClock(default = end))

		# Timeframe
		if timer.hasTimeframe():
			default = True
			begin = timer.getTimeframeBegin()
			end = timer.getTimeframeEnd()
		else:
			default = False
			now = [x for x in localtime()]
			now[3] = 0
			now[4] = 0
			begin = mktime(now)
			end = begin + 604800 # today + 7d
		self.timeframe = NoSave(ConfigEnableDisable(default = default))
		self.timeframebegin = NoSave(ConfigDateTime(begin, _("%d.%B %Y"), increment = 86400))
		self.timeframeend = NoSave(ConfigDateTime(end, _("%d.%B %Y"), increment = 86400))

		# Services have their own Screen

		# Offset
		if timer.hasOffset():
			default = True
			begin = timer.getOffsetBegin()
			end = timer.getOffsetEnd()
		else:
			default = False
			begin = 5
			end = 5
		self.offset = NoSave(ConfigEnableDisable(default = default))
		self.offsetbegin = NoSave(ConfigNumber(default = begin))
		self.offsetend = NoSave(ConfigNumber(default = end))

		# AfterEvent
		if timer.hasAfterEvent():
			default = {
				None: "default",
				AFTEREVENT.NONE: "nothing",
				AFTEREVENT.DEEPSTANDBY: "deepstandby",
				AFTEREVENT.STANDBY: "standby",
				AFTEREVENT.AUTO: "auto"
			}[timer.afterevent[0][0]]
		else:
			default = "default"
		self.afterevent = NoSave(ConfigSelection(choices = [
			("default", _("standard")), ("nothing", _("do nothing")),
			("standby", _("go to standby")),
			("deepstandby", _("go to deep standby")),
			("auto", _("auto"))], default = default))

		# AfterEvent (Timespan)
		if timer.hasAfterEvent() and timer.afterevent[0][1][0] is not None:
			default = True
			now[3] = timer.afterevent[0][1][0][0]
			now[4] = timer.afterevent[0][1][0][1]
			begin = mktime(now)
			now[3] = timer.afterevent[0][1][1][0]
			now[4] = timer.afterevent[0][1][1][1]
			end = mktime(now)
		else:
			default = False
			now[3] = 23
			now[4] = 15
			begin = mktime(now)
			now[3] = 7
			now[4] = 0
			end = mktime(now)
		self.afterevent_timespan = NoSave(ConfigEnableDisable(default = default))
		self.afterevent_timespanbegin = NoSave(ConfigClock(default = begin))
		self.afterevent_timespanend = NoSave(ConfigClock(default = end))

		# Enabled
		self.enabled = NoSave(ConfigYesNo(default = timer.enabled))

		# Maxduration
		if timer.hasDuration():
			default = True
			duration = timer.getDuration()
		else:
			default = False
			duration =70
		self.duration = NoSave(ConfigEnableDisable(default = default))
		self.durationlength = NoSave(ConfigNumber(default = duration))

		# Counter
		if timer.hasCounter():
			default = timer.matchCount
		else:
			default = 0
		self.counter = NoSave(ConfigNumber(default = default))
		self.counterLeft = NoSave(ConfigNumber(default = timer.matchLeft))
		default = timer.getCounterFormatString()
		selection = [("", _("Never")), ("%m", _("Monthly")), ("%U", _("Weekly (Sunday)")), ("%W", _("Weekly (Monday)"))]
		if default not in ('', '%m', '%U', '%W'):
			selection.append((default, _("Custom (%s)") % (default)))
		self.counterFormatString = NoSave(ConfigSelection(selection, default = default))

		# Avoid Duplicate Description
		self.avoidDuplicateDescription = NoSave(ConfigSelection([
				("0", _("No")),
				("1", _("On same service")),
				("2", _("On any service")),
				("3", _("Any service/recording")),
			],
			default = str(timer.getAvoidDuplicateDescription())
		))

		# Search for Duplicate Desciption in...
		self.searchForDuplicateDescription = NoSave(ConfigSelection([
				("0", _("Title")),
				("1", _("Title and Short description")),
				("2", _("Title and all descriptions")),
			],
		    default = str(timer.searchForDuplicateDescription)
		))

		# Custom Location
		if timer.hasDestination():
			default = True
		else:
			default = False

		self.useDestination = NoSave(ConfigYesNo(default = default))

		default = timer.destination or Directories.resolveFilename(Directories.SCOPE_HDD)
		choices = config.movielist.videodirs.value

		if default not in choices:
			choices.append(default)
		self.destination = NoSave(ConfigSelection(default = default, choices = choices))

		# Tags
		self.timerentry_tags = timer.tags
		self.tags = NoSave(ConfigSelection(choices = [len(self.timerentry_tags) == 0 and _("None") or ' '.join(self.timerentry_tags)]))

		# Vps
		self.vps_enabled = NoSave(ConfigYesNo(default = timer.vps_enabled))
		self.vps_overwrite = NoSave(ConfigYesNo(default = timer.vps_overwrite))

		# SeriesPlugin
		self.series_labeling = NoSave(ConfigYesNo(default = timer.series_labeling))