4b9df132d7
FTP/SFTP processor: - New ftp_processor.py with adapter pattern for FTP (passive) and SFTP - Same design as smb_processor: read PDFs, forward via SMTP, move to processed - Eingangs-/Ausgangsbelege with separate paths, modes (forward/separator) - paramiko==3.5.0 for SFTP support - Schema v9 with new ftp_* settings - Integrated in scheduler Tree-view folder picker (SMB + FTP): - Reusable tree rendering from flat path lists - Expandable/collapsible nodes with toggle arrows - Lazy loading: only top-level folders on open, sub-folders on-demand - Auto-expand ancestors of currently selected value (with preload) - Reload button stays for manual refresh - Always fresh load when opening picker - New endpoints: /api/list-smb-subfolders, /api/list-ftp-subfolders FTP-specific fixes: - list_pdfs uses LIST instead of NLST (more reliable across servers) - Stateful CWD bug fixed in ensure_dir/stat_exists/rename (previously created /Buch/Buch/X instead of /Buch/X due to CWD drift) - All operations reset CWD via _reset_cwd() before stateful calls - _resolve() helper for SFTP to handle empty path / chroot users Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
19 lines
317 B
Plaintext
19 lines
317 B
Plaintext
fastapi==0.115.6
|
|
uvicorn==0.34.0
|
|
jinja2==3.1.5
|
|
python-multipart==0.0.20
|
|
aiosqlite==0.20.0
|
|
apscheduler==3.11.0
|
|
cryptography==44.0.0
|
|
pypdf==5.1.0
|
|
Pillow==11.1.0
|
|
pyzbar==0.1.9
|
|
PyMuPDF==1.25.3
|
|
qrcode==8.0
|
|
sse-starlette==2.2.1
|
|
smbprotocol==1.14.0
|
|
paramiko==3.5.0
|
|
playwright==1.49.1
|
|
playwright-stealth==2.0.2
|
|
httpx==0.28.1
|