Migrate update

This commit is contained in:
Ruud
2014-03-05 16:27:08 +01:00
parent 81ba95f540
commit 2ce0f7beb4
+16 -18
View File
@@ -6,6 +6,7 @@ from couchpotato import CPLog
from couchpotato.api import addApiView from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import toUnicode from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.helpers.variable import getImdb
log = CPLog(__name__) log = CPLog(__name__)
@@ -112,10 +113,11 @@ class Database(object):
def migrate(self): def migrate(self):
time.sleep(1)
from couchpotato import Env from couchpotato import Env
old_db = os.path.join(Env.get('data_dir'), 'couchpotato.db') old_db = os.path.join(Env.get('data_dir'), 'couchpotato.db')
if not os.path.isfile(old_db): return
time.sleep(1)
if os.path.isfile(old_db): if os.path.isfile(old_db):
@@ -282,31 +284,33 @@ class Database(object):
all_files = migrate_data['file'] all_files = migrate_data['file']
poster_type = migrate_data['filetype']['poster'] poster_type = migrate_data['filetype']['poster']
medias = migrate_data['movie'] medias = migrate_data['movie']
media_link = {}
for x in medias: for x in medias:
m = medias[x] m = medias[x]
status = statuses.get(m['status_id']).get('identifier') status = statuses.get(m['status_id']).get('identifier')
# Only migrate wanted movies
if status != 'active': continue
l = libraries[m['library_id']] l = libraries[m['library_id']]
# Only migrate wanted movies, Skip if no identifier present
if status != 'active' or not getImdb(l.get('identifier')): continue
profile_id = profile_link.get(m['profile_id']) profile_id = profile_link.get(m['profile_id'])
category_id = category_link.get(m['category_id']) category_id = category_link.get(m['category_id'])
title = titles_by_library.get(m['library_id']) title = titles_by_library.get(m['library_id'])
releases = releases_by_media.get(x, []) releases = releases_by_media.get(x, [])
info = json.loads(l.get('info', ''))
files = library_files.get(m['library_id'], []) files = library_files.get(m['library_id'], [])
if not isinstance(files, list): if not isinstance(files, list):
files = [files] files = [files]
added_media = fireEvent('movie.add', { added_media = fireEvent('movie.add', {
'info': json.loads(l.get('info', '')), 'info': info,
'identifier': l.get('identifier'), 'identifier': l.get('identifier'),
'profile_id': profile_id, 'profile_id': profile_id,
'category_id': category_id, 'category_id': category_id,
'title': title 'title': title
}, force_readd = False, search_after = False, status = status, single = True) }, force_readd = False, search_after = False, update_after = False, notify_after = False, status = status, single = True)
added_media['files'] = added_media.get('files', {})
for f in files: for f in files:
file = all_files[f.get('file_id')] file = all_files[f.get('file_id')]
@@ -323,16 +327,10 @@ class Database(object):
if not rel.get('info'): continue if not rel.get('info'): continue
quality = quality_link[rel.get('quality_id')] quality = quality_link[rel.get('quality_id')]
added_rel = fireEvent('release.create_from_search', [rel['info']], added_media, quality, single = True)
# Update status # Add status to keys
added_rel['status'] = status rel['info']['status'] = status
added_rel['last_edit'] = int(time.time()) added_rel_identifiers = fireEvent('release.create_from_search', [rel['info']], added_media, quality, single = True)
db.update(added_rel)
break
return
# rename old database # rename old database
os.rename(old_db, old_db + '.old') os.rename(old_db, old_db + '.old')