diff --git a/app/emojos.py b/app/emojos.py
index 5de4af3..15c5c81 100644
--- a/app/emojos.py
+++ b/app/emojos.py
@@ -13,76 +13,93 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-import botocore.session
import operator
-import requests
-import serverless_wsgi
import urllib.parse
+import botocore.session
+import requests
+import serverless_wsgi
from flask import Flask, redirect, render_template, request, url_for
app = Flask(__name__)
+
class ForbiddenEndpointError(Exception):
pass
-@app.route('/')
+
+@app.route("/")
def emojo(domain):
- if request.args.get('show_all', '') == 'on':
+ if request.args.get("show_all", "") == "on":
show_all = True
else:
show_all = False
- if request.args.get('show_animated', '') == 'on':
+ if request.args.get("show_animated", "") == "on":
show_animated = True
else:
show_animated = False
try:
- url = urllib.parse.urlunsplit(('https', domain, '/api/v1/custom_emojis', '', ''))
+ url = urllib.parse.urlunsplit(
+ ("https", domain, "/api/v1/custom_emojis", "", "")
+ )
response = requests.get(url)
if response.status_code == 401:
raise ForbiddenEndpointError
if show_all:
- emojo = sorted(response.json(), key=operator.itemgetter('shortcode'))
+ emojo = sorted(response.json(), key=operator.itemgetter("shortcode"))
else:
- emojo = sorted(filter(lambda x: x.get('visible_in_picker', True), response.json()),
- key=operator.itemgetter('shortcode'))
- return render_template('emojo.html', domain=domain, emojo=emojo, show_animated=show_animated)
- except requests.exceptions.RequestException as e:
- return render_template('oh_no.html', domain=domain)
+ emojo = sorted(
+ filter(lambda x: x.get("visible_in_picker", True), response.json()),
+ key=operator.itemgetter("shortcode"),
+ )
+ return render_template(
+ "emojo.html", domain=domain, emojo=emojo, show_animated=show_animated
+ )
+ except requests.exceptions.RequestException:
+ return render_template("oh_no.html", domain=domain)
except ForbiddenEndpointError:
- return render_template('forbidden.html', domain=domain)
+ return render_template("forbidden.html", domain=domain)
-@app.route('/favicon.ico')
-@app.route('/robots.txt')
+@app.route("/favicon.ico")
+@app.route("/robots.txt")
def no_content():
- return ('', 204)
+ return ("", 204)
-@app.route('/code')
+@app.route("/code")
def code():
- context = request.environ.get('context')
+ context = request.environ.get("context")
session = botocore.session.get_session()
# region name is detected from lambda environment
- client = session.create_client('lambda')
- code = client.get_function(FunctionName=context.function_name, Qualifier=context.function_version)
- return redirect(code['Code']['Location'], code=303)
+ client = session.create_client("lambda")
+ code = client.get_function(
+ FunctionName=context.function_name, Qualifier=context.function_version
+ )
+ return redirect(code["Code"]["Location"], code=303)
-@app.route('/', methods=('GET', 'POST'))
+@app.route("/", methods=("GET", "POST"))
def index():
- if request.method == 'POST':
- if 'instance' in request.form:
- show_all = request.form.get('show_all')
- show_animated = request.form.get('show_animated')
+ if request.method == "POST":
+ if "instance" in request.form:
+ show_all = request.form.get("show_all")
+ show_animated = request.form.get("show_animated")
return redirect(
- url_for('emojo', domain=request.form['instance'], show_all=show_all, show_animated=show_animated))
+ url_for(
+ "emojo",
+ domain=request.form["instance"],
+ show_all=show_all,
+ show_animated=show_animated,
+ )
+ )
else:
- return redirect(url_for('index'))
+ return redirect(url_for("index"))
else:
- return render_template('index.html')
+ return render_template("index.html")
+
def handle_request(event, context):
return serverless_wsgi.handle_request(app, event, context)