-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
81 lines (69 loc) · 4.12 KB
/
Copy pathconfig.example.yaml
File metadata and controls
81 lines (69 loc) · 4.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# config.example.yaml — copy to config.yaml and fill in YOUR OWN values.
# cp config.example.yaml config.yaml
# config.yaml is git-ignored. Credentials are NEVER in this file — they live in a local
# secret store (see README: LIB_USER / LIB_PASS / *_TDM_KEY via DPAPI on Windows).
#
# This project ships NO institution's access. You supply your own library's endpoints
# (ask your librarian / find them in your library portal) and your own account.
# Your email — required by the Unpaywall API (free, just an identifier). REQUIRED for OA.
unpaywall_email: ""
# Optional: a local sqlite DB (table `papers(doi, oa_pdf_url)`) for an extra OA fallback.
paper_radar_db: ""
# Optional but recommended: your library's holdings table (journal → platform → coverage
# years), built from its A–Z e-journal list. This is what tells you "no entitlement to this
# article" apart from "the route is broken" — see docs/holdings.md for the 6-column schema.
# Blank = holdings.sqlite next to holdings.py, if present; no table at all = checks skipped.
holdings_db: ""
institution:
# Your library's link resolver (SFX / other OpenURL resolver). Find it in your library
# portal → e-resources → link resolver. {doi} is substituted at runtime. Leave blank to
# skip printing a resolver link. Example shape (NOT a real endpoint):
# sfx_base: "https://YOUR-SFX-HOST/YOUR-INSTANCE?sid=Claude&id=doi:{doi}"
sfx_base: ""
# Your library's off-campus remote-auth gate (the login page for reading full text from
# home). Only needed for the institutional proxy path (library_session.py).
# remote_auth_base: "https://YOUR-REMOTE-AUTH-HOST"
remote_auth_base: ""
# Your EZproxy/NetScaler proxy suffix (host[:port]) appended to the dash-rewritten
# publisher host, e.g. onlinelibrary-wiley-com.<proxy_suffix>. Ask your librarian.
# proxy_suffix: "YOUR-PROXY-HOST:PORT"
proxy_suffix: ""
auth:
# How library_session.py logs into your remote-auth gate.
# form — a plain login form (EZproxy, Django/NetScaler portals). Works out of the
# box once the selectors below match your gate's login page (inspect it in
# your browser's devtools).
# custom — SSO redirect chains (OpenAthens / Shibboleth): implement login() yourself;
# see docs/library-setup.md.
family: "form"
# Path of the login form, relative to institution.remote_auth_base.
# Django-style gates: "/login/" EZproxy: "/login"
login_path: "/login/"
# CSS selectors for the form fields. Defaults fit a Django-style gate; EZproxy's stock
# form is: user "input[name='user']", pass "input[name='pass']".
user_selector: "#id_username"
pass_selector: "#id_password"
submit_selector: "form button[type='submit'], form input[type='submit']"
# Numeric-CAPTCHA support (common on Django-style gates). Leave ALL THREE blank if your
# gate has no CAPTCHA — the flow degrades to plain fill+submit (the EZproxy case).
# captcha_image_path may contain {hashkey}, filled from captcha_hashkey_selector's value.
captcha_selector: "" # e.g. "#id_captcha_value"
captcha_hashkey_selector: "" # e.g. "#hashkey"
captcha_image_path: "" # e.g. "/captcha/image/{hashkey}@2/"
# Session cookies to persist across runs (they are session-only in the browser, so they
# are saved to your secret store after login and re-injected next run). Map of cookie
# name -> exact cookie domain — find them in devtools after logging in: the session
# cookie on the remote-auth host, and the proxy-authorization cookie (often wildcarded
# on the parent domain). Empty {} = a generic default derived from remote_auth_base.
persist_cookies: {}
# e.g.
# persist_cookies:
# sessionid: "gate.your-university.edu"
# proxy-auth: ".your-university.edu"
rate:
# Courtesy delay (seconds) between proxy requests. 0 DISABLES it and prints a warning.
# Systematic/bulk download can get your whole institution's IP blocked — keep this on.
min_interval_s: 15
# Your email/handle — sent as a contact User-Agent on direct API routes so publishers
# can distinguish individual research use from systematic scraping.
contact: ""