|
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}") |
|
def image_mod(link): |
|
|
|
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') |
|
|
|
|
|
rpunkt_switch = False |
|
lexrank_switch = True |
|
html = '' |
|
images = [] |
|
html, images = su.getSummary(link, lexrank_switch, rpunkt_switch) |
|
|
|
print(html) |
|
|
|
files = os.listdir('workdir/') |
|
print('local files: ',files) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print('images',images) |
|
|
|
|
|
return HTMLResponse(content=html) |
|
|
|
|
|
@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) |
|
|
|
|
|
|
|
|
|
return {"data": images} |
|
|
|
@app.get("/items/{item_id}") |
|
async def read_item(item_id): |
|
return {"item_id": item_id} |
|
|
|
|