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 })