Ottimizzazioni dbconverter
This commit is contained in:
+51
-111
@@ -41,13 +41,13 @@ class addVideo(object):
|
|||||||
self.set_actors()
|
self.set_actors()
|
||||||
self.message += ', actors:{}'.format(time() - start)
|
self.message += ', actors:{}'.format(time() - start)
|
||||||
start = time()
|
start = time()
|
||||||
self.set_country()
|
self.set_info('country')
|
||||||
self.message += ', country:{}'.format(time() - start)
|
self.message += ', country:{}'.format(time() - start)
|
||||||
start = time()
|
start = time()
|
||||||
self.set_genre()
|
self.set_info('genre')
|
||||||
self.message += ', genre:{}'.format(time() - start)
|
self.message += ', genre:{}'.format(time() - start)
|
||||||
start = time()
|
start = time()
|
||||||
self.set_studio()
|
self.set_info('studio')
|
||||||
self.message += ', studio:{}'.format(time() - start)
|
self.message += ', studio:{}'.format(time() - start)
|
||||||
start = time()
|
start = time()
|
||||||
if self.item.contentType == 'movie': self.set_movie()
|
if self.item.contentType == 'movie': self.set_movie()
|
||||||
@@ -72,7 +72,7 @@ class addVideo(object):
|
|||||||
|
|
||||||
def get_id(self):
|
def get_id(self):
|
||||||
Type = 'id' + self.item.contentType.replace('tv','').capitalize()
|
Type = 'id' + self.item.contentType.replace('tv','').capitalize()
|
||||||
sql = 'select {} from {}_view where (uniqueid_value like "{}" and uniqueid_type like "kod")'.format(Type, self.item.contentType, self.item.videolibrary_id)
|
sql = 'select {} from {}_view where (uniqueid_value = "{}" and uniqueid_type = "kod")'.format(Type, self.item.contentType, self.item.videolibrary_id)
|
||||||
n, records = execute_sql_kodi(sql, conn=conn)
|
n, records = execute_sql_kodi(sql, conn=conn)
|
||||||
if n: return True, records[0][0]
|
if n: return True, records[0][0]
|
||||||
|
|
||||||
@@ -83,14 +83,14 @@ class addVideo(object):
|
|||||||
return False, _id
|
return False, _id
|
||||||
|
|
||||||
def set_path(self):
|
def set_path(self):
|
||||||
sql = 'select idPath from path where (strPath like "{}")'.format(self.parentPath)
|
sql = 'select idPath from path where (strPath = "{}") limit 1'.format(self.parentPath)
|
||||||
nun_records, records = execute_sql_kodi(sql, conn=conn)
|
nun_records, records = execute_sql_kodi(sql, conn=conn)
|
||||||
if records:
|
if records:
|
||||||
self.idParentPath = records[0][0]
|
self.idParentPath = records[0][0]
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
sql = 'select idPath from path where (strPath like "{}")'.format(self.strPath)
|
sql = 'select idPath from path where (strPath = "{}") limit 1'.format(self.strPath)
|
||||||
nun_records, records = execute_sql_kodi(sql, conn=conn)
|
nun_records, records = execute_sql_kodi(sql, conn=conn)
|
||||||
if records:
|
if records:
|
||||||
self.idPath = records[0][0]
|
self.idPath = records[0][0]
|
||||||
@@ -104,7 +104,7 @@ class addVideo(object):
|
|||||||
def set_sets(self):
|
def set_sets(self):
|
||||||
self.idSet = None
|
self.idSet = None
|
||||||
if self.info.get('set'):
|
if self.info.get('set'):
|
||||||
sql = 'SELECT idSet from sets where (strSet like "{}")'.format(self.info.get('set'))
|
sql = 'SELECT idSet from sets where (strSet = "{}") limit 1'.format(self.info.get('set'))
|
||||||
# params = self.info.get('set')
|
# params = self.info.get('set')
|
||||||
n, records = execute_sql_kodi(sql, conn=conn)
|
n, records = execute_sql_kodi(sql, conn=conn)
|
||||||
if records:
|
if records:
|
||||||
@@ -154,129 +154,69 @@ class addVideo(object):
|
|||||||
n, records = execute_sql_kodi(sql, params, conn)
|
n, records = execute_sql_kodi(sql, params, conn)
|
||||||
|
|
||||||
def set_actors(self):
|
def set_actors(self):
|
||||||
actor_id = get_id('actor_id', 'actor')
|
actors = self.info.get('castandrole', [])
|
||||||
actors = self.info.get('castandrole',[])
|
|
||||||
if actors: actors.sort(key=lambda a: a[3])
|
if actors: actors.sort(key=lambda a: a[3])
|
||||||
l_actors = []
|
|
||||||
sql = 'select actor_id, name from actor'
|
|
||||||
n, current_actors = execute_sql_kodi(sql, conn=conn)
|
|
||||||
if current_actors: l_actors = [a[1] for a in current_actors]
|
|
||||||
actor_params = []
|
actor_params = []
|
||||||
actor_link_params = []
|
actor_link_params = []
|
||||||
actor_sql = 'INSERT OR IGNORE INTO actor (actor_id, name, art_urls) VALUES (?, ?, ?)'
|
director_link_params = []
|
||||||
|
writer_params = []
|
||||||
|
writer_link_params = []
|
||||||
|
directors = self.info.get('director', '').split(', ')
|
||||||
|
directors_image = self.info.get('director_image', ['' for d in directors])
|
||||||
|
writers = self.info.get('writer', '').split(', ')
|
||||||
|
writers_image = self.info.get('writer_image', ['' for w in writers])
|
||||||
|
|
||||||
|
actor_sql = 'INSERT OR IGNORE INTO actor (name, art_urls) VALUES (?, ?)'
|
||||||
actor_link_sql = 'INSERT OR IGNORE INTO actor_link (actor_id, media_id, media_type, role, cast_order) VALUES (?, ?, ?, ?, ?)'
|
actor_link_sql = 'INSERT OR IGNORE INTO actor_link (actor_id, media_id, media_type, role, cast_order) VALUES (?, ?, ?, ?, ?)'
|
||||||
for actor in actors:
|
for actor in actors:
|
||||||
if actor[0] not in l_actors:
|
actor_params.append((actor[0], actor[2]))
|
||||||
actor_params.append((actor_id, actor[0], actor[2]))
|
for d, director in enumerate(directors):
|
||||||
actor_link_params.append((actor_id, self.VideoId, self.item.contentType, actor[1], actor[3]))
|
actor_params.append((director, directors_image[d]))
|
||||||
if actor[2]:
|
for w, writer in enumerate(writers):
|
||||||
self.art.append({'media_id':actor_id, 'media_type': 'actor', 'type':'thumb', 'url':actor[2]})
|
actor_params.append((writer, writers_image[w]))
|
||||||
actor_id += 1
|
|
||||||
else:
|
|
||||||
a_id = current_actors[actors.index(actor)][0]
|
|
||||||
actor_link_params.append((a_id, self.VideoId, self.item.contentType, actor[1], actor[3]))
|
|
||||||
# support.dbg()
|
|
||||||
if actor_params:
|
if actor_params:
|
||||||
n, records = execute_sql_kodi(actor_sql, actor_params)
|
n, records = execute_sql_kodi(actor_sql, actor_params)
|
||||||
|
|
||||||
|
for actor in actors:
|
||||||
|
actor_id = execute_sql_kodi('select actor_id from actor where name="{}" limit 1'.format(actor[0]))[1][0][0]
|
||||||
|
actor_link_params.append((actor_id, self.VideoId, self.item.contentType, actor[1], actor[3]))
|
||||||
|
if actor[2]:
|
||||||
|
self.art.append({'media_id': actor_id, 'media_type': 'actor', 'type': 'thumb', 'url': actor[2]})
|
||||||
|
|
||||||
|
for d, director in enumerate(directors):
|
||||||
|
actor_id = execute_sql_kodi('select actor_id from actor where name="{}" limit 1'.format(director))[1][0][0]
|
||||||
|
director_link_params.append((actor_id, self.VideoId, self.item.contentType))
|
||||||
|
if directors_image[d]:
|
||||||
|
self.art.append(
|
||||||
|
{'media_id': actor_id, 'media_type': 'director', 'type': 'thumb', 'url': directors_image[d]})
|
||||||
|
|
||||||
|
for w, writer in enumerate(writers):
|
||||||
|
actor_id = execute_sql_kodi('select actor_id from actor where name="{}" limit 1'.format(writer))[1][0][0]
|
||||||
|
writer_link_params.append((actor_id, self.VideoId, self.item.contentType))
|
||||||
|
|
||||||
if actor_link_params:
|
if actor_link_params:
|
||||||
n, records = execute_sql_kodi(actor_link_sql, actor_link_params)
|
n, records = execute_sql_kodi(actor_link_sql, actor_link_params)
|
||||||
|
|
||||||
directors = self.info.get('director','').split(', ')
|
|
||||||
directors_image = self.info.get('director_image',['' for d in directors])
|
|
||||||
|
|
||||||
director_params = []
|
|
||||||
director_link_params = []
|
|
||||||
for d, director in enumerate(directors):
|
|
||||||
if director not in l_actors:
|
|
||||||
director_params.append((actor_id, director, directors_image[d]))
|
|
||||||
if directors_image[d]:
|
|
||||||
self.art.append({'media_id':actor_id, 'media_type': 'director', 'type':'thumb', 'url':directors_image[d]})
|
|
||||||
d_id = actor_id
|
|
||||||
l_actors.append(director)
|
|
||||||
current_actors.append((d_id, director))
|
|
||||||
actor_id += 1
|
|
||||||
else:
|
|
||||||
d_id = current_actors[l_actors.index(director)][0]
|
|
||||||
director_link_params.append((d_id, self.VideoId, self.item.contentType))
|
|
||||||
if director_params:
|
|
||||||
n, records = execute_sql_kodi(actor_sql, director_params)
|
|
||||||
if director_link_params:
|
if director_link_params:
|
||||||
sql = 'INSERT OR IGNORE INTO director_link (actor_id, media_id, media_type) VALUES (?, ?, ?)'
|
sql = 'INSERT OR IGNORE INTO director_link (actor_id, media_id, media_type) VALUES (?, ?, ?)'
|
||||||
n, records = execute_sql_kodi(sql, director_link_params)
|
n, records = execute_sql_kodi(sql, director_link_params)
|
||||||
|
|
||||||
writers = self.info.get('writer','').split(', ')
|
|
||||||
writers_image = self.info.get('writer_image',['' for w in writers])
|
|
||||||
|
|
||||||
writer_params = []
|
|
||||||
writer_link_params = []
|
|
||||||
|
|
||||||
for w, writer in enumerate(writers):
|
|
||||||
if writer not in l_actors:
|
|
||||||
writer_params.append((actor_id, writer, writers_image[w]))
|
|
||||||
d_id = actor_id
|
|
||||||
l_actors.append(writer)
|
|
||||||
current_actors.append((d_id, writer))
|
|
||||||
actor_id += 1
|
|
||||||
else:
|
|
||||||
d_id = current_actors[l_actors.index(writer)][0]
|
|
||||||
writer_link_params.append((d_id, self.VideoId, self.item.contentType))
|
|
||||||
|
|
||||||
if writer_params:
|
if writer_params:
|
||||||
n, records = execute_sql_kodi(actor_sql, writer_params)
|
n, records = execute_sql_kodi(actor_sql, writer_params)
|
||||||
if writer_link_params:
|
if writer_link_params:
|
||||||
sql = 'INSERT OR IGNORE INTO director_link (actor_id, media_id, media_type) VALUES (?, ?, ?)'
|
sql = 'INSERT OR IGNORE INTO director_link (actor_id, media_id, media_type) VALUES (?, ?, ?)'
|
||||||
n, records = execute_sql_kodi(sql, writer_link_params)
|
n, records = execute_sql_kodi(sql, writer_link_params)
|
||||||
|
|
||||||
def set_country(self):
|
def set_info(self, info_name):
|
||||||
countrys = self.info.get('country','').split(', ')
|
info_list = self.info.get(info_name, '').split(', ')
|
||||||
if countrys:
|
if info_list:
|
||||||
for country in countrys:
|
sql = 'INSERT OR IGNORE INTO {} (name) VALUES (?)'.format(info_name)
|
||||||
sql = 'select country_id from country where name = "{}"'.format(country)
|
params = [(info,) for info in info_list]
|
||||||
n, records = execute_sql_kodi(sql, conn=conn)
|
n, records = execute_sql_kodi(sql, params, conn)
|
||||||
if records:
|
sql = 'INSERT OR IGNORE INTO {}_link ({}_id, media_id, media_type) VALUES (?, ?, ?)'.format(info_name, info_name)
|
||||||
_id = records[0][0]
|
params = [(execute_sql_kodi('select {}_id from {} where name = "{}" limit 1'.format(info_name, info_name, info))[1][0][0],
|
||||||
else:
|
self.VideoId, self.item.contentType) for info in info_list]
|
||||||
_id = get_id('country_id', 'country')
|
n, records = execute_sql_kodi(sql, params, conn)
|
||||||
sql = 'INSERT OR IGNORE INTO country (country_id, name) VALUES (?, ?)'
|
|
||||||
params = (_id, country)
|
|
||||||
n, records = execute_sql_kodi(sql, params, conn)
|
|
||||||
sql = 'INSERT OR IGNORE INTO country_link (country_id, media_id, media_type) VALUES (?, ?, ?)'
|
|
||||||
params = (_id, self.VideoId, self.item.contentType)
|
|
||||||
n, records = execute_sql_kodi(sql, params, conn)
|
|
||||||
|
|
||||||
def set_genre(self):
|
|
||||||
genres = self.info.get('genre','').split(', ')
|
|
||||||
if genres:
|
|
||||||
for genre in genres:
|
|
||||||
sql = 'select genre_id from genre where name = "{}"'.format(genre)
|
|
||||||
n, records = execute_sql_kodi(sql, conn=conn)
|
|
||||||
if records:
|
|
||||||
_id = records[0][0]
|
|
||||||
else:
|
|
||||||
_id = get_id('genre_id', 'genre')
|
|
||||||
sql = 'INSERT OR IGNORE INTO genre (genre_id, name) VALUES (?, ?)'
|
|
||||||
params = (_id, genre)
|
|
||||||
n, records = execute_sql_kodi(sql, params, conn)
|
|
||||||
sql = 'INSERT OR IGNORE INTO genre_link (genre_id, media_id, media_type) VALUES (?, ?, ?)'
|
|
||||||
params = (_id, self.VideoId, self.item.contentType)
|
|
||||||
n, records = execute_sql_kodi(sql, params, conn)
|
|
||||||
|
|
||||||
def set_studio(self):
|
|
||||||
studios = self.info.get('studio','').split(', ')
|
|
||||||
if studios:
|
|
||||||
for studio in studios:
|
|
||||||
sql = 'select studio_id from studio where name = "{}"'.format(studio)
|
|
||||||
n, records = execute_sql_kodi(sql, conn=conn)
|
|
||||||
if records:
|
|
||||||
_id = records[0][0]
|
|
||||||
else:
|
|
||||||
_id = get_id('studio_id', 'studio')
|
|
||||||
sql = 'INSERT OR IGNORE INTO studio (studio_id, name) VALUES (?, ?)'
|
|
||||||
params = (_id, studio)
|
|
||||||
n, records = execute_sql_kodi(sql, params, conn)
|
|
||||||
sql = 'INSERT OR IGNORE INTO studio_link (studio_id, media_id, media_type) VALUES (?, ?, ?)'
|
|
||||||
params = (_id, self.VideoId, self.item.contentType)
|
|
||||||
n, records = execute_sql_kodi(sql, params, conn)
|
|
||||||
|
|
||||||
def set_movie(self):
|
def set_movie(self):
|
||||||
posters, fanarts = get_images(self.item)
|
posters, fanarts = get_images(self.item)
|
||||||
|
|||||||
Reference in New Issue
Block a user