本文整理汇总了Python中RecordTimer.RecordTimerEntry.disabled方法的典型用法代码示例。如果您正苦于以下问题:Python RecordTimerEntry.disabled方法的具体用法?Python RecordTimerEntry.disabled怎么用?Python RecordTimerEntry.disabled使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RecordTimer.RecordTimerEntry
的用法示例。
在下文中一共展示了RecordTimerEntry.disabled方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parseTimer
# 需要导入模块: from RecordTimer import RecordTimerEntry [as 别名]
# 或者: from RecordTimer.RecordTimerEntry import disabled [as 别名]
#.........这里部分代码省略.........
continue
# Check for double Timers
# We first check eit and if user wants us to guess event based on time
# we try this as backup. The allowed diff should be configurable though.
for rtimer in timerdict.get(serviceref, ()):
if rtimer.eit == eit:
oldExists = True
doLog("[AutoTimer] We found a timer based on eit")
newEntry = rtimer
oldEntry = rtimer
break
elif config.plugins.autotimer.try_guessing.value:
if timer.hasOffset():
# Remove custom Offset
rbegin = rtimer.begin + timer.offset[0] * 60
rend = rtimer.end - timer.offset[1] * 60
else:
# Remove E2 Offset
rbegin = rtimer.begin + config.recording.margin_before.value * 60
rend = rtimer.end - config.recording.margin_after.value * 60
# As alternative we could also do a epg lookup
#revent = epgcache.lookupEventId(rtimer.service_ref.ref, rtimer.eit)
#rbegin = revent.getBeginTime() or 0
#rduration = revent.getDuration() or 0
#rend = rbegin + rduration or 0
if getTimeDiff(rbegin, rend, evtBegin, evtEnd) > ((duration/10)*8) or timeSimilarityPercent(rtimer, evtBegin, evtEnd, timer) > 80:
oldExists = True
doLog("[AutoTimer] We found a timer based on time guessing")
newEntry = rtimer
oldEntry = rtimer
break
if timer.avoidDuplicateDescription >= 1 \
and not rtimer.disabled:
if self.checkDuplicates(timer, name, rtimer.name, shortdesc, rtimer.description, extdesc, rtimer.extdesc ):
# if searchForDuplicateDescription > 1 then check short description
oldExists = True
doLog("[AutoTimer] We found a timer (similar service) with same description, skipping event")
break
# We found no timer we want to edit
if newEntry is None:
# But there is a match
if oldExists:
doLog("[AutoTimer] Skipping an event because a timer on same service exists")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
# We want to search for possible doubles
if timer.avoidDuplicateDescription >= 2:
for rtimer in chain.from_iterable( itervalues(timerdict) ):
if not rtimer.disabled:
if self.checkDuplicates(timer, name, rtimer.name, shortdesc, rtimer.description, extdesc, rtimer.extdesc ):
oldExists = True
doLog("[AutoTimer] We found a timer (any service) with same description, skipping event")
break
if oldExists:
doLog("[AutoTimer] Skipping an event because a timer on any service exists")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
if timer.checkCounter(timestamp):
doLog("[AutoTimer] Not adding new timer because counter is depleted.")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
# Append to timerlist and abort if simulating
示例2: parseTimer
# 需要导入模块: from RecordTimer import RecordTimerEntry [as 别名]
# 或者: from RecordTimer.RecordTimerEntry import disabled [as 别名]
#.........这里部分代码省略.........
doLog("Skipping an event because movie already exists")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
# Check for double Timers
# We first check eit and if user wants us to guess event based on time
# we try this as backup. The allowed diff should be configurable though.
for rtimer in timerdict.get(serviceref, ()):
if rtimer.eit == eit:
oldExists = True
doLog("We found a timer based on eit")
newEntry = rtimer
break
elif config.plugins.autotimer.try_guessing.value:
if timer.hasOffset():
# Remove custom Offset
rbegin = rtimer.begin + timer.offset[0] * 60
rend = rtimer.end - timer.offset[1] * 60
else:
# Remove E2 Offset
rbegin = rtimer.begin + config.recording.margin_before.value * 60
rend = rtimer.end - config.recording.margin_after.value * 60
# As alternative we could also do a epg lookup
#revent = epgcache.lookupEventId(rtimer.service_ref.ref, rtimer.eit)
#rbegin = revent.getBeginTime() or 0
#rduration = revent.getDuration() or 0
#rend = rbegin + rduration or 0
if getTimeDiff(rbegin, rend, evtBegin, evtEnd) > ((duration/10)*8):
oldExists = True
doLog("We found a timer based on time guessing")
newEntry = rtimer
break
if timer.avoidDuplicateDescription >= 1 \
and not rtimer.disabled:
if self.checkDuplicates(timer, name, rtimer.name, shortdesc, rtimer.description, extdesc, rtimer.extdesc ):
# if searchForDuplicateDescription > 1 then check short description
oldExists = True
doLog("We found a timer (similar service) with same description, skipping event")
break
# We found no timer we want to edit
if newEntry is None:
# But there is a match
if oldExists:
doLog("Skipping an event because a timer on same service exists")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
# We want to search for possible doubles
if timer.avoidDuplicateDescription >= 2:
for rtimer in chain.from_iterable( itervalues(timerdict) ):
if not rtimer.disabled:
if self.checkDuplicates(timer, name, rtimer.name, shortdesc, rtimer.description, extdesc, rtimer.extdesc ):
oldExists = True
doLog("We found a timer (any service) with same description, skipping event")
break
if oldExists:
doLog("Skipping an event because a timer on any service exists")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
if timer.checkCounter(timestamp):
doLog("Not adding new timer because counter is depleted.")
skipped.append((name, begin, end, serviceref, timer.name, getLog()))
continue
示例3: parseTimer
# 需要导入模块: from RecordTimer import RecordTimerEntry [as 别名]
# 或者: from RecordTimer.RecordTimerEntry import disabled [as 别名]
#.........这里部分代码省略.........
# We first check eit and if user wants us to guess event based on time
# we try this as backup. The allowed diff should be configurable though.
for rtimer in timerdict.get(serviceref, ()):
if (rtimer.eit == eit or config.plugins.autotimer.try_guessing.getValue()) and getTimeDiff(rtimer, evtBegin, evtEnd) > ((duration/10)*8):
oldExists = True
# Abort if we don't want to modify timers or timer is repeated
if config.plugins.autotimer.refresh.value == "none" or rtimer.repeated:
print("[AutoTimer] Won't modify existing timer because either no modification allowed or repeated timer")
break
if eit == preveit:
break
if (evtBegin - (config.recording.margin_before.getValue() * 60) != rtimer.begin) or (evtEnd + (config.recording.margin_after.getValue() * 60) != rtimer.end) or (shortdesc != rtimer.description):
if rtimer.isAutoTimer and eit == rtimer.eit:
print ("[AutoTimer] AutoTimer %s modified this automatically generated timer." % (timer.name))
# rtimer.log(501, "[AutoTimer] AutoTimer %s modified this automatically generated timer." % (timer.name))
preveit = eit
else:
if config.plugins.autotimer.refresh.getValue() != "all":
print("[AutoTimer] Won't modify existing timer because it's no timer set by us")
break
rtimer.log(501, "[AutoTimer] Warning, AutoTimer %s messed with a timer which might not belong to it: %s ." % (timer.name, rtimer.name))
newEntry = rtimer
modified += 1
self.modifyTimer(rtimer, name, shortdesc, begin, end, serviceref, eit)
# rtimer.log(501, "[AutoTimer] AutoTimer modified timer: %s ." % (rtimer.name))
break
else:
print ("[AutoTimer] Skipping timer because it has not changed.")
skipped += 1
break
elif timer.avoidDuplicateDescription >= 1 and not rtimer.disabled:
if self.checkSimilarity(timer, name, rtimer.name, shortdesc, rtimer.description, extdesc, rtimer.extdesc ):
print("[AutoTimer] We found a timer with similar description, skipping event")
oldExists = True
break
# We found no timer we want to edit
if newEntry is None:
# But there is a match
if oldExists:
continue
# We want to search for possible doubles
for rtimer in chain.from_iterable( itervalues(timerdict) ):
if not rtimer.disabled:
if self.checkDoubleTimers(timer, name, rtimer.name, begin, rtimer.begin, end, rtimer.end ):
oldExists = True
# print("[AutoTimer] We found a timer with same StartTime, skipping event")
break
if timer.avoidDuplicateDescription >= 2:
if self.checkSimilarity(timer, name, rtimer.name, shortdesc, rtimer.description, extdesc, rtimer.extdesc ):
oldExists = True
print("[AutoTimer] We found a timer (any service) with same description, skipping event")
break
if oldExists:
continue
if timer.checkCounter(timestamp):
print("[AutoTimer] Not adding new timer because counter is depleted.")
continue
newEntry = RecordTimerEntry(ServiceReference(serviceref), begin, end, name, shortdesc, eit)
newEntry.log(500, "[AutoTimer] Try to add new timer based on AutoTimer %s." % (timer.name))
示例4: parseEPG
# 需要导入模块: from RecordTimer import RecordTimerEntry [as 别名]
# 或者: from RecordTimer.RecordTimerEntry import disabled [as 别名]
#.........这里部分代码省略.........
timers.append((name, begin, end, serviceref, timer.name))
if simulateOnly:
continue
# Initialize
newEntry = None
oldExists = False
# Check for double Timers
# We first check eit and if user wants us to guess event based on time
# we try this as backup. The allowed diff should be configurable though.
for rtimer in recorddict.get(serviceref, ()):
if rtimer.eit == eit or config.plugins.autotimer.try_guessing.value and getTimeDiff(rtimer, begin, end) > ((duration/10)*8):
oldExists = True
# Abort if we don't want to modify timers or timer is repeated
if config.plugins.autotimer.refresh.value == "none" or rtimer.repeated:
print "[AutoTimer] Won't modify existing timer because either no modification allowed or repeated timer"
break
if hasattr(rtimer, "isAutoTimer"):
print "[AutoTimer] Modifying existing AutoTimer!"
else:
if config.plugins.autotimer.refresh.value != "all":
print "[AutoTimer] Won't modify existing timer because it's no timer set by us"
break
print "[AutoTimer] Warning, we're messing with a timer which might not have been set by us"
newEntry = rtimer
modified += 1
# Modify values saved in timer
newEntry.name = name
newEntry.description = description
newEntry.begin = int(begin)
newEntry.end = int(end)
newEntry.service_ref = ServiceReference(serviceref)
break
elif timer.avoidDuplicateDescription == 1 and not rtimer.disabled and rtimer.name == name and rtimer.description == description:
oldExists = True
print "[AutoTimer] We found a timer with same description, skipping event"
break
# We found no timer we want to edit
if newEntry is None:
# But there is a match
if oldExists:
continue
# We want to search for possible doubles
if timer.avoidDuplicateDescription == 2:
# I thinks thats the fastest way to do this, though it's a little ugly
try:
for list in recorddict.values():
for rtimer in list:
if not rtimer.disabled and rtimer.name == name and rtimer.description == description:
raise AutoTimerIgnoreTimerException("We found a timer with same description, skipping event")
except AutoTimerIgnoreTimerException, etite:
print etite
continue
if timer.checkCounter(timestamp):
continue
print "[AutoTimer] Adding an event."
newEntry = RecordTimerEntry(ServiceReference(serviceref), begin, end, name, description, eit)
# Mark this entry as AutoTimer (only AutoTimers will have this Attribute set)
newEntry.isAutoTimer = True
# Apply afterEvent
if timer.hasAfterEvent():
afterEvent = timer.getAfterEventTimespan(localtime(end))
if afterEvent is None:
afterEvent = timer.getAfterEvent()
if afterEvent is not None:
newEntry.afterEvent = afterEvent
newEntry.dirname = timer.destination
newEntry.justplay = timer.justplay
newEntry.tags = timer.tags
if oldExists:
# XXX: this won't perform a sanity check, but do we actually want to do so?
NavigationInstance.instance.RecordTimer.timeChanged(newEntry)
else:
conflicts = NavigationInstance.instance.RecordTimer.record(newEntry)
if conflicts and config.plugins.autotimer.disabled_on_conflict.value:
newEntry.disabled = True
# We might want to do the sanity check locally so we don't run it twice - but I consider this workaround a hack anyway
conflicts = NavigationInstance.instance.RecordTimer.record(newEntry)
conflicting.append((name, begin, end, serviceref, timer.name))
if conflicts is None:
timer.decrementCounter()
new += 1
recorddict.setdefault(serviceref, []).append(newEntry)
else:
conflicting.append((name, begin, end, serviceref, timer.name))
示例5: parseEPG
# 需要导入模块: from RecordTimer import RecordTimerEntry [as 别名]
# 或者: from RecordTimer.RecordTimerEntry import disabled [as 别名]
#.........这里部分代码省略.........
# Check for double Timers
# We first check eit and if user wants us to guess event based on time
# we try this as backup. The allowed diff should be configurable though.
for rtimer in recorddict.get(serviceref, ()):
if rtimer.eit == eit or config.plugins.autotimer.try_guessing.value and getTimeDiff(rtimer, evtBegin, evtEnd) > ((duration/10)*8):
oldExists = True
# Abort if we don't want to modify timers or timer is repeated
if config.plugins.autotimer.refresh.value == "none" or rtimer.repeated:
print("[AutoTimer] Won't modify existing timer because either no modification allowed or repeated timer")
break
if hasattr(rtimer, "isAutoTimer"):
rtimer.log(501, "[AutoTimer] AutoTimer %s modified this automatically generated timer." % (timer.name))
else:
if config.plugins.autotimer.refresh.value != "all":
print("[AutoTimer] Won't modify existing timer because it's no timer set by us")
break
rtimer.log(501, "[AutoTimer] Warning, AutoTimer %s messed with a timer which might not belong to it." % (timer.name))
newEntry = rtimer
modified += 1
# Modify values saved in timer
newEntry.name = name
newEntry.description = shortdesc
newEntry.begin = int(begin)
newEntry.end = int(end)
newEntry.service_ref = ServiceReference(serviceref)
break
elif timer.avoidDuplicateDescription >= 1 \
and not rtimer.disabled \
and rtimer.name == name \
and rtimer.description == shortdesc:
# Some channels indicate replays in the extended descriptions
# If the similarity percent is higher then 0.8 it is a very close match
if ( len(extdesc) == len(rtimer.extdesc) and extdesc == rtimer.extdesc ) \
or ( 0.8 < SequenceMatcher(lambda x: x == " ",extdesc, rtimer.extdesc).ratio() ):
oldExists = True
print("[AutoTimer] We found a timer (similar service) with same description, skipping event")
break
# We found no timer we want to edit
if newEntry is None:
# But there is a match
if oldExists:
continue
# We want to search for possible doubles
if timer.avoidDuplicateDescription >= 2:
for rtimer in chain.from_iterable( itervalues(recorddict) ):
if not rtimer.disabled \
and rtimer.name == name \
and rtimer.description == shortdesc:
# Some channels indicate replays in the extended descriptions
# If the similarity percent is higher then 0.8 it is a very close match
if ( len(extdesc) == len(rtimer.extdesc) and extdesc == rtimer.extdesc ) \
or ( 0.8 < SequenceMatcher(lambda x: x == " ",extdesc, rtimer.extdesc).ratio() ):
oldExists = True
print("[AutoTimer] We found a timer (any service) with same description, skipping event")
break
if oldExists:
continue
示例6: parseEPG
# 需要导入模块: from RecordTimer import RecordTimerEntry [as 别名]
# 或者: from RecordTimer.RecordTimerEntry import disabled [as 别名]
def parseEPG(self, simulateOnly = False):
if NavigationInstance.instance is None:
print "[AutoTimer] Navigation is not available, can't parse EPG"
return (0, 0, 0, [], [])
total = 0
new = 0
modified = 0
timers = []
conflicting = []
# NOTE: the config option specifies "the next X days" which means today (== 1) + X
delta = timedelta(days = config.plugins.autotimer.maxdaysinfuture.value + 1)
evtLimit = mktime((date.today() + delta).timetuple())
checkEvtLimit = delta.days > 1
del delta
self.readXml()
# Save Recordings in a dict to speed things up a little
# We include processed timers as we might search for duplicate descriptions
recorddict = {}
for rtimer in NavigationInstance.instance.RecordTimer.timer_list + NavigationInstance.instance.RecordTimer.processed_timers:
if not rtimer.disabled:
recorddict.setdefault(str(rtimer.service_ref), []).append(rtimer)
# Iterate Timer
for timer in self.getEnabledTimerList():
# Precompute timer destination dir
dest = timer.destination or config.usage.default_path.value
# Workaround to allow search for umlauts if we know the encoding
match = timer.match
if timer.encoding != 'UTF-8':
try:
match = match.decode('UTF-8').encode(timer.encoding)
except UnicodeDecodeError:
pass
# Search EPG, default to empty list
ret = self.epgcache.search(('RI', 500, typeMap[timer.searchType], match, caseMap[timer.searchCase])) or ()
for serviceref, eit in ret:
eserviceref = eServiceReference(serviceref)
evt = self.epgcache.lookupEventId(eserviceref, eit)
if not evt:
print "[AutoTimer] Could not create Event!"
continue
# Try to determine real service (we always choose the last one)
n = evt.getNumOfLinkageServices()
if n > 0:
i = evt.getLinkageService(eserviceref, n-1)
serviceref = i.toString()
# Gather Information
evtInfo = self.normalizeEvent(evt)
evtBegin = begin = evt.getBeginTime()
duration = evt.getDuration()
evtEnd = end = begin + duration
# If event starts in less than 60 seconds skip it
if begin < time() + 60:
print "[AutoTimer] Skipping an event because it starts in less than 60 seconds"
continue
# If maximum days in future is set then check time
if checkEvtLimit:
if begin > evtLimit:
continue
# Convert begin time
timestamp = localtime(begin)
# Update timer
timer.update(begin, timestamp)
# Check Duration, Timespan, Timeframe and Excludes
if timer.checkServices(serviceref) \
or timer.checkDuration(duration) \
or timer.checkTimespan(timestamp) \
or timer.checkTimeframe(begin) \
or timer.checkFilter(
evtInfo.name,
evtInfo.shortDescription,
evtInfo.extendedDescription,
str(timestamp.tm_wday)
):
continue
if timer.hasOffset():
# Apply custom Offset
begin, end = timer.applyOffset(begin, end)
else:
# Apply E2 Offset
begin -= config.recording.margin_before.value * 60
end += config.recording.margin_after.value * 60
# Eventually change service to alternative
#.........这里部分代码省略.........