New Entry functionality
This commit is contained in:
@@ -11,6 +11,7 @@ from backend.app.database import get_connection
|
||||
from backend.app.services.plugin_manager import plugin_manager
|
||||
from backend.app.services.token_service import validate_token
|
||||
from backend.app.services.audit_service import record_audit_event
|
||||
from backend.app.services.scraper_service import scrape_title
|
||||
|
||||
router = APIRouter()
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -36,6 +37,21 @@ def available_tags():
|
||||
return list_tags()
|
||||
|
||||
|
||||
@router.get('/scrape')
|
||||
def scrape_url(url: str, authorization: str | None = Header(default=None)):
|
||||
if not authorization or not authorization.startswith('Bearer '):
|
||||
raise HTTPException(status_code=401, detail='Missing or invalid Authorization header')
|
||||
info = validate_token(authorization.replace('Bearer ', '', 1))
|
||||
if info is None:
|
||||
raise HTTPException(status_code=401, detail='Token expired or invalid')
|
||||
try:
|
||||
title = scrape_title(url)
|
||||
return {'title': title}
|
||||
except Exception as e:
|
||||
logger.error('Scrape error for %s: %s', url, e)
|
||||
raise HTTPException(status_code=502, detail='Could not scrape URL') from e
|
||||
|
||||
|
||||
@router.get('/links/check')
|
||||
def check_existing_link(
|
||||
title: str,
|
||||
|
||||
Reference in New Issue
Block a user