def editorCallback(ret):
	if ret:
		from plugin import autotimer
		autotimer.add(ret)

		# Save modified xml
		autotimer.writeXml()
def editorCallback(ret):
	if ret:
		from plugin import autotimer
		autotimer.add(ret)

		# Save modified xml
		autotimer.writeXml()
def editorCallback(ret):
	if ret:
		from plugin import autotimer
		autotimer.add(ret)

		# Save modified xml
		if config.plugins.autotimer.always_write_config.value:
			autotimer.writeXml()
def editorCallback(ret):
	if ret:
		from plugin import autotimer

		if autotimer is None:
			from AutoTimer import AutoTimer
			autotimer = AutoTimer()
			autotimer.readXml()

		autotimer.add(ret)

		# Save modified xml
		autotimer.writeXml()
Exemple #5
0
def editorCallback(ret):
	if ret:
		from plugin import autotimer

		if autotimer is None:
			from AutoTimer import AutoTimer
			autotimer = AutoTimer()
			autotimer.readXml()

		autotimer.add(ret)

		# Save modified xml
		autotimer.writeXml()
def editorCallback(ret):
	if ret:
		from plugin import autotimer

		# Create instance if needed (should have been created by addAutotimerFrom* above though)
		if autotimer is None:
			from AutoTimer import AutoTimer
			autotimer = AutoTimer()
			autotimer.readXml()

		autotimer.add(ret)

		# Save modified xml
		autotimer.writeXml()

	# Remove instance if not running in background
	if not config.plugins.autotimer.autopoll.value:
		autotimer = None
def editorCallback(ret):
	if ret:
		from plugin import autotimer

		# Create instance if needed (should have been created by addAutotimerFrom* above though)
		if autotimer is None:
			from AutoTimer import AutoTimer
			autotimer = AutoTimer()
			autotimer.readXml()

		autotimer.add(ret)

		# Save modified xml
		autotimer.writeXml()

	# Remove instance if not running in background
	if not config.plugins.autotimer.autopoll.value:
		autotimer = None
    def render(self, req):
        def get(name, default=None):
            ret = req.args.get(name)
            return ret[0] if ret else default

        id = get("id")
        timer = None
        newTimer = True
        if id is None:
            id = autotimer.getUniqueId()
            timer = autotimer.defaultTimer.clone()
            timer.id = id
        else:
            id = int(id)
            for possibleMatch in autotimer.getTimerList():
                if possibleMatch.id == id:
                    timer = possibleMatch
                    newTimer = False
                    break
            if timer is None:
                return self.returnResult(req, False, _("unable to find timer with id %i" % (id,)))

        if id != -1:
            # Match
            timer.match = unquote(get("match", timer.match))
            if not timer.match:
                return self.returnResult(req, False, _("autotimers need a match attribute"))

                # Name
            timer.name = unquote(get("name", timer.name)).strip()
            if not timer.name:
                timer.name = timer.match

            # Enabled
            enabled = get("enabled")
            if enabled is not None:
                try:
                    enabled = int(enabled)
                except ValueError:
                    enabled = enabled == "yes"
                timer.enabled = enabled

                # Timeframe
            before = get("before")
            after = get("after")
            if before and after:
                timer.timeframe = (int(after), int(before))
            elif before == "" or after == "":
                timer.timeframe = None

                # ...
        timer.searchType = get("searchType", timer.searchType)
        timer.searchCase = get("searchCase", timer.searchCase)

        # Alternatives
        timer.overrideAlternatives = int(get("overrideAlternatives", timer.overrideAlternatives))

        # Justplay
        justplay = get("justplay")
        if justplay is not None:
            try:
                justplay = int(justplay)
            except ValueError:
                justplay = justplay == "zap"
            timer.justplay = justplay
        setEndtime = get("setEndtime")
        if setEndtime is not None:
            timer.setEndtime = int(setEndtime)

            # Timespan
        start = get("timespanFrom")
        end = get("timespanTo")
        if start and end:
            start = [int(x) for x in start.split(":")]
            end = [int(x) for x in end.split(":")]
            timer.timespan = (start, end)
        elif start == "" and end == "":
            timer.timespan = None

            # Services
        servicelist = get("services")
        if servicelist is not None:
            servicelist = unquote(servicelist).split(",")
            appendlist = []
            for value in servicelist:
                myref = eServiceReference(str(value))
                if not (myref.flags & eServiceReference.isGroup):
                    # strip all after last :
                    pos = value.rfind(":")
                    if pos != -1:
                        if value[pos - 1] == ":":
                            pos -= 1
                        value = value[: pos + 1]

                if myref.valid():
                    appendlist.append(value)
            timer.services = appendlist

            # Bouquets
        servicelist = get("bouquets")
        if servicelist is not None:
            servicelist = unquote(servicelist).split(",")
            while "" in servicelist:
                servicelist.remove("")
            timer.bouquets = servicelist

            # Offset
        offset = get("offset")
        if offset:
            offset = offset.split(",")
            if len(offset) == 1:
                before = after = int(offset[0] or 0) * 60
            else:
                before = int(offset[0] or 0) * 60
                after = int(offset[1] or 0) * 60
            timer.offset = (before, after)
        elif offset == "":
            timer.offset = None

            # AfterEvent
        afterevent = get("afterevent")
        if afterevent:
            if afterevent == "default":
                timer.afterevent = []
            else:
                try:
                    afterevent = int(afterevent)
                except ValueError:
                    afterevent = {
                        "nothing": AFTEREVENT.NONE,
                        "deepstandby": AFTEREVENT.DEEPSTANDBY,
                        "standby": AFTEREVENT.STANDBY,
                        "auto": AFTEREVENT.AUTO,
                    }.get(afterevent, AFTEREVENT.AUTO)
                start = get("aftereventFrom")
                end = get("aftereventTo")
                if start and end:
                    start = [int(x) for x in start.split(":")]
                    end = [int(x) for x in end.split(":")]
                    timer.afterevent = [(afterevent, (start, end))]
                else:
                    timer.afterevent = [(afterevent, None)]

                    # Maxduration
        maxduration = get("maxduration")
        if maxduration:
            timer.maxduration = int(maxduration) * 60
        elif maxduration == "":
            timer.maxduration = None

            # Includes
        title = req.args.get("title")
        shortdescription = req.args.get("shortdescription")
        description = req.args.get("description")
        dayofweek = req.args.get("dayofweek")
        if title or shortdescription or description or dayofweek:
            includes = timer.include
            title = [unquote(x) for x in title] if title else includes[0]
            shortdescription = [unquote(x) for x in shortdescription] if shortdescription else includes[1]
            description = [unquote(x) for x in description] if description else includes[2]
            dayofweek = [unquote(x) for x in dayofweek] if dayofweek else includes[3]
            while "" in title:
                title.remove("")
            while "" in shortdescription:
                shortdescription.remove("")
            while "" in description:
                description.remove("")
            while "" in dayofweek:
                dayofweek.remove("")
            timer.include = (title, shortdescription, description, dayofweek)

            # Excludes
        title = req.args.get("!title")
        shortdescription = req.args.get("!shortdescription")
        description = req.args.get("!description")
        dayofweek = req.args.get("!dayofweek")
        if title or shortdescription or description or dayofweek:
            excludes = timer.exclude
            title = [unquote(x) for x in title] if title else excludes[0]
            shortdescription = [unquote(x) for x in shortdescription] if shortdescription else excludes[1]
            description = [unquote(x) for x in description] if description else excludes[2]
            dayofweek = [unquote(x) for x in dayofweek] if dayofweek else excludes[3]
            while "" in title:
                title.remove("")
            while "" in shortdescription:
                shortdescription.remove("")
            while "" in description:
                description.remove("")
            while "" in dayofweek:
                dayofweek.remove("")
            timer.exclude = (title, shortdescription, description, dayofweek)

        tags = req.args.get("tag")
        if tags:
            while "" in tags:
                tags.remove("")
            timer.tags = [unquote(x) for x in tags]

        timer.matchCount = int(get("counter", timer.matchCount))
        timer.matchFormatString = get("counterFormat", timer.matchFormatString)
        if id != -1:
            matchLeft = get("left")
            timer.matchLeft = int(matchLeft) if matchLeft else (timer.matchCount if newTimer else timer.matchLeft)
            timer.matchLimit = get("lastActivation", timer.matchLimit)
            timer.lastBegin = int(get("lastBegin", timer.lastBegin))

        timer.avoidDuplicateDescription = int(get("avoidDuplicateDescription", timer.avoidDuplicateDescription))
        timer.searchForDuplicateDescription = int(
            get("searchForDuplicateDescription", timer.searchForDuplicateDescription)
        )
        timer.destination = get("location", timer.destination) or None

        # vps
        enabled = get("vps_enabled")
        if enabled is not None:
            try:
                enabled = int(enabled)
            except ValueError:
                enabled = enabled == "yes"
            timer.vps_enabled = enabled
        vps_overwrite = get("vps_overwrite")
        if vps_overwrite is not None:
            try:
                vps_overwrite = int(vps_overwrite)
            except ValueError:
                vps_overwrite = vps_overwrite == "yes"
            timer.vps_overwrite = vps_overwrite
        if not timer.vps_enabled and timer.vps_overwrite:
            timer.vps_overwrite = False

            # SeriesPlugin
        series_labeling = get("series_labeling")
        if series_labeling is not None:
            try:
                series_labeling = int(series_labeling)
            except ValueError:
                series_labeling = series_labeling == "yes"
            timer.series_labeling = series_labeling

        if newTimer:
            autotimer.add(timer)
            message = _("AutoTimer was added successfully")
        else:
            message = _("AutoTimer was changed successfully")

            # Save modified xml
        if config.plugins.autotimer.always_write_config.value:
            autotimer.writeXml()

        return self.returnResult(req, True, message)
Exemple #9
0
    def render(self, req):
        def get(name, default=None):
            ret = req.args.get(name)
            return ret[0] if ret else default

        id = get("id")
        timer = None
        newTimer = True
        if id is None:
            id = autotimer.getUniqueId()
            timer = autotimer.defaultTimer.clone()
            timer.id = id
        else:
            id = int(id)
            for possibleMatch in autotimer.getTimerList():
                if possibleMatch.id == id:
                    timer = possibleMatch
                    newTimer = False
                    break
            if timer is None:
                return self.returnResult(
                    req, False, _("unable to find timer with id %i" % (id, )))

        if id != -1:
            # Match
            timer.match = unquote(get("match", timer.match))
            if not timer.match:
                return self.returnResult(
                    req, False, _("autotimers need a match attribute"))

            # Name
            timer.name = unquote(get("name", timer.name)).strip()
            if not timer.name:
                timer.name = timer.match

            # Enabled
            enabled = get("enabled")
            if enabled is not None:
                try:
                    enabled = int(enabled)
                except ValueError:
                    enabled = enabled == "yes"
                timer.enabled = enabled

            # Timeframe
            before = get("before")
            after = get("after")
            if before and after:
                timer.timeframe = (int(after), int(before))
            elif before == '' or after == '':
                timer.timeframe = None

        # Encoding
        timer.encoding = get("encoding", timer.encoding)

        # ...
        timer.searchType = get("searchType", timer.searchType)
        timer.searchCase = get("searchCase", timer.searchCase)

        # Alternatives
        timer.overrideAlternatives = int(
            get("overrideAlternatives", timer.overrideAlternatives))

        # Justplay
        justplay = get("justplay")
        if justplay is not None:
            try:
                justplay = int(justplay)
            except ValueError:
                justplay = justplay == "zap"
            timer.justplay = justplay
        setEndtime = get("setEndtime")
        if setEndtime is not None:
            timer.setEndtime = int(setEndtime)

        # Timespan
        start = get("timespanFrom")
        end = get("timespanTo")
        if start and end:
            start = [int(x) for x in start.split(':')]
            end = [int(x) for x in end.split(':')]
            timer.timespan = (start, end)
        elif start == '' and end == '':
            timer.timespan = None

        # Services
        servicelist = get("services")
        if servicelist is not None:
            servicelist = unquote(servicelist).split(',')
            appendlist = []
            for value in servicelist:
                myref = eServiceReference(str(value))
                if not (myref.flags & eServiceReference.isGroup):
                    # strip all after last :
                    pos = value.rfind(':')
                    if pos != -1:
                        if value[pos - 1] == ':':
                            pos -= 1
                        value = value[:pos + 1]

                if myref.valid():
                    appendlist.append(value)
            timer.services = appendlist

        # Bouquets
        servicelist = get("bouquets")
        if servicelist is not None:
            servicelist = unquote(servicelist).split(',')
            while '' in servicelist:
                servicelist.remove('')
            timer.bouquets = servicelist

        # Offset
        offset = get("offset")
        if offset:
            offset = offset.split(',')
            if len(offset) == 1:
                before = after = int(offset[0] or 0) * 60
            else:
                before = int(offset[0] or 0) * 60
                after = int(offset[1] or 0) * 60
            timer.offset = (before, after)
        elif offset == '':
            timer.offset = None

        # AfterEvent
        afterevent = get("afterevent")
        if afterevent:
            if afterevent == "default":
                timer.afterevent = []
            else:
                try:
                    afterevent = int(afterevent)
                except ValueError:
                    afterevent = {
                        "nothing": AFTEREVENT.NONE,
                        "deepstandby": AFTEREVENT.DEEPSTANDBY,
                        "standby": AFTEREVENT.STANDBY,
                        "auto": AFTEREVENT.AUTO
                    }.get(afterevent, AFTEREVENT.AUTO)
                start = get("aftereventFrom")
                end = get("aftereventTo")
                if start and end:
                    start = [int(x) for x in start.split(':')]
                    end = [int(x) for x in end.split(':')]
                    timer.afterevent = [(afterevent, (start, end))]
                else:
                    timer.afterevent = [(afterevent, None)]

        # Maxduration
        maxduration = get("maxduration")
        if maxduration:
            timer.maxduration = int(maxduration) * 60
        elif maxduration == '':
            timer.maxduration = None

        # Includes
        title = req.args.get("title")
        shortdescription = req.args.get("shortdescription")
        description = req.args.get("description")
        dayofweek = req.args.get("dayofweek")
        if title or shortdescription or description or dayofweek:
            includes = timer.include
            title = [unquote(x) for x in title] if title else includes[0]
            shortdescription = [unquote(x) for x in shortdescription
                                ] if shortdescription else includes[1]
            description = [unquote(x) for x in description
                           ] if description else includes[2]
            dayofweek = [unquote(x)
                         for x in dayofweek] if dayofweek else includes[3]
            while '' in title:
                title.remove('')
            while '' in shortdescription:
                shortdescription.remove('')
            while '' in description:
                description.remove('')
            while '' in dayofweek:
                dayofweek.remove('')
            timer.include = (title, shortdescription, description, dayofweek)

        # Excludes
        title = req.args.get("!title")
        shortdescription = req.args.get("!shortdescription")
        description = req.args.get("!description")
        dayofweek = req.args.get("!dayofweek")
        if title or shortdescription or description or dayofweek:
            excludes = timer.exclude
            title = [unquote(x) for x in title] if title else excludes[0]
            shortdescription = [unquote(x) for x in shortdescription
                                ] if shortdescription else excludes[1]
            description = [unquote(x) for x in description
                           ] if description else excludes[2]
            dayofweek = [unquote(x)
                         for x in dayofweek] if dayofweek else excludes[3]
            while '' in title:
                title.remove('')
            while '' in shortdescription:
                shortdescription.remove('')
            while '' in description:
                description.remove('')
            while '' in dayofweek:
                dayofweek.remove('')
            timer.exclude = (title, shortdescription, description, dayofweek)

        tags = req.args.get("tag")
        if tags:
            while '' in tags:
                tags.remove('')
            timer.tags = [unquote(x) for x in tags]

        timer.matchCount = int(get("counter", timer.matchCount))
        timer.matchFormatString = get("counterFormat", timer.matchFormatString)
        if id != -1:
            matchLeft = get("left")
            timer.matchLeft = int(matchLeft) if matchLeft else (
                timer.matchCount if newTimer else timer.matchLeft)
            timer.matchLimit = get("lastActivation", timer.matchLimit)
            timer.lastBegin = int(get("lastBegin", timer.lastBegin))

        timer.avoidDuplicateDescription = int(
            get("avoidDuplicateDescription", timer.avoidDuplicateDescription))
        timer.searchForDuplicateDescription = int(
            get("searchForDuplicateDescription",
                timer.searchForDuplicateDescription))
        timer.destination = get("location", timer.destination) or None

        # vps
        enabled = get("vps_enabled")
        if enabled is not None:
            try:
                enabled = int(enabled)
            except ValueError:
                enabled = enabled == "yes"
            timer.vps_enabled = enabled
        vps_overwrite = get("vps_overwrite")
        if vps_overwrite is not None:
            try:
                vps_overwrite = int(vps_overwrite)
            except ValueError:
                vps_overwrite = vps_overwrite == "yes"
            timer.vps_overwrite = vps_overwrite
        if not timer.vps_enabled and timer.vps_overwrite:
            timer.vps_overwrite = False

        # SeriesPlugin
        series_labeling = get("series_labeling")
        if series_labeling is not None:
            try:
                series_labeling = int(series_labeling)
            except ValueError:
                series_labeling = series_labeling == "yes"
            timer.series_labeling = series_labeling

        if newTimer:
            autotimer.add(timer)
            message = _("AutoTimer was added successfully")
        else:
            message = _("AutoTimer was changed successfully")

        return self.returnResult(req, True, message)