Properly update release dates
This commit is contained in:
1 parent
b1942678b4
commit
93346b0c63
3 files changed
+34
-3
No files matched your search
@@ -87,7 +87,7 @@ class LibraryPlugin(Plugin):
|
|||||||
library.tagline = toUnicode(info.get('tagline', ''))
|
library.tagline = toUnicode(info.get('tagline', ''))
|
||||||
library.year = info.get('year', 0)
|
library.year = info.get('year', 0)
|
||||||
library.status_id = done_status.get('id')
|
library.status_id = done_status.get('id')
|
||||||
library.info = info
|
library.info.update(info)
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
# Titles
|
# Titles
|
||||||
@@ -148,7 +148,7 @@ class LibraryPlugin(Plugin):
|
|||||||
|
|
||||||
if dates and dates.get('expires', 0) < time.time() or not dates:
|
if dates and dates.get('expires', 0) < time.time() or not dates:
|
||||||
dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
|
dates = fireEvent('movie.release_date', identifier = identifier, merge = True)
|
||||||
library.info = mergeDicts(library.info, {'release_date': dates })
|
library.info.update({'release_date': dates })
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
db.expire_all()
|
db.expire_all()
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ class MovieResultModifier(Plugin):
|
|||||||
'tagline': '',
|
'tagline': '',
|
||||||
'imdb': '',
|
'imdb': '',
|
||||||
'genres': [],
|
'genres': [],
|
||||||
'release_date': {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from elixir.entity import Entity
|
|||||||
from elixir.fields import Field
|
from elixir.fields import Field
|
||||||
from elixir.options import options_defaults, using_options
|
from elixir.options import options_defaults, using_options
|
||||||
from elixir.relationships import ManyToMany, OneToMany, ManyToOne
|
from elixir.relationships import ManyToMany, OneToMany, ManyToOne
|
||||||
|
from sqlalchemy.ext.mutable import Mutable
|
||||||
from sqlalchemy.types import Integer, Unicode, UnicodeText, Boolean, String, \
|
from sqlalchemy.types import Integer, Unicode, UnicodeText, Boolean, String, \
|
||||||
TypeDecorator
|
TypeDecorator
|
||||||
import json
|
import json
|
||||||
@@ -39,6 +40,37 @@ class JsonType(TypeDecorator):
|
|||||||
def process_result_value(self, value, dialect):
|
def process_result_value(self, value, dialect):
|
||||||
return json.loads(value if value else '{}')
|
return json.loads(value if value else '{}')
|
||||||
|
|
||||||
|
class MutableDict(Mutable, dict):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def coerce(cls, key, value):
|
||||||
|
if not isinstance(value, MutableDict):
|
||||||
|
if isinstance(value, dict):
|
||||||
|
return MutableDict(value)
|
||||||
|
return Mutable.coerce(key, value)
|
||||||
|
else:
|
||||||
|
return value
|
||||||
|
|
||||||
|
def __delitem(self, key):
|
||||||
|
dict.__delitem__(self, key)
|
||||||
|
self.changed()
|
||||||
|
|
||||||
|
def __setitem__(self, key, value):
|
||||||
|
dict.__setitem__(self, key, value)
|
||||||
|
self.changed()
|
||||||
|
|
||||||
|
def __getstate__(self):
|
||||||
|
return dict(self)
|
||||||
|
|
||||||
|
def __setstate__(self, state):
|
||||||
|
self.update(self)
|
||||||
|
|
||||||
|
def update(self, *args, **kwargs):
|
||||||
|
super(MutableDict, self).update(*args, **kwargs)
|
||||||
|
self.changed()
|
||||||
|
|
||||||
|
MutableDict.associate_with(JsonType)
|
||||||
|
|
||||||
|
|
||||||
class Movie(Entity):
|
class Movie(Entity):
|
||||||
"""Movie Resource a movie could have multiple releases
|
"""Movie Resource a movie could have multiple releases
|
||||||
|
|||||||
Reference in new issue
Block a user