tubifier / app.py
wldmr's picture
app file
b0eb108
raw
history blame
2.62 kB
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}