forgor linux allows like \ and ' in filenames
This commit is contained in:
parent
57fa326da6
commit
d5017045b7
|
|
@ -44,6 +44,7 @@ class ExportService():
|
||||||
re_re: path substitution (if necessary); real folder structure component.
|
re_re: path substitution (if necessary); real folder structure component.
|
||||||
"""
|
"""
|
||||||
a = ExportService.get_annotations(db, user_id, re_nav, re_re)
|
a = ExportService.get_annotations(db, user_id, re_nav, re_re)
|
||||||
|
print(f"Fetched {len(a)} annotations from db!")
|
||||||
ExportService.write_annotations(a)
|
ExportService.write_annotations(a)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -112,6 +113,7 @@ class ImportService():
|
||||||
re_re: path substitution (if necessary); real folder structure component.
|
re_re: path substitution (if necessary); real folder structure component.
|
||||||
"""
|
"""
|
||||||
a = ImportService.get_annotations(path, re_nav, re_re)
|
a = ImportService.get_annotations(path, re_nav, re_re)
|
||||||
|
print(f"Read {len(a)} annotations from files!")
|
||||||
ImportService.write_annotations(a, db, user_id)
|
ImportService.write_annotations(a, db, user_id)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -129,6 +131,7 @@ class ImportService():
|
||||||
realpath = os.path.realpath(path)
|
realpath = os.path.realpath(path)
|
||||||
annos = {}
|
annos = {}
|
||||||
|
|
||||||
|
print(f"Reading files (this may take a while)...")
|
||||||
for dir,_,files in os.walk(realpath):
|
for dir,_,files in os.walk(realpath):
|
||||||
for mp3_file in files:
|
for mp3_file in files:
|
||||||
if mp3_file.endswith('.mp3'):
|
if mp3_file.endswith('.mp3'):
|
||||||
|
|
@ -169,7 +172,8 @@ class ImportService():
|
||||||
conn = sqlite3.connect(db)
|
conn = sqlite3.connect(db)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
# step 1: fetch path and item_id for existing annotations WHERE path IN annos.paths
|
# step 1: fetch path and item_id for existing annotations WHERE path IN annos.paths
|
||||||
cursor.execute(f"""SELECT path,id FROM media_file WHERE path IN ('{"','".join([ re.sub(re_re, re_nav, k) for k in annos.keys()])}')""")
|
escaped = "','".join([ re.sub(r'\\', r'\\\\', re.sub("'", "''", re.sub(re_re, re_nav, k))) for k in annos.keys()])
|
||||||
|
cursor.execute(f"""SELECT path,id FROM media_file WHERE path IN ('{escaped}')""")
|
||||||
|
|
||||||
# step 2: create list with item_ids
|
# step 2: create list with item_ids
|
||||||
items = []
|
items = []
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue