54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from os import environ
|
|
from flask import Flask, request, render_template
|
|
from urllib.parse import urlparse
|
|
|
|
from .pg import query, select
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route('/')
|
|
def home():
|
|
if 'filter' in request.args:
|
|
messages = select(
|
|
'''
|
|
SELECT * FROM messages
|
|
WHERE from_url = :filter
|
|
OR to_url = :filter
|
|
ORDER BY date DESC
|
|
''',
|
|
filter=request.args['filter']
|
|
)
|
|
else:
|
|
messages = select(
|
|
'''
|
|
SELECT * FROM messages
|
|
ORDER BY date DESC
|
|
LIMIT 1000
|
|
'''
|
|
)
|
|
|
|
return render_template(
|
|
"home.html",
|
|
contacts=select(
|
|
'''
|
|
SELECT DISTINCT ON (url) url, name
|
|
FROM (
|
|
(
|
|
SELECT DISTINCT ON (from_url) from_url as url, from_name as name
|
|
FROM messages
|
|
ORDER BY url, date DESC
|
|
)
|
|
UNION
|
|
(
|
|
SELECT DISTINCT ON (to_url) to_url as url, to_name as name
|
|
FROM messages
|
|
ORDER BY url, date DESC
|
|
)
|
|
) as nested;
|
|
'''
|
|
),
|
|
messages=messages,
|
|
urlparse=urlparse,
|
|
)
|