remove old implementation
This commit is contained in:
parent
a3ea1ed922
commit
651e0f6065
105
ponyapi.py
105
ponyapi.py
|
@ -1,105 +0,0 @@
|
||||||
import datetime
|
|
||||||
import os
|
|
||||||
import random
|
|
||||||
|
|
||||||
from flask import Flask, abort, jsonify, request, redirect
|
|
||||||
|
|
||||||
# An Episode is constructed as such:
|
|
||||||
# data Episode = Episode
|
|
||||||
# { name :: String
|
|
||||||
# , air_date :: Int
|
|
||||||
# , season :: Int
|
|
||||||
# , episode :: Int
|
|
||||||
# , is_movie :: Bool
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# Any instance of season 99 should be interpreted as a movie.
|
|
||||||
episodes = []
|
|
||||||
|
|
||||||
# First, open the input file and read in episodes
|
|
||||||
with open("./fim.list", "r") as f:
|
|
||||||
for line in f:
|
|
||||||
airdate, s, e, name = line.split(' ', 4)[1:]
|
|
||||||
|
|
||||||
episode = {
|
|
||||||
"name": name[:-1],
|
|
||||||
"air_date": int(airdate),
|
|
||||||
"season": int(s),
|
|
||||||
"episode": int(e),
|
|
||||||
"is_movie": s == "99"
|
|
||||||
}
|
|
||||||
|
|
||||||
episodes.append(episode)
|
|
||||||
|
|
||||||
# Now, initialize Flask
|
|
||||||
app = Flask(__name__)
|
|
||||||
|
|
||||||
@app.route("/")
|
|
||||||
def hello():
|
|
||||||
return redirect("https://github.com/Xe/PonyAPI#ponyapi", code=302)
|
|
||||||
|
|
||||||
@app.route("/all")
|
|
||||||
def all_episodes():
|
|
||||||
return jsonify(episodes=episodes)
|
|
||||||
|
|
||||||
@app.route("/newest")
|
|
||||||
def newest_episode():
|
|
||||||
now = datetime.datetime(2006, 1, 4)
|
|
||||||
now = now.now()
|
|
||||||
|
|
||||||
for episode in episodes:
|
|
||||||
if now.fromtimestamp(episode["air_date"]) > now:
|
|
||||||
return jsonify(episode=episode)
|
|
||||||
|
|
||||||
abort(500)
|
|
||||||
|
|
||||||
@app.route("/season/<number>")
|
|
||||||
def season(number):
|
|
||||||
retEpisodes = []
|
|
||||||
|
|
||||||
for episode in episodes:
|
|
||||||
if str(episode["season"]) == number:
|
|
||||||
retEpisodes.append(episode)
|
|
||||||
|
|
||||||
try:
|
|
||||||
assert len(retEpisodes) > 0
|
|
||||||
except:
|
|
||||||
abort(404)
|
|
||||||
|
|
||||||
return jsonify(episodes=retEpisodes)
|
|
||||||
|
|
||||||
@app.route("/season/<snumber>/episode/<epnumber>")
|
|
||||||
def show_episode(snumber, epnumber):
|
|
||||||
for episode in episodes:
|
|
||||||
if str(episode["season"]) == snumber and str(episode["episode"]) == epnumber:
|
|
||||||
return jsonify(episode=episode)
|
|
||||||
|
|
||||||
abort(404)
|
|
||||||
|
|
||||||
@app.route("/random")
|
|
||||||
def show_random_ep():
|
|
||||||
return jsonify(episode=random.choice(episodes))
|
|
||||||
|
|
||||||
@app.route("/search")
|
|
||||||
def search():
|
|
||||||
retEpisodes = []
|
|
||||||
term = request.args.get("q", "").lower()
|
|
||||||
|
|
||||||
try:
|
|
||||||
assert term != ""
|
|
||||||
except:
|
|
||||||
abort(406)
|
|
||||||
|
|
||||||
for episode in episodes:
|
|
||||||
if term in episode["name"].lower():
|
|
||||||
retEpisodes.append(episode)
|
|
||||||
|
|
||||||
try:
|
|
||||||
assert len(retEpisodes) > 0
|
|
||||||
except:
|
|
||||||
abort(404)
|
|
||||||
|
|
||||||
return jsonify(episodes=retEpisodes)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
app.run(host="0.0.0.0", debug=True)
|
|
Loading…
Reference in New Issue