dotfiles

Repositório dotfiles
git clone git://git.sivaldodavi.com/dotfiles.git
Log | Files | Refs | README

commit 52e434b3e351fffec2335ae3698aa1ff03275f1f
parent e7c870cf962cc5a5d81e0aa82dda60d1ff84c367
Author: Sivaldo <gxixtx@xsxixvxaxlxdxoxdxaxvxix.xcxoxm>
Date:   Mon, 10 Aug 2026 15:51:21 -0300

feat(culto): migra fonte de dados da Bíblia para json e suporta abreviações

Diffstat:
M.local/bin/culto | 35++++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/.local/bin/culto b/.local/bin/culto @@ -5,7 +5,7 @@ # ============================================================================== CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}" -BIBLE_FILE="$CACHE_DIR/biblia" +BIBLE_FILE="$CACHE_DIR/biblia.json" MUSICAS_FILE="$CACHE_DIR/musicas.json" PIX_FILE="$CACHE_DIR/pix-igreja.png" AGENDA_FILE="$CACHE_DIR/agenda.jpeg" @@ -53,7 +53,7 @@ _ensure_bible() { _bible_python() { BIBLE_FILE="$BIBLE_FILE" python3 - "$@" <<'PYEOF' -import os, re, sys, signal +import os, re, sys, signal, json # Ignora erro de Broken Pipe quando pipeamos pro fzf ou less signal.signal(signal.SIGPIPE, signal.SIG_DFL) @@ -71,15 +71,24 @@ def vermelho(t): return _c("1;31", t) def load_bible(): verses = [] with open(BIBLE_FILE, encoding="utf-8") as f: - for line in f: - line = line.strip() - if not line or line in ("ERV", "English Revised Version"): - continue - m = re.match(r"^([\w\s]+)\s+(\d+):(\d+)\t(.+)$", line) - if m: - book, chapter, verse, text = m.groups() - verses.append({"book": book, "chapter": int(chapter), - "verse": int(verse), "text": text}) + data = json.load(f) + for book_obj in data: + book_name = book_obj.get("name", "") + book_abbrev = book_obj.get("abbrev", "") + + for cap_idx, chapter in enumerate(book_obj.get("chapters", [])): + cap_num = cap_idx + 1 + + for vers_idx, text in enumerate(chapter): + vers_num = vers_idx + 1 + + verses.append({ + "book": book_name, + "abbrev": book_abbrev, + "chapter": cap_num, + "verse": vers_num, + "text": text + }) return verses def parse_ref(query, verses): @@ -97,13 +106,13 @@ def parse_ref(query, verses): else: v1 = v2 = int(vrs_part) return [v for v in verses - if v["book"].lower().startswith(book.lower()) + if (v["book"].lower().startswith(book.lower()) or v["abbrev"].lower() == book.lower()) and v["chapter"] == cap_num and v1 <= v["verse"] <= v2] else: cap_num = int(num) if num.isdigit() else 0 return [v for v in verses - if v["book"].lower().startswith(book.lower()) + if (v["book"].lower().startswith(book.lower()) or v["abbrev"].lower() == book.lower()) and (cap_num == 0 or v["chapter"] == cap_num)] except ValueError: return []