52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
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()
|