Client local pentru biblindex.org — Index of Biblical Quotations in Early Christian Literature (HiSoMA / Sources Chrétiennes, Lyon). UI în limba română, caută citările patristice ale unui verset biblic, îmbogățește rezultatele cu link-uri directe la TLG_UC, Sources Chrétiennes, Migne PG, Patrologia Latina și fallback Archive.org.
Proiect neoficial, fără afiliere cu BiblIndex. Pentru date oficiale și export bulk:
biblindex@mom.fr.
- FastAPI + Jinja2 — backend + UI
- Playwright (Chromium) — drives formularul Symfony de pe biblindex.org (nu există API public)
- SQLite — cache rezultate (TTL 30 zile) + index local pentru cele 4 colecții externe
- Cookie import —
cf_clearance+PHPSESSIDdin browser real (Cloudflare Turnstile interactiv)
| Pentru fiecare citare BiblIndex, sistemul atașează automat | |
|---|---|
| 📄 TLG_UC | match autor + lucrare în 1467 PDF-uri grecești (126 autori) |
| 📜 Sources Chrétiennes | match SC NNN [bis/ter] în 555 PDF-uri |
| 📚 Migne PG | match PG NN în 169 volume (text HTML + scanuri JPG) |
| 📕 Patrologia Latina | match PL NN în 131 volume PDF OCR |
| 🌐 Archive.org | fallback când nimic local; folosește Advanced Search API |
| 🔎 Clavis | link-uri către Clavis Clavium, FourthCentury, TLG Canon, Wikipedia |
Plus: 76 cărți biblice mapate RO → variante BiblIndex (Vulgate-style); alias-uri RO → latină pentru autori (Ioan Hrisostom → John Chrysostom etc.); pagină /cookies pentru reîmprospătare automată sesiune când expiră Cloudflare.
git clone https://github.com/intelink/biblindex-ro.git ~/Documents/biblindex
cd ~/Documents/biblindex
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cp .env.example .env
$EDITOR .env # pune BIBLINDEX_USER + BIBLINDEX_PASS
# index local pentru cele 4 colecții externe (~5 minute)
python dalvalem.py refresh
python migne.py refreshbiblindex.org folosește Cloudflare Turnstile interactiv care nu poate fi trecut de Playwright. Soluție:
- Pe laptopul tău, browser normal (Chrome/FF), te loghezi pe biblindex.org → bifezi Cloudflare → te loghezi.
- F12 → Application → Cookies →
www.biblindex.org→ copiezi valorile pentrucf_clearance(.biblindex.org) șiPHPSESSID. - Pe server, accesezi
http://<server>:8920/cookies→ lipești în formular → Salvează.
Cookies-urile expiră periodic (cf_clearance ~ore, PHPSESSID ~zile); reia pașii când primești HTTP 502 pe căutare.
# Manual
uvicorn server:app --host 0.0.0.0 --port 8920
# sau ca serviciu systemd (autostart la boot)
sudo cp biblindex.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now biblindexUI: http://localhost:8920 · Cookies: http://localhost:8920/cookies · Diagnostic: http://localhost:8920/diag
| Endpoint | Descriere |
|---|---|
GET / |
UI în română |
GET /q?carte=&cap=&v=&v2=&autor= |
Caută citări (cache 30 zile) |
GET /carti |
Lista celor 76 cărți biblice |
GET /healthz |
Status serviciu |
GET /diag |
Stare sesiune Playwright |
GET /diag/screenshot |
Screenshot ultima eroare |
GET /dalvalem/stats |
Cifre globale colecții indexate |
GET /migne/pg?vol=11-17 |
Linkuri PG range |
GET /migne/pl?vol=32 |
Link PL volum |
GET /sc?vol=132 |
Link Sources Chrétiennes |
GET /archive?autor=&lucrare= |
Căutare directă archive.org |
POST /cookies/import |
Reîmprospătare sesiune |
Exemplu:
curl 'http://localhost:8920/q?carte=Ioan&cap=1&v=1' | jq '.total'
# 250- Formularul biblindex.org este la
/en/quotations/search(Symfony, secvențe dinamice + selecte cascadate AJAX). Codul forțeazăbible=Vulgate(id=2) pentru bookGroup uniform:Pentateuch / Prophetic Books / Other writings / Deuterocanonical books / New Testament. - Coloanele rezultatului: col1 = referință biblică, col2 = autor, col3 = lucrare (cu prefix numeric), col4 = ediție critică, col5 = referință în operă, col6 = tip (citation/allusion).
- Optimizare: după submit, se rescrie URL-ul cu
limit=200(default 50) ca să avem 4× mai puține pagini; default max 5 pagini = 1000 rezultate (configurabil cuBIBLINDEX_MAX_PAGES). .envNU acceptă inline-comments după=(limitare systemdEnvironmentFile).- Rate-limit voluntar 4s/cerere (configurabil cu
BIBLINDEX_RATE_LIMIT_SEC) — bază academică gestionată manual.
biblindex/
├── biblindex_lib.py # client Playwright (login + search + cache)
├── books.py # 76 cărți RO → variante BiblIndex + book_group()
├── dalvalem.py # crawler + lookup TLG_UC
├── migne.py # crawler + lookup PG/PL/SC
├── archive_org.py # wrapper Archive.org Search API
├── enrich.py # combină BiblIndex + toate sursele locale + Archive
├── import_cookies.py # CLI pentru import sesiune
├── server.py # FastAPI cu UI RO
├── login_vnc.py # helper pentru login interactiv via VNC
├── login_rdp.sh # helper pentru login din sesiune RDP
├── templates/
│ ├── index.html # UI principal
│ └── cookies.html # UI reîmprospătare sesiune
├── static/style.css
├── biblindex.service # unit systemd
├── requirements.txt
└── .env.example
MIT — vezi LICENSE.