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 = ( "" "" "

Welcome to the API

" "
" "Check the docs: here" "
" "" "" ) 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}