f
This commit is contained in:
@@ -1858,6 +1858,51 @@ class API_folder_store:
|
|||||||
return None
|
return None
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_notes(self, file_hash: str) -> Dict[str, str]:
|
||||||
|
"""Return all named notes for a file hash."""
|
||||||
|
normalized_hash = str(file_hash or "").strip().lower()
|
||||||
|
if len(normalized_hash) != 64:
|
||||||
|
return {}
|
||||||
|
|
||||||
|
notes: Dict[str, str] = {}
|
||||||
|
max_attempts = 5
|
||||||
|
import time
|
||||||
|
|
||||||
|
for attempt in range(max_attempts):
|
||||||
|
try:
|
||||||
|
with self._with_db_lock():
|
||||||
|
cursor = self.connection.cursor()
|
||||||
|
cursor.execute(
|
||||||
|
"SELECT name, note FROM note WHERE hash = ?",
|
||||||
|
(normalized_hash,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
rows = cursor.fetchall() or []
|
||||||
|
for row in rows:
|
||||||
|
note_name = str(row[0] or "").strip()
|
||||||
|
if not note_name:
|
||||||
|
continue
|
||||||
|
notes[note_name] = str(row[1] or "")
|
||||||
|
return notes
|
||||||
|
except sqlite3.OperationalError as e:
|
||||||
|
msg = str(e or "").lower()
|
||||||
|
if "database is locked" in msg and attempt < (max_attempts - 1):
|
||||||
|
sleep_time = min(0.1 * (2 ** attempt), 1.0)
|
||||||
|
time.sleep(sleep_time)
|
||||||
|
continue
|
||||||
|
logger.error(
|
||||||
|
f"Error getting notes for hash {file_hash}: {e}",
|
||||||
|
exc_info=True
|
||||||
|
)
|
||||||
|
return {}
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(
|
||||||
|
f"Error getting notes for hash {file_hash}: {e}",
|
||||||
|
exc_info=True
|
||||||
|
)
|
||||||
|
return {}
|
||||||
|
return {}
|
||||||
|
|
||||||
def set_note_by_hash(self, file_hash: str, name: str, note: str) -> None:
|
def set_note_by_hash(self, file_hash: str, name: str, note: str) -> None:
|
||||||
"""Set a named note using a known file hash (no re-hash)."""
|
"""Set a named note using a known file hash (no re-hash)."""
|
||||||
note_name = str(name or "").strip()
|
note_name = str(name or "").strip()
|
||||||
|
|||||||
Reference in New Issue
Block a user