tubifier / app.py
wldmr's picture
app file
b0eb108
import os
import summarizer as su
import nltk
from fastapi import FastAPI
from PIL import Image
import base64
from fastapi.responses import HTMLResponse, FileResponse
app = FastAPI()
@app.get("/")
async def root():
return FileResponse(path="static/index.html", media_type="text/html")
@app.get("/tubifier/{link}")
async def image_mod(link: str, rpunkt: bool = False):
if len(link)==0:
return 'Error: No link provided', None
nltk_file = 'nltk_data/tokenizers/punkt.zip'
home_pc = '/Users/hujo/'
home_hf = '/home/user/'
if os.path.exists(home_pc+nltk_file) or os.path.exists(home_hf+nltk_file):
print('nltk punkt file exists in ', nltk_file)
else:
nltk.download('punkt')
#link = 'https://www.youtube.com/watch?v=lCnHfTHkhbE'
rpunkt_switch = rpunkt
lexrank_switch = True
html = ''
images = []
json_file = su.getSummary(link, lexrank_switch, rpunkt_switch)
#html, images = su.getSummary(link, lexrank_switch, rpunkt_switch)
#images = su.getSummaryImage(link, lexrank_switch, rpunkt_switch)
#print(html)
files = os.listdir('workdir/')
print('local files: ',files)
#image_path = 'workdir/lion.jpg'
#im = Image.open(image_path)
#images.append(im)
#with Image.open(open(image_path,'rb')) as im:
# images.append(im)
#images.append(im.rotate(90))
#images[0].save("newlion.png")
#print('images',images)
#return {"html": html, "images":images}
#return HTMLResponse(content=html)
return json_file
@app.get("/html")
async def root():
"""Basic HTML response."""
body = (
"<html>"
"<body style='padding: 10px;'>"
"<h1>Welcome to the API</h1>"
"<div>"
"Check the docs: <a href='/docs'>here</a>"
"</div>"
"</body>"
"</html>"
)
return HTMLResponse(content=body)
@app.get("/api")
async def cal_api():
images = []
with open('workdir/lion.jpg', 'rb') as open_file:
byte_content = open_file.read()
base64_bytes = base64.b64encode(byte_content)
base64_string = base64_bytes.decode('utf-8')
images.append(base64_string)
with open('workdir/cheetah.jpg', 'rb') as open_file:
byte_content = open_file.read()
base64_bytes = base64.b64encode(byte_content)
base64_string = base64_bytes.decode('utf-8')
images.append(base64_string)
#image_path='lion.jpg'
#pilim = Image.open(image_path)
#pilimrot = pilim.rotate(45)
return {"data": images}
@app.get("/items/{item_id}")
async def read_item(item_id):
return {"item_id": item_id}