Getting started on the API
parent
9de8883175
commit
787ab3895b
@ -0,0 +1,47 @@
|
|||||||
|
import flask as flask
|
||||||
|
from common import dateutil
|
||||||
|
from dateutil.parser import ParserError
|
||||||
|
from flask import request
|
||||||
|
|
||||||
|
app = flask.Flask('buscribe')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/buscribe/vtt')
|
||||||
|
def get_vtt():
|
||||||
|
"""Returns WebVTT subtitle file for the period between start_time and end_time."""
|
||||||
|
try:
|
||||||
|
start_time_string = request.args.get('start_time')
|
||||||
|
start_time = dateutil.parse(start_time_string)
|
||||||
|
except ParserError:
|
||||||
|
return "Invalid start time!", 400
|
||||||
|
except ValueError:
|
||||||
|
return "Missing start time!", 400
|
||||||
|
|
||||||
|
try:
|
||||||
|
end_time_string = request.args.get('end_time')
|
||||||
|
end_time = dateutil.parse(end_time_string)
|
||||||
|
except ParserError:
|
||||||
|
return "Invalid end time!", 400
|
||||||
|
except ValueError:
|
||||||
|
return "Missing end time!", 400
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/buscribe/json')
|
||||||
|
def get_json():
|
||||||
|
"""Searches the line database for *query*, with optional start_time and end_time boundaries.
|
||||||
|
|
||||||
|
Search is done using PostgreSQL websearch_to_tsquery() (https://www.postgresql.org/docs/13/functions-textsearch.html)"""
|
||||||
|
start_time_string = request.args.get('start_time')
|
||||||
|
try:
|
||||||
|
start_time = dateutil.parse(start_time_string)
|
||||||
|
except ParserError:
|
||||||
|
return "Invalid start time!", 400
|
||||||
|
|
||||||
|
end_time_string = request.args.get('end_time', default=None)
|
||||||
|
try:
|
||||||
|
end_time = dateutil.parse(end_time_string)
|
||||||
|
except ParserError:
|
||||||
|
return "Invalid end time!", 400
|
||||||
|
|
||||||
|
# I think websearch_to_tsquery() sanitizes its own input.
|
||||||
|
query = request.args.get('end_time', default=None)
|
@ -0,0 +1,16 @@
|
|||||||
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name = "wubloader-buscribe-api",
|
||||||
|
version = "0.0.0",
|
||||||
|
packages = find_packages(),
|
||||||
|
install_requires = [
|
||||||
|
"argh",
|
||||||
|
"psycopg2",
|
||||||
|
"greenlet==0.4.16",
|
||||||
|
"psycogreen",
|
||||||
|
"wubloader-common",
|
||||||
|
"python-dateutil",
|
||||||
|
"flask"
|
||||||
|
],
|
||||||
|
)
|
Loading…
Reference in New Issue