fix: compat trilium-py 0.7 (attributeId), stub magic sans libmagic, requirements figes
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
"""Stub magic — trilium_py importe ce module pour deviner les types MIME
|
||||
lors des uploads de fichiers, fonctionnalité que le MCP n'utilise pas.
|
||||
libmagic (bibliothèque C) est absente de DSM et non installable par pip
|
||||
sur ARM64. Ce stub satisfait l'import sans la lib native."""
|
||||
|
||||
|
||||
def from_buffer(buffer, mime=False):
|
||||
return "application/octet-stream" if mime else "data"
|
||||
|
||||
|
||||
def from_file(filename, mime=False):
|
||||
return "application/octet-stream" if mime else "data"
|
||||
|
||||
|
||||
class Magic:
|
||||
def __init__(self, *args, **kwargs):
|
||||
pass
|
||||
|
||||
def from_buffer(self, buffer):
|
||||
return "application/octet-stream"
|
||||
|
||||
def from_file(self, filename):
|
||||
return "application/octet-stream"
|
||||
@@ -0,0 +1,27 @@
|
||||
anyio==4.5.2
|
||||
beautifulsoup4==4.15.0
|
||||
certifi==2026.6.17
|
||||
charset-normalizer==3.4.9
|
||||
click==8.1.8
|
||||
exceptiongroup==1.3.1
|
||||
h11==0.16.0
|
||||
idna==3.15
|
||||
loguru==0.7.3
|
||||
markdown2==2.5.1
|
||||
minify_html==0.18.1
|
||||
natsort==8.4.0
|
||||
Pygments==2.19.2
|
||||
python-dotenv==1.0.1
|
||||
python-multipart==0.0.20
|
||||
PyYAML==6.0.3
|
||||
requests==2.32.4
|
||||
six==1.17.0
|
||||
sniffio==1.3.1
|
||||
soupsieve==2.7
|
||||
starlette==0.44.0
|
||||
svgwrite==1.4.3
|
||||
trilium-py==0.7.0
|
||||
typing_extensions==4.13.2
|
||||
urllib3==2.2.3
|
||||
uvicorn==0.33.0
|
||||
wavedrom==2.0.3.post3
|
||||
+3
-2
@@ -2,6 +2,7 @@
|
||||
trilium_api.py — Wrapper trilium-py pour TriliumNext 0.95+
|
||||
Tous les autres scripts importent depuis ce module uniquement.
|
||||
"""
|
||||
import secrets
|
||||
import os
|
||||
from typing import Optional
|
||||
from dotenv import load_dotenv
|
||||
@@ -114,7 +115,7 @@ def set_label(note_id: str, name: str, value: str = ""):
|
||||
if existants:
|
||||
ea.patch_attribute(attributeId=existants[0].get("attributeId"), value=value)
|
||||
else:
|
||||
ea.create_attribute(noteId=note_id, type="label",
|
||||
ea.create_attribute(attributeId=secrets.token_hex(6), noteId=note_id, type="label",
|
||||
name=name, value=value, isInheritable=False)
|
||||
|
||||
def get_label_value(note_id: str, name: str) -> Optional[str]:
|
||||
@@ -220,7 +221,7 @@ def add_relation_safe(source_id, nom, cible_id):
|
||||
if a.get("type") == "relation" and a.get("name") == nom and a.get("value") == cible_id:
|
||||
return (True, "Relation deja presente: %s ~%s %s" % (source_id, nom, cible_id))
|
||||
try:
|
||||
_ea().create_attribute(noteId=source_id, type="relation",
|
||||
_ea().create_attribute(attributeId=secrets.token_hex(6), noteId=source_id, type="relation",
|
||||
name=nom, value=cible_id, isInheritable=False)
|
||||
except Exception as e:
|
||||
return (False, "Echec creation relation: %s" % e)
|
||||
|
||||
Reference in New Issue
Block a user