-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
showUpdater.py
42 lines (26 loc) · 1.28 KB
/
showUpdater.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import datetime
from sickbeard.common import *
from sickbeard import logger
from sickbeard import exceptions
from sickbeard import ui
class ShowUpdater():
def __init__(self):
self.updateInterval = datetime.timedelta(hours=1)
def run(self, force=False):
# update at 3 AM
updateTime = datetime.time(hour=3)
logger.log(u"Checking update interval", logger.DEBUG)
hourDiff = datetime.datetime.today().time().hour - updateTime.hour
# if it's less than an interval after the update time then do an update (or if we're forcing it)
if hourDiff >= 0 and hourDiff < self.updateInterval.seconds/3600 or force:
logger.log(u"Doing full update on all shows")
else:
return
piList = []
for curShow in sickbeard.showList:
try:
curQueueItem = sickbeard.showQueueScheduler.action.updateShow(curShow, True)
piList.append(curQueueItem)
except (exceptions.CantUpdateException, exceptions.CantRefreshException), e:
logger.log(u"Automatic update failed: " + str(e), logger.ERROR)
ui.ProgressIndicators.setIndicator('dailyUpdate', ui.QueueProgressIndicator("Daily Update", piList))