55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
import asyncio
|
|
import json
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv("../.env")
|
|
|
|
from common.utils import normalize_handle
|
|
from integrations.youtube import YouTubeClient
|
|
from integrations.apify import ApifyClient
|
|
from integrations.naver import NaverClient
|
|
from integrations.firecrawl import FirecrawlClient
|
|
|
|
INPUT = {
|
|
"youtube": "@banobagips",
|
|
"instagram": ["@banobagi_ps"],
|
|
"facebook": "BanobagiPlasticSurgery",
|
|
"naver_blog": "https://blog.naver.com/banobagiprs",
|
|
"gangnam_unni": "https://www.gangnamunni.com/hospitals/23",
|
|
}
|
|
|
|
OUT_DIR = "../test_results"
|
|
|
|
|
|
def save(name: str, data) -> None:
|
|
os.makedirs(OUT_DIR, exist_ok=True)
|
|
path = os.path.join(OUT_DIR, f"{name}.json")
|
|
with open(path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False)
|
|
print(f"saved → {path}")
|
|
|
|
|
|
async def main():
|
|
yt = YouTubeClient(api_key=os.environ["YOUTUBE_API_KEY"])
|
|
apify = ApifyClient(token=os.environ["APIFY_API_TOKEN"])
|
|
naver = NaverClient(client_id=os.environ["NAVER_CLIENT_ID"], client_secret=os.environ["NAVER_CLIENT_SECRET"])
|
|
firecrawl = FirecrawlClient(api_key=os.environ["FIRECRAWL_API_KEY"])
|
|
|
|
yt_handle = normalize_handle("youtube", INPUT["youtube"])
|
|
ig_handle = normalize_handle("instagram", INPUT["instagram"][0])
|
|
fb_handle = normalize_handle("facebook", INPUT["facebook"])
|
|
naver_handle = normalize_handle("naver_blog", INPUT["naver_blog"])
|
|
|
|
save("youtube", await yt.fetch_channel(yt_handle))
|
|
save("instagram_profile", await apify.fetch_instagram_profile(ig_handle))
|
|
# save("instagram_posts", await apify.fetch_instagram_posts(ig_handle))
|
|
# save("instagram_reels", await apify.fetch_instagram_reels(ig_handle))
|
|
save("facebook", await apify.fetch_facebook_page(f"https://www.facebook.com/{fb_handle}"))
|
|
save("naver_blog", await naver.fetch_blog_rss(naver_handle))
|
|
save("gangnam_unni", await firecrawl.fetch_gangnam_unni(INPUT["gangnam_unni"]))
|
|
|
|
|
|
asyncio.run(main())
|