biblegateway/app.py
2026-02-25 13:23:22 -08:00

53 lines
1.6 KiB
Python

from flask import Flask, request, render_template, send_file
import json
from io import BytesIO
import zipfile
from bs4 import BeautifulSoup
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
reference = ''
version = ''
verse = ''
error = ''
if request.method == 'POST':
reference = request.form.get('scripture_reference')
version = request.form.get('version')
# Map version to ESV Bible ID
bible_id = {
'NRSV': 'nrs',
'NIV': 'niv',
'NLT': 'nlt'
}.get(version)
if bible_id and reference:
# ESV API endpoint
api_key = 'YOUR_ESV_API_KEY' # Replace with your actual API key
url = f'https://api.esv.org/v2/verse?verse={reference}&bible={bible_id}&key={api_key}'
try:
response = request.get(url)
response.raise_for_status()
data = response.json()
if data['verses']:
verse = data['verses'][0]['text']
else:
error = "Verse not found."
except request.RequestException as e:
error = f"Error fetching verse: {str(e)}"
else:
error = "Please provide both a reference and a version."
# Print to stdout
print(f"Reference: {reference}, Version: {version}, Verse: {verse}, Error: {error}")
return render_template('index.html', reference=reference, version=version, verse=verse, error=error)
if __name__ == '__main__':
app.run()