scripts for my gemini capsule
Diffstat (limited to 'webp.py')
| -rwxr-xr-x | webp.py | 61 |
1 files changed, 61 insertions, 0 deletions
@@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +# pip3 install bible-passage-reference-parser +from bible import parse_string +import usfm2gmi.usfm2gmi as usfm2gmi +import os +import sys +import subprocess + +def printf(line): + if line.strip(): + print(usfm2gmi.convert(line), end=' ') + else: + print() + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +def main(qs): + if not qs: + print("10 Enter a scripture reference\r\n") + return + + passages = parse_string(qs) + # TODO: Also handle "john 3, tomato 2" errors? + if type(passages[0]) == tuple: + print("51 " + str(passages[0][0]) + "'\r\n") + return + print("20 text/gemini\r\n") + print('=>https://ebible.org/find/details.php?id=engwebp&all=1 This content from World English Bible (public domain)') + print('=> gemini://gemini.zachdecook.com/usfm2gmi/ and rendered with usfm2gmi') + for passage in passages: + print("# " + passage.format()) + printing = 0 + bookabbrev=passage.start.format('a').upper() + fname = subprocess.check_output([f"find", "webp/", "-name", f'*-{bookabbrev}*']).strip() + eprint(fname) + f = open(fname) + startc = passage.start.chapter + startv= passage.start.verse + endc = passage.end.chapter + endv= passage.end.verse + endmark = passage.end.format('a c:v') + for line in f: + if f'\\c {startc} ' in line: + printing = 1 + if printing == 1 and (f'\\v {startv} ') in line: + printing =2 + if (f'\\c {endc} ') in line: + printing = 3 + if printing == 3 and (f'\\v {endv+1} ') in line: + printing =0 + if (f'\\c {endc+1} ') in line: + printing =0 + + if printing>=2: + printf(line) + print('(WEB)') #end in newline + +if __name__ == '__main__': + qs = os.getenv("QUERY_STRING") or (sys.argv[1] if len(sys.argv) >= 2 else '') + main(qs) |