Files
ComfyGallery/database/__pycache__/db_manager.cpython-312.pyc
T

104 lines
14 KiB
Plaintext
Raw Normal View History

2026-05-31 18:43:18 +08:00
Ë
®Œj“)ãópddlZddlmZddlmZmZmZmZddlm Z ddl
m Z ddl m
Z
mZmZGdd«Zy) éN)ÚPath)ÚOptionalÚListÚDictÚAny)Úcontextmanager)Úlogger)ÚPRAGMA_FOREIGN_KEYSÚCREATE_TABLES_SQLÚCREATE_INDEXES_SQLc
óeZdZddefdZed«ZdefdZddede e
de e
fd „Z dedefd
Z d e
d ed
ede
de
de e
f dZd
edefdZde
deeefdefdZddededeeeeffdZde
de eeeffdZde
dedede
def
dZy)Ú DBManagerÚdb_pathcó2||_|j«y©N)rÚ_initialize_db)Úselfrs ú:C:\Users\dimir\proects\ComfyGallery\database\db_manager.pyÚ__init__zDBManager.__init__ s؈Œ Ø ×ÑÕóc#óªKd} tj|j«}|jt«tj
|_| |r|j«yy#tj$r=}tjd|jd|«|r|j«d}~wwxYw#|r|j«wwxYw­w)Nu*Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð‘Ð” ú: ) Úsqlite3ÚconnectrÚexecuter
ÚRowÚ row_factoryÚErrorr ÚerrorÚrollbackÚclose)rÚconnÚes rÚ_get_connectionzDBManager._get_connectionèø€àˆð Ü—?‘? 4§<¡<Ó0ˆ L‰LÔ &Ÿ{™{ˆ ØØ
ðøô
}‰}ò Ü L‰LÐEÀdÇlÁlÀ^ÐSUÐVWÐUXÐ Ø
Ø ûð  ûñ Ø
ðüs5C†A
A(ÁCÁ(B8Á;8B3Â3B8Â8B;Â;CÃCÚreturncóV |j«5}|j«}|jt«|jt«|j « ddd«y#1swYyxYw#t j$r"}tjd|«Yd}~yd}~wwxYw)NTuEКритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° инициализации БД: F)
r$ÚcursorÚ
executescriptr r Úcommitrrr Úcritical)rr"r'r#s rrzDBManager._initialize_db s„ð Ø×'¨4ØŸØ×$Ô%6Ô×$Ô%7Ô
Ø÷ (×'ûô }‰}ò Ü O‰OÐcÐdeÐcfÐ ûð ús5A3A A'ÁA3Á'A0Á,A3Á0A3Á3B(ÂB#Â#B( folder_pathÚ parent_idcó|sytt|«j«j««} |j «5}|j «}|j
d||f«|j«}|s#|j
d|f«|j«}|j«|r|dndcddd«S#1swYyxYw#tj$r%}tjd|d|«Yd}~yd}~wwxYw)Nz}INSERT INTO folders (path, parent_id) VALUES (?, ?) ON CONFLICT(path) DO UPDATE SET parent_id=excluded.parent_id RETURNING idz%SELECT id FROM folders WHERE path = ?ru4Ошибка при добавлении папки r©
ÚstrrÚresolveÚas_posixr$r'rÚfetchoner)rrr r)rr+r,Únormalized_pathr"r'Úresultr#s rÚ
add_folderzDBManager.add_folder,ÙØÜœd ;Óð Ø×'¨4ØŸØð`à$ iÐð
 ŸÓ*ÙØ—N‘NÐ#JÈ_ÐL^Ô#Ÿ_™_Ó.
Ù$*v˜a÷(×'ûô}‰}ò Ü L‰LÐOÐP_ÐO`Ð`bÐcdÐbeÐ ûð ús6µC
ÁA2CÂ7 C
ÃC
ÃC
Ã
C
Ã
DÃ DÄDcóªtt|«j«j««} |j «5}|j «}|j
d|f«|j«|jdkDcddd«S#1swYyxYw#tj$r%}tjd|d|«Yd}~yd}~wwxYw)Nz"DELETE FROM folders WHERE path = ?ru0Ошибка при удалении папки õ из БД: F©
r/rr0r1r$r'rr)Úrowcountrrr r)rr+r3r"r'r#s rÚremove_folder_by_pathzDBManager.remove_folder_by_pathBÜœd ð Ø×'¨4ØŸØÐCÀoÐEWÔ
بÑ(×'ûô
}‰}ò Ü L‰LÐKÈOÐK\Ð\hÐijÐhkÐ ûð úó6²BÁABÂ BÂBÂBÂBÂCÂ-C
Ã
CÚ folder_idÚfilenameÚfilepathÚsizeÚmtimec óÐ|r|sytt|«j«j««} |j «5}|j «}|j
d|||||f«|j«} |j«| r| dndcddd«S#1swYyxYw#tj$r%}
tjd|d|
«Yd}
~
yd}
~
wwxYw)Na
INSERT INTO files (folder_id, filename, filepath, size, mtime)
VALUES (?, ?, ?, ?, ?)
ON CONFLICT(filepath) DO UPDATE SET
size = excluded.size,
mtime = excluded.mtime,
folder_id = excluded.folder_id
RETURNING id
ru/Ошибка региÑтрации файла rr.) rr<r=r>r?r@Únormalized_filepathr"r'r4r#s rÚ
register_filezDBManager.register_fileNÙ™xØÜ!¤$ x£.×"8Ñ"8Ó":×"CÑ"CÓ"EÓð Ø×'¨4ØŸØðð Ð*=¸tÀUÐ ð ŸÓ*Ø
Ù$*v˜a÷!(×'ûô"}‰}ò Ü L‰LÐJÐK^ÐJ_Ð_aÐbcÐadÐ ûð ús6·B-ÁAB! B-Â!B*Â&B-Â*B-Â-C%ÃC à C%cóªtt|«j«j««} |j «5}|j «}|j
d|f«|j«|jdkDcddd«S#1swYyxYw#tj$r%}tjd|d|«Yd}~yd}~wwxYw)Nz$DELETE FROM files WHERE filepath = ?ru)Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° r7Fr8)rr>rBr"r'r#s rÚremove_file_by_pathzDBManager.remove_file_by_pathhÜ!¤$ x£.×"8Ñ"8Ó":×"CÑ"CÓ"EÓð Ø×'¨4ØŸØÐEÐH[ÐG]Ô
بÑ(×'ûô
}‰}ò Ü L‰LÐDÐEXÐDYÐYeÐfgÐehÐ ûð úr;Úfile_idÚ meta_payloadcóN |j«5}|j«}|jd||jd«|jd«|jd«|jd«|jd«|jd«|jd«|jd «|jd
«f
«|j « ddd«y #1swYyxYw#t
j $r%}tjd |d
|«Yd}~yd}~wwxYw)NaL
INSERT INTO metadata (
file_id, prompt_json, workflow_json, positive_prompt,
negative_prompt, seed, model_name, sampler, steps, cfg
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ON CONFLICT(file_id) DO UPDATE SET
prompt_json = excluded.prompt_json,
workflow_json = excluded.workflow_json,
positive_prompt = excluded.positive_prompt,
negative_prompt = excluded.negative_prompt,
seed = excluded.seed,
model_name = excluded.model_name,
sampler = excluded.sampler,
steps = excluded.steps,
cfg = excluded.cfg
Ú prompt_jsonÚ
workflow_jsonÚpositive_promptÚnegative_promptÚseedÚ
model_nameÚsamplerÚstepsÚcfgTuLОшибка при Ñохранении метаданных файла ID rF) r$r'rÚgetr)rrr r)rrFrGr"r'r#s rÚ
save_metadatazDBManager.save_metadatatsð% Ø×'¨4ØŸØðð" Ø$×ÓÓ(Ð):Ó$×(Ð):Ó$×ÓÓÓÓÓ ô#ð<
Ø÷C(×'ûôD}‰}ò Ü L‰LÐgÐhoÐgpÐprÐstÐruÐ ûð ús5C,CC ÃC,à C)Ã%C,Ã)C,Ã,D$Ã?DÄD$Ú search_querycótt|«j«j««} |j «5}|j «}|rd|d}|j
d||||f«n|j
d|f«|j«Dcgc]
}t|«Œc}cddd«Scc}w#1swYyxYw#tj$r'}tjd|d|«gcYd}~Sd}~wwxYw)%a<
SELECT f.id, f.filename, f.filepath, f.rating, f.favorite,
CASE WHEN m.workflow_json IS NOT NULL AND m.workflow_json != '' THEN 1 ELSE 0 END as has_workflow
FROM files f
JOIN folders fo ON f.folder_id = fo.id
LEFT JOIN metadata m ON f.id = m.file_id
WHERE fo.path = ? AND (f.filename LIKE ? OR m.positive_prompt LIKE ? OR m.negative_prompt LIKE ?)