chore: save WIP before importing Document-AI subtree

This commit is contained in:
hyungi
2025-08-13 08:38:30 +09:00
parent 4c81686657
commit 9c70d3e8a1
9 changed files with 154 additions and 11 deletions

View File

@@ -9,6 +9,14 @@ class PaperlessClient:
def __init__(self, base_url: str | None = None, token: str | None = None) -> None:
self.base_url = (base_url or os.getenv("PAPERLESS_BASE_URL", "")).rstrip("/")
self.token = token or os.getenv("PAPERLESS_TOKEN", "")
verify_env = os.getenv("PAPERLESS_VERIFY_SSL", "true").lower().strip()
ca_bundle = os.getenv("PAPERLESS_CA_BUNDLE", "").strip()
if ca_bundle:
self.verify: Any = ca_bundle
elif verify_env in ("0", "false", "no"):
self.verify = False
else:
self.verify = True
def _headers(self) -> Dict[str, str]:
headers: Dict[str, str] = {"Accept": "application/json"}
@@ -20,7 +28,7 @@ class PaperlessClient:
if not self.base_url:
raise RuntimeError("PAPERLESS_BASE_URL not configured")
url = f"{self.base_url}/api/documents/{doc_id}/"
resp = requests.get(url, headers=self._headers(), timeout=60)
resp = requests.get(url, headers=self._headers(), timeout=60, verify=self.verify)
resp.raise_for_status()
return resp.json()
@@ -30,7 +38,7 @@ class PaperlessClient:
# Try content endpoint
url_content = f"{self.base_url}/api/documents/{doc_id}/content/"
try:
r = requests.get(url_content, headers=self._headers(), timeout=60)
r = requests.get(url_content, headers=self._headers(), timeout=60, verify=self.verify)
if r.status_code == 200 and r.text:
return r.text
except Exception:
@@ -38,7 +46,7 @@ class PaperlessClient:
# Try txt download
url_txt = f"{self.base_url}/api/documents/{doc_id}/download/?format=txt"
try:
r = requests.get(url_txt, headers=self._headers(), timeout=60)
r = requests.get(url_txt, headers=self._headers(), timeout=60, verify=self.verify)
if r.status_code == 200 and r.text:
return r.text
except Exception:
@@ -56,7 +64,7 @@ class PaperlessClient:
if query:
params["query"] = query
url = f"{self.base_url}/api/documents/"
resp = requests.get(url, headers=self._headers(), params=params, timeout=60)
resp = requests.get(url, headers=self._headers(), params=params, timeout=60, verify=self.verify)
resp.raise_for_status()
return resp.json()