Adhkar books, checked against the printed page.
Arabic, English and sources in JSON, SQLite and CSV. Free under CC BY-SA.
[٩٧] - (١)
«سُبْحَانَ اللهِ، وَبِحَمْدِهِ» (مِائَةَ مَرَّةٍ).
(١) م (٢٦٩١) عن أبي هريرة.
{
"id": "hisn-al-mumin:e0101",
"display_number": "97",
"printed_pages": [50],
"text": {
"en": "«Subhaanallaah (How perfect Allaah is), wa bihamdihi (and praise be to Him)» (one hundred times)."
}
}
Ways to use it
Same text and ids in every format.
Each version has its own address, and its files are frozen once published.
const url = "https://openadhkar.org/v1/collections/hisn-al-mumin/0.1.0/bundle.json";
const { entries } = await (await fetch(url)).json();
for (const e of entries) console.log(e.display_number, e.text.ar, e.text.en);
The bundle is plain JSON, so the standard library is enough.
import json, urllib.request
url = "https://openadhkar.org/v1/collections/hisn-al-mumin/0.1.0/bundle.json"
bundle = json.load(urllib.request.urlopen(url))
for e in bundle["entries"]:
print(e["display_number"], e["text"]["ar"], e["text"]["en"])
Fetch the files for a version and check them against the published checksums.
base=https://openadhkar.org/v1/collections/hisn-al-mumin/0.1.0
curl -O "$base/hisn-al-mumin.sqlite" -O "$base/bundle.json" -O "$base/SHA256SUMS"
shasum -a 256 -c SHA256SUMS --ignore-missing
The SQLite file works offline on Android, iOS and the web, with no conversion step.
SELECT e.display_number, e.text_ar, t.text AS text_en
FROM entries e
LEFT JOIN entry_translations t
ON t.entry_id = e.id AND t.language = 'en'
WHERE e.division_id = 'hisn-al-mumin:c032'
ORDER BY e.ord;
One row per entry, with Arabic, English, chapter and sources side by side. It opens directly in Excel, Numbers or Google Sheets.
curl -O https://openadhkar.org/v1/collections/hisn-al-mumin/0.1.0/hisn-al-mumin.csv
Columns: id, display_number, type, section_ar, section_en, chapter_ar, chapter_en, text_ar, text_en, citation_ar, citation_en, printed_pages.
How it's kept right
Four things every release does.
one format