modify scripts
This commit is contained in:
@ -165,7 +165,10 @@ class JavbusDBHandler(DatabaseHandler):
|
||||
return None
|
||||
|
||||
def insert_movie_index(self, data, **kwargs):
|
||||
fields = ['uncensored', 'from_actor_list', 'from_movie_studios', 'from_movie_labels', 'from_movie_series']
|
||||
fields = [
|
||||
'uncensored', 'from_actor_list', 'from_movie_studios', 'from_movie_labels', 'from_movie_series',
|
||||
'studio_id', 'label_id', 'series_id'
|
||||
]
|
||||
# 如果没有传入值,就用原来的值
|
||||
for field in fields:
|
||||
if kwargs.get(field) is not None:
|
||||
@ -430,3 +433,88 @@ class JavbusDBHandler(DatabaseHandler):
|
||||
logging.error("Error inserting movie: %s", e)
|
||||
return None
|
||||
|
||||
# 更新 studio / label / series 等的多语言
|
||||
def update_pubs_multilang(self, data, tbl, **filters):
|
||||
tbls = {'studio': self.tbl_name_studios, 'label':self.tbl_name_labels, 'series':self.tbl_name_series}
|
||||
if not tbls.get(tbl):
|
||||
logging.warning(f"wrong table. table: {tbl}")
|
||||
return None
|
||||
|
||||
return self.insert_or_update_common(data=data, tbl_name=tbls[tbl], uniq_key='href')
|
||||
|
||||
def query_list_common(self, tbl, **filters):
|
||||
tbls = {'studio': self.tbl_name_studios, 'label':self.tbl_name_labels, 'series':self.tbl_name_series}
|
||||
if not tbls.get(tbl):
|
||||
logging.warning(f"wrong table. table: {tbl}")
|
||||
return None
|
||||
try:
|
||||
sql = f"SELECT href, name, uncensored, id FROM {tbls[tbl]} WHERE 1=1"
|
||||
params = []
|
||||
|
||||
conditions = {
|
||||
"id": " AND id = ?",
|
||||
"href": " AND href = ?",
|
||||
"name": " AND name LIKE ?",
|
||||
"start_id": " AND id > ?",
|
||||
"uncensored": " AND uncensored = ?",
|
||||
}
|
||||
|
||||
for key, condition in conditions.items():
|
||||
if key in filters:
|
||||
sql += condition
|
||||
if key == "name":
|
||||
params.append(f"%{filters[key]}%")
|
||||
else:
|
||||
params.append(filters[key])
|
||||
|
||||
if "order_by" in filters:
|
||||
# 注意:这里 order by 后面直接跟字段名,不能用占位符,否则会被当作字符串处理
|
||||
sql += f" ORDER BY {filters['order_by']} "
|
||||
|
||||
if 'limit' in filters:
|
||||
sql += " LIMIT ?"
|
||||
params.append(filters["limit"])
|
||||
|
||||
self.cursor.execute(sql, params)
|
||||
return [{'href': row[0], 'name': row[1], 'uncensored': row[2], 'id':row[3]} for row in self.cursor.fetchall()]
|
||||
except sqlite3.Error as e:
|
||||
logging.error(f"查询 href 失败: {e}")
|
||||
return None
|
||||
|
||||
def update_tags(self, data):
|
||||
return self.insert_or_update_common(data, self.tbl_name_tags, uniq_key='href')
|
||||
|
||||
def query_tags(self, **filters):
|
||||
try:
|
||||
sql = f"SELECT href, name, id FROM {self.tbl_name_tags} WHERE 1=1"
|
||||
params = []
|
||||
|
||||
conditions = {
|
||||
"id": " AND id = ?",
|
||||
"href": " AND href = ?",
|
||||
"name": " AND name LIKE ?",
|
||||
"start_id": " AND id > ?",
|
||||
}
|
||||
|
||||
for key, condition in conditions.items():
|
||||
if key in filters:
|
||||
sql += condition
|
||||
if key == "name":
|
||||
params.append(f"%{filters[key]}%")
|
||||
else:
|
||||
params.append(filters[key])
|
||||
|
||||
if "order_by" in filters:
|
||||
# 注意:这里 order by 后面直接跟字段名,不能用占位符,否则会被当作字符串处理
|
||||
sql += f" ORDER BY {filters['order_by']} "
|
||||
|
||||
if 'limit' in filters:
|
||||
sql += " LIMIT ?"
|
||||
params.append(filters["limit"])
|
||||
|
||||
self.cursor.execute(sql, params)
|
||||
return [{'href': row[0], 'name': row[1], 'id': row[2]} for row in self.cursor.fetchall()]
|
||||
except sqlite3.Error as e:
|
||||
logging.error(f"查询 href 失败: {e}")
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user