Skip to content

Commit

Permalink
Add scraper router
Browse files Browse the repository at this point in the history
  • Loading branch information
aturret committed Oct 24, 2024
1 parent 699b8db commit caf9b84
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 1 deletion.
5 changes: 4 additions & 1 deletion app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from starlette.middleware.base import BaseHTTPMiddleware

from app import auth, database
from app.routers import telegram_bot, inoreader
from app.routers import telegram_bot, inoreader, scraper_routers, scraper
from app.services import telegram_bot as telegram_bot_service
from app.config import TELEGRAM_BOT_TOKEN, DATABASE_ON
from app.utils.logger import logger
Expand Down Expand Up @@ -63,6 +63,9 @@ def create_app():
else:
logger.warning("Telegram bot token not set, telegram bot disabled")
fastapi_app.include_router(inoreader.router)
fastapi_app.include_router(scraper.router)
for router in scraper_routers.scraper_routers:
fastapi_app.include_router(router)
return fastapi_app


Expand Down
35 changes: 35 additions & 0 deletions app/routers/scraper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from fastapi import APIRouter
from fastapi.requests import Request

from app.config import API_KEY_NAME
from app.models.url_metadata import UrlMetadata
from app.services.common import InfoExtractService
from fastapi import Security
from app.auth import verify_api_key
from app.utils.parse import get_url_metadata

router = APIRouter(prefix="/scraper")


@router.post("/getItem", dependencies=[Security(verify_api_key)])
async def get_item_route(request: Request):
query_params = dict(request.query_params)
url = query_params.pop("url")
ban_list = query_params.pop("ban_list", None)
if API_KEY_NAME in query_params:
query_params.pop(API_KEY_NAME)
url_metadata = await get_url_metadata(url, ban_list)

item = InfoExtractService(url_metadata, **query_params)
result = await item.get_item()
return result


@router.post("/getUrlMetadata", dependencies=[Security(verify_api_key)])
async def get_url_metadata_route(request: Request):
url = request.query_params.get("url")
ban_list = request.query_params.get("ban_list")

url_metadata = await get_url_metadata(url, ban_list)
return url_metadata.to_dict()

6 changes: 6 additions & 0 deletions app/routers/scraper_routers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from .wechat import router as wechat_router


scraper_routers = [
wechat_router,
]

0 comments on commit caf9b84

Please sign in to comment.