uploader-bot/app/api/routes/custodial.py

37 lines
1.2 KiB
Python

from sanic import response
from app.core._config import TELEGRAM_API_KEY
from app.core.models.user import User
from app.core.logger import make_log
from datetime import datetime
import os
import hashlib
async def s_api_v1_custodial_upload_content(request):
if not request.json:
return response.json({"error": "No data provided"}, status=400)
if not request.json.get('content'):
return response.json({"error": "No content provided"}, status=400)
if not request.json.get('content_hash'):
return response.json({"error": "No content hash provided"}, status=400)
content = request.json['content']
content_hash = request.json['content_hash']
known_user = request.ctx.db_session.query(User).filter(User.telegram_id == request.ctx.user.telegram_id).first()
if not known_user:
return response.json({"error": "User not found"}, status=400)
content_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), f"../../../content/{content_hash}")
if os.path.exists(content_path):
return response.json({"error": "Content already exists"}, status=400)
with open(content_path, "wb") as f:
f.write(content)
return response.json({
'content_hash': content_hash
})