from flask import Flask, request, render_template, send_file import json from io import BytesIO import zipfile from bs4 import BeautifulSoup import requests app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): reference = '' version = '' verse = '' error = 'No 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': 'nrsv', 'NIV': 'niv', 'NLT': 'nlt' }.get(version) if bible_id and reference: # ESV API endpoint url = f'https://api.esv.org/v2/verse?verse={reference}&bible={bible_id}' webfriendlyref=reference.replace(' ','%20').replace(':','%3A') url = f'https://www.biblegateway.com/passage/?search={webfriendlyref}&version={bible_id}' print(url) try: response = requests.get(url) #response.raise_for_status() verse = response.text except request.RequestException as e: error = f"Error fetching from Bible Gateway: {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()