fix: error when fetching tags for above 1000 songs #102
This commit is contained in:
parent
457f1c691f
commit
ca6e613616
15
database.py
15
database.py
@ -258,12 +258,19 @@ class MusicDatabase:
|
|||||||
return self._result_to_dict(results)
|
return self._result_to_dict(results)
|
||||||
|
|
||||||
def query_tags_by_ids(self, ids):
|
def query_tags_by_ids(self, ids):
|
||||||
condition_str = " OR ".join(['id=?'] * len(ids))
|
|
||||||
|
|
||||||
conn = sqlite3.connect(self.db_path)
|
conn = sqlite3.connect(self.db_path)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
results = cursor.execute("SELECT id, tags FROM music "
|
results = []
|
||||||
"WHERE %s" % condition_str, ids).fetchall()
|
|
||||||
|
for i in range(int(len(ids)/990) + 1):
|
||||||
|
condition_str = " OR ".join(['id=?'] * min(990, len(ids) - i*990))
|
||||||
|
|
||||||
|
_results = cursor.execute("SELECT id, tags FROM music "
|
||||||
|
"WHERE %s" % condition_str,
|
||||||
|
ids[i*990: i*990 + min(990, len(ids) - i*990)]).fetchall()
|
||||||
|
if _results:
|
||||||
|
results.extend(_results)
|
||||||
|
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
lookup = {}
|
lookup = {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user