1
0
mirror of https://github.com/moparisthebest/SickRage synced 2024-11-13 21:05:11 -05:00

Merge pull request #82 from tehspede/feature/api_local_timezone

Change API now uses Timezone setting at General Config/Interface/User Interface/ at relevant endpoints
This commit is contained in:
JackDandy 2014-11-03 22:42:42 +00:00
commit 135443d8b1
2 changed files with 30 additions and 21 deletions

View File

@ -49,6 +49,7 @@
* Fix and repositioned show_message on display show to use bootstrap styling
* Remove commented out html from display show accidently left in during UI changes
* Fix display issue of season tables in displayShow view / Display Specials
* Change API now uses Timezone setting at General Config/Interface/User Interface/ at relevant endpoints
### 0.2.1 (2014-10-22 06:41:00 UTC)
@ -79,4 +80,4 @@
### 0.1.0 (2014-10-16 12:35:15 UTC)
* Initial release
* Initial release

View File

@ -34,6 +34,7 @@ from sickbeard import search_queue
from sickbeard import image_cache
from sickbeard import classes
from sickbeard import processTV
from sickbeard import network_timezones, sbdatetime
from sickbeard.exceptions import ex
from sickbeard.common import SNATCHED, SNATCHED_PROPER, DOWNLOADED, SKIPPED, UNAIRED, IGNORED, ARCHIVED, WANTED, UNKNOWN
from common import Quality, qualityPresetStrings, statusStrings
@ -47,6 +48,7 @@ from lib import subliminal
dateFormat = "%Y-%m-%d"
dateTimeFormat = "%Y-%m-%d %H:%M"
timeFormat = '%A %I:%M %p'
RESULT_SUCCESS = 10 # only use inside the run methods
RESULT_FAILURE = 20 # only use inside the run methods
@ -773,6 +775,10 @@ class CMD_ComingEpisodes(ApiCall):
if ep["paused"] and not self.paused:
continue
ep['airs'] = str(ep['airs']).replace('am', ' AM').replace('pm', ' PM').replace(' ', ' ')
dtEpisodeAirs = network_timezones.parse_date_time(int(ep['airdate']), ep['airs'], ep['network'])
ep['airdate'] = dtEpisodeAirs.toordinal()
status = "soon"
if ep["airdate"] < today:
status = "missed"
@ -785,20 +791,20 @@ class CMD_ComingEpisodes(ApiCall):
status = "soon"
# skip unwanted
if self.type != None and not status in self.type:
if self.type is not None and not status in self.type:
continue
ordinalAirdate = int(ep["airdate"])
if not ep["network"]:
ep["network"] = ""
ep["airdate"] = _ordinal_to_dateForm(ordinalAirdate)
ep["quality"] = _get_quality_string(ep["quality"])
# clean up tvdb horrible airs field
ep["airs"] = str(ep["airs"]).replace('am', ' AM').replace('pm', ' PM').replace(' ', ' ')
ep['airs'] = sbdatetime.sbdatetime.sbftime(dtEpisodeAirs, t_preset=timeFormat).lstrip('0').replace(' 0', ' ')
# start day of the week on 1 (monday)
ep["weekday"] = 1 + datetime.date.fromordinal(ordinalAirdate).weekday()
ep['weekday'] = 1 + datetime.date.fromordinal(dtEpisodeAirs.toordinal()).weekday()
# Add tvdbid for backward compability
ep["tvdbid"] = ep['indexerid']
ep['airdate'] = sbdatetime.sbdatetime.sbfdate(dtEpisodeAirs, d_preset=dateFormat)
# TODO: check if this obsolete
if not status in finalEpResults:
@ -860,7 +866,7 @@ class CMD_Episode(ApiCall):
elif not showPath: # show dir is broken ... episode path will be empty
episode["location"] = ""
# convert stuff to human form
episode["airdate"] = _ordinal_to_dateForm(episode["airdate"])
episode['airdate'] = sbdatetime.sbdatetime.sbfdate(network_timezones.parse_date_time(int(episode['airdate']), showObj.airs, showObj.network), d_preset=dateFormat)
status, quality = Quality.splitCompositeStatus(int(episode["status"]))
episode["status"] = _get_status_Strings(status)
episode["quality"] = _get_quality_string(quality)
@ -1803,13 +1809,12 @@ class CMD_Show(ApiCall):
showDict["network"] = ""
showDict["status"] = showObj.status
nextAirdate = showObj.nextaired
if nextAirdate:
nextAirdate = _ordinal_to_dateForm(nextAirdate)
if showObj.nextaired:
dtEpisodeAirs = network_timezones.parse_date_time(showObj.nextaired, showDict['airs'], showDict['network'])
showDict['airs'] = sbdatetime.sbdatetime.sbftime(dtEpisodeAirs, t_preset=timeFormat).lstrip('0').replace(' 0', ' ')
showDict['next_ep_airdate'] = sbdatetime.sbdatetime.sbfdate(dtEpisodeAirs, d_preset=dateFormat)
else:
nextAirdate = ''
showDict["next_ep_airdate"] = nextAirdate
showDict['next_ep_airdate'] = ''
return _responds(RESULT_SUCCESS, showDict)
@ -2312,7 +2317,8 @@ class CMD_ShowSeasons(ApiCall):
status, quality = Quality.splitCompositeStatus(int(row["status"]))
row["status"] = _get_status_Strings(status)
row["quality"] = _get_quality_string(quality)
row["airdate"] = _ordinal_to_dateForm(row["airdate"])
dtEpisodeAirs = network_timezones.parse_date_time(row['airdate'],showObj.airs,showObj.network)
row['airdate'] = sbdatetime.sbdatetime.sbfdate(dtEpisodeAirs, d_preset=dateFormat)
curSeason = int(row["season"])
curEpisode = int(row["episode"])
del row["season"]
@ -2334,7 +2340,8 @@ class CMD_ShowSeasons(ApiCall):
status, quality = Quality.splitCompositeStatus(int(row["status"]))
row["status"] = _get_status_Strings(status)
row["quality"] = _get_quality_string(quality)
row["airdate"] = _ordinal_to_dateForm(row["airdate"])
dtEpisodeAirs = network_timezones.parse_date_time(row['airdate'], showObj.airs, showObj.network)
row['airdate'] = sbdatetime.sbdatetime.sbfdate(dtEpisodeAirs, d_preset=dateFormat)
if not curEpisode in seasons:
seasons[curEpisode] = {}
seasons[curEpisode] = row
@ -2556,11 +2563,6 @@ class CMD_Shows(ApiCall):
""" display_is_int_multi( self.indexerid )shows in sickbeard """
shows = {}
for curShow in sickbeard.showList:
nextAirdate = curShow.nextaired
if nextAirdate:
nextAirdate = _ordinal_to_dateForm(nextAirdate)
else:
nextAirdate = ''
if self.paused != None and bool(self.paused) != bool(curShow.paused):
continue
@ -2580,9 +2582,14 @@ class CMD_Shows(ApiCall):
"show_name": curShow.name,
"status": curShow.status,
"subtitles": curShow.subtitles,
"next_ep_airdate": nextAirdate
}
if curShow.nextaired:
dtEpisodeAirs = network_timezones.parse_date_time(curShow.nextaired, curShow.airs, showDict['network'])
showDict['next_ep_airdate'] = sbdatetime.sbdatetime.sbfdate(dtEpisodeAirs, d_preset=dateFormat)
else:
showDict['next_ep_airdate'] = ''
showDict["cache"] = CMD_ShowCache(self.handler, (), {"indexerid": curShow.indexerid}).run()["data"]
if not showDict["network"]:
showDict["network"] = ""
@ -2590,6 +2597,7 @@ class CMD_Shows(ApiCall):
shows[curShow.name] = showDict
else:
shows[curShow.indexerid] = showDict
return _responds(RESULT_SUCCESS, shows)