← ClaudeAtlas

arabiclisted

Find and download an Arabic Islamic book by name (English transliteration or Arabic script) into a local PDF library. Compares all known OpenITI editions of the work, uses editor/publisher metadata plus a web search to judge which edition is most reliable, downloads that one (or asks if it's a close call), falls back to Archive.org, and only as a last resort offers to convert a Shamela app file the user already has locally.
anasnadeem30/claude-arabic-library · ★ 0 · Data & Documents · score 75
Install: claude install-skill anasnadeem30/claude-arabic-library
# /arabic — find & fetch the best edition of an Arabic Islamic book Backing tool location: `~/.claude/tools/arabic-library` (installed by this project's install script — see the repo README). Resolve `~` to the actual home directory for the current OS before running anything: - Windows PowerShell: `$env:USERPROFILE` - macOS/Linux: `$HOME` Always run commands with cwd set to that install directory. For the Python interpreter, try in order: `python`, then `python3`, then (Windows only) `py`. Use whichever one actually resolves on this machine. ## Scope (do not deviate from this) 1. **OpenITI first** — a CC0/public-domain corpus, safe to fetch freely. 2. **Archive.org second** — public API, only items already hosted as PDFs there. 3. **Local Shamela conversion — last resort only, and only from a file the user already has on disk.** Never fetch anything from shamela.ws or any Shamela server over the network. If the book isn't in OpenITI or Archive.org, ask the user whether they already have it downloaded in their official Shamela app, and if so, ask for the path to that `.db`/`.sqlite` file to convert. Do not attempt to scrape or download it from Shamela yourself. ## Procedure **1. Resolve what the user means.** Take whatever the user typed after `/arabic` (English transliteration, full Arabic title, author name, or a rough/partial name). Run: ``` python -m arabic_books search "<their text, as given>" ``` If that returns nothing useful, retry with varia