Browse Source

Changed model to accept Unicode value for airs_time and add last_updated field for episode. Now stores both as well as airs_daysofweek

pull/2139/head
Jason Mehring 12 years ago
parent
commit
4063761313
  1. 39
      couchpotato/core/media/show/library/episode/main.py
  2. 31
      couchpotato/core/media/show/library/season/main.py
  3. 61
      couchpotato/core/media/show/library/show/main.py
  4. 18
      couchpotato/core/settings/model.py

39
couchpotato/core/media/show/library/episode/main.py

@ -81,7 +81,6 @@ class EpisodeLibraryPlugin(LibraryBase):
do_update = True
# XXX: Fix to be pretty
parent_identifier = None
if library.parent is not None:
parent_identifier = library.parent.identifier
@ -89,10 +88,6 @@ class EpisodeLibraryPlugin(LibraryBase):
if library.status_id == done_status.get('id') and not force:
do_update = False
#info = fireEvent('episode.info', merge = True, identifier = identifier, \
# parent_identifier = parent_identifier)
#info = fireEvent('episode.info', merge = True, identifier = parent_identifier, \
# episode_identifier = identifier)
info = fireEvent('episode.info', merge = True, season_identifier = parent_identifier, \
episode_identifier = identifier)
@ -114,6 +109,10 @@ class EpisodeLibraryPlugin(LibraryBase):
library.status_id = done_status.get('id')
library.season_number = tryInt(info.get('seasonnumber', None))
library.episode_number = tryInt(info.get('episodenumber', None))
try:
library.last_updated = int(info.get('lastupdated'))
except:
library.last_updated = int(time.time())
library.info.update(info)
db.commit()
@ -163,25 +162,27 @@ class EpisodeLibraryPlugin(LibraryBase):
return library_dict
def updateReleaseDate(self, identifier):
'''XXX: Not sure what this is for yet in relation to an episode'''
pass
#db = get_session()
#library = db.query(EpisodeLibrary).filter_by(identifier = identifier).first()
db = get_session()
library = db.query(EpisodeLibrary).filter_by(identifier = identifier).first()
#if not library.info:
#library_dict = self.update(identifier, force = True)
#dates = library_dict.get('info', {}).get('release_date')
#else:
#dates = library.info.get('release_date')
if not library.info:
library_dict = self.update(identifier, force = True)
dates = library_dict.get('info', {}).get('release_date')
else:
dates = library.info.get('release_date')
#if dates and dates.get('expires', 0) < time.time() or not dates:
#dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
#library.info.update({'release_date': dates })
#db.commit()
if dates and dates.get('expires', 0) < time.time() or not dates:
dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
library.info.update({'release_date': dates })
db.commit()
db.expire_all()
return dates
#db.expire_all()
#return dates
#TODO: Add to base class
def simplifyTitle(self, title):
title = toUnicode(title)

31
couchpotato/core/media/show/library/season/main.py

@ -81,7 +81,6 @@ class SeasonLibraryPlugin(LibraryBase):
do_update = True
# XXX: Fix to be pretty
parent_identifier = None
if library.parent is not None:
parent_identifier = library.parent.identifier
@ -160,25 +159,27 @@ class SeasonLibraryPlugin(LibraryBase):
return library_dict
def updateReleaseDate(self, identifier):
'''XXX: Not sure what this is for yet in relation to a tvshow'''
pass
#db = get_session()
#library = db.query(SeasonLibrary).filter_by(identifier = identifier).first()
db = get_session()
library = db.query(SeasonLibrary).filter_by(identifier = identifier).first()
#if not library.info:
#library_dict = self.update(identifier, force = True)
#dates = library_dict.get('info', {}).get('release_date')
#else:
#dates = library.info.get('release_date')
if not library.info:
library_dict = self.update(identifier, force = True)
dates = library_dict.get('info', {}).get('release_date')
else:
dates = library.info.get('release_date')
#if dates and dates.get('expires', 0) < time.time() or not dates:
#dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
#library.info.update({'release_date': dates })
#db.commit()
if dates and dates.get('expires', 0) < time.time() or not dates:
dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
library.info.update({'release_date': dates })
db.commit()
db.expire_all()
return dates
#db.expire_all()
#return dates
#TODO: Add to base class
def simplifyTitle(self, title):
title = toUnicode(title)

61
couchpotato/core/media/show/library/show/main.py

@ -84,7 +84,7 @@ class ShowLibraryPlugin(LibraryBase):
except: pass
if not info or len(info) == 0:
log.error('Could not update, no movie info to work with: %s', identifier)
log.error('Could not update, no show info to work with: %s', identifier)
return False
# Main info
@ -93,13 +93,30 @@ class ShowLibraryPlugin(LibraryBase):
library.tagline = toUnicode(info.get('tagline', ''))
library.year = info.get('year', 0)
library.status_id = done_status.get('id')
#--------------------------------------------------------------------------------------------------
# XXX: TODO: implement logic to get proper values
library.airs_dayofweek = int(0)
library.airs_time = int(0)
library.last_updated = int(0)
library.show_status = toUnicode(info.get('status', '').lower())
#--------------------------------------------------------------------------------------------------
library.airs_time = info.get('airs_time', None)
# Bits
days_of_week_map = {
u'Monday': 1,
u'Tuesday': 2,
u'Wednesday': 4,
u'Thursday': 8,
u'Friday': 16,
u'Saturday': 32,
u'Sunday': 64,
u'Daily': 127,
}
try:
library.airs_dayofweek = days_of_week_map.get(info.get('airs_dayofweek'))
except:
library.airs_dayofweek = 0
try:
library.last_updated = int(info.get('lastupdated'))
except:
library.last_updated = int(time.time())
library.info.update(info)
db.commit()
@ -150,25 +167,27 @@ class ShowLibraryPlugin(LibraryBase):
return library_dict
def updateReleaseDate(self, identifier):
'''XXX: Not sure what this is for yet in relation to a show'''
pass
#db = get_session()
#library = db.query(ShowLibrary).filter_by(identifier = identifier).first()
db = get_session()
library = db.query(ShowLibrary).filter_by(identifier = identifier).first()
if not library.info:
library_dict = self.update(identifier, force = True)
dates = library_dict.get('info', {}).get('release_date')
else:
dates = library.info.get('release_date')
#if not library.info:
#library_dict = self.update(identifier, force = True)
#dates = library_dict.get('info', {}).get('release_date')
#else:
#dates = library.info.get('release_date')
if dates and dates.get('expires', 0) < time.time() or not dates:
dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
library.info.update({'release_date': dates })
db.commit()
#if dates and dates.get('expires', 0) < time.time() or not dates:
#dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
#library.info.update({'release_date': dates })
#db.commit()
db.expire_all()
return dates
#db.expire_all()
#return dates
#TODO: Add to base class
def simplifyTitle(self, title):
title = toUnicode(title)

18
couchpotato/core/settings/model.py

@ -118,8 +118,21 @@ class ShowLibrary(Library, DictMixin):
last_updated = Field(Integer, index = True)
show_status = Field(String(10), index = True)
airs_dayofweek = Field(Integer, index = True)
airs_time = Field(Integer, index = True)
# XXX: Maybe we should convert this to seconds?
# airs_time u'21:00'
airs_time = Field(Unicode, index = True)
# airs_dayofweek = Field(Integer, index = True)
# u'Monday': 1,
# u'Tuesday': 2,
# u'Wednesday': 4,
# u'Thursday': 8,
# u'Friday': 16,
# u'Saturday': 32,
# u'Sunday': 64,
# u'Daily': 127,
airs_dayofweek = Field(Integer, index = True)
def getSeasons(self):
data = OrderedDict()
@ -188,6 +201,7 @@ class SeasonLibrary(Library, DictMixin):
class EpisodeLibrary(Library):
using_options(inheritance = 'multi')
last_updated = Field(Integer, index = True)
season_number = Field(Integer, index = True)
episode_number = Field(Integer, index = True)

Loading…
Cancel
Save