|
from huggingface_hub import HfApi |
|
from huggingface_hub import hf_hub_download |
|
import json |
|
import re |
|
|
|
from fastapi import FastAPI |
|
from fastapi import Body |
|
|
|
repo_id = "dalle-mini/dalle-mini" |
|
repo_id = "stabilityai/stable-diffusion" |
|
dataset_repo_id = "triple-t/dummy" |
|
file_name = "_".join(repo_id.split("/")) + ".json" |
|
api = HfApi() |
|
|
|
app = FastAPI() |
|
|
|
items = [] |
|
|
|
url_re = re.compile(r'https://s3\.amazonaws\.com/moonup/production/uploads/\d+-noauth\.jpeg') |
|
|
|
@app.get("/") |
|
def get_events(): |
|
return items |
|
|
|
@app.post("/webhook") |
|
def webhook(payload: dict = Body(...)): |
|
global items |
|
event = payload["event"] |
|
if event["action"] != "create": |
|
return |
|
if event["scope"] != "discussion": |
|
return |
|
content = payload["comment"]["content"] |
|
title = payload["discussion"]["title"] |
|
image_urls = url_re.findall(content) |
|
|
|
data_dict = {"data": {"images": image_urls, "prompt": title}, "discussion_num": 1000} |
|
|
|
path = hf_hub_download( |
|
repo_id=dataset_repo_id, |
|
filename=file_name, |
|
cache_dir="/home/user/app/image_cache", |
|
repo_type="dataset", |
|
) |
|
|
|
with open(path, "r") as f: |
|
data = json.load(f) |
|
|
|
data.append(data_dict) |
|
|
|
with open(path, "w") as f: |
|
f.write(json.dumps(data, sort_keys=True, indent=4)) |
|
|
|
api.upload_file( |
|
path_or_fileobj=path, |
|
path_in_repo=file_name, |
|
repo_id=dataset_repo_id, |
|
repo_type="dataset", |
|
) |
|
|