mirror of
https://github.com/flibusta-apps/telegram_files_server.git
synced 2025-12-06 12:35:39 +01:00
Add upload caption
This commit is contained in:
@@ -15,8 +15,10 @@ class FileUploader:
|
||||
_aiogram_storage_index = 0
|
||||
_telethon_storage_index = 0
|
||||
|
||||
def __init__(self, file: UploadFile) -> None:
|
||||
def __init__(self, file: UploadFile, caption: Optional[str] = None) -> None:
|
||||
self.file = file
|
||||
self.caption = caption
|
||||
|
||||
self.upload_data: Optional[dict] = None
|
||||
self.upload_backend: Optional[UploadBackends] = None
|
||||
|
||||
@@ -46,7 +48,7 @@ class FileUploader:
|
||||
|
||||
storage = self.get_aiogram_storage()
|
||||
|
||||
self.upload_data = await storage.upload(bytes_io) # type: ignore
|
||||
self.upload_data = await storage.upload(bytes_io, self.caption) # type: ignore
|
||||
self.upload_backend = UploadBackends.aiogram
|
||||
|
||||
return True
|
||||
@@ -65,7 +67,7 @@ class FileUploader:
|
||||
|
||||
storage = self.get_telethon_storage()
|
||||
|
||||
self.upload_data = await storage.upload(bytes_io) # type: ignore
|
||||
self.upload_data = await storage.upload(bytes_io, caption=self.caption) # type: ignore
|
||||
self.upload_backend = UploadBackends.telethon
|
||||
|
||||
return True
|
||||
@@ -111,8 +113,8 @@ class FileUploader:
|
||||
return cls.TELETHON_STORAGES[cls._telethon_storage_index]
|
||||
|
||||
@classmethod
|
||||
async def upload(cls, file: UploadFile) -> Optional[UploadedFile]:
|
||||
uploader = cls(file)
|
||||
async def upload(cls, file: UploadFile, caption: Optional[str] = None) -> Optional[UploadedFile]:
|
||||
uploader = cls(file, caption)
|
||||
upload_result = await uploader._upload()
|
||||
|
||||
if not upload_result:
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
from fastapi import File, UploadFile, Depends
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import File, UploadFile, Depends, Form
|
||||
from starlette import status
|
||||
from fastapi import APIRouter, HTTPException
|
||||
|
||||
@@ -40,8 +42,8 @@ async def create_file(data: CreateUploadedFile):
|
||||
|
||||
|
||||
@router.post("/upload/", response_model=UploadedFile)
|
||||
async def upload_file(file: UploadFile = File({})):
|
||||
return await FileUploader.upload(file)
|
||||
async def upload_file(file: UploadFile = File({}), caption: Optional[str] = Form({})):
|
||||
return await FileUploader.upload(file, caption=caption)
|
||||
|
||||
|
||||
@router.delete("/{file_id}", response_model=UploadedFile, responses={
|
||||
|
||||
8
poetry.lock
generated
8
poetry.lock
generated
@@ -564,7 +564,7 @@ full = ["aiofiles", "graphene", "itsdangerous", "jinja2", "python-multipart", "p
|
||||
|
||||
[[package]]
|
||||
name = "telegram-files-storage"
|
||||
version = "1.1.0"
|
||||
version = "1.1.1"
|
||||
description = "Library for upload/download telegram files"
|
||||
category = "main"
|
||||
optional = false
|
||||
@@ -672,7 +672,7 @@ multidict = ">=4.0"
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.9"
|
||||
content-hash = "cd58f61e0599d137f52a54ed623841bf6139dfd6279031fe3ab577fe9584e3e4"
|
||||
content-hash = "1252b47ca248c69e3bd735f5fe938035d58e961e9506b88323410b481e6ed8e6"
|
||||
|
||||
[metadata.files]
|
||||
aiogram = [
|
||||
@@ -1367,8 +1367,8 @@ starlette = [
|
||||
{file = "starlette-0.14.2.tar.gz", hash = "sha256:7d49f4a27f8742262ef1470608c59ddbc66baf37c148e938c7038e6bc7a998aa"},
|
||||
]
|
||||
telegram-files-storage = [
|
||||
{file = "telegram_files_storage-1.1.0-py3-none-any.whl", hash = "sha256:6cb9ceeb6aa67191cc4402f55637bcb2cc3cc311d8a006797a670a9bdc739d56"},
|
||||
{file = "telegram_files_storage-1.1.0.tar.gz", hash = "sha256:a8fe7714426a75b97f5da07af1d4eb267c4dda8dcea5ecd18893b1b9ebdec118"},
|
||||
{file = "telegram_files_storage-1.1.1-py3-none-any.whl", hash = "sha256:5a56a19c6950e7db070110c1e1b43affd59ad15ffde195262cfdb6fbc2476fae"},
|
||||
{file = "telegram_files_storage-1.1.1.tar.gz", hash = "sha256:893776101cb1714bdd69d4d94c01b4b3a22426bfa8afe444f1e2ee94f38044ad"},
|
||||
]
|
||||
telethon = [
|
||||
{file = "Telethon-1.23.0-py3-none-any.whl", hash = "sha256:60c976f290806445cf9b8468d6dc98c72ad4d8a4ee2ad9de170aaecb1e96cc8e"},
|
||||
|
||||
@@ -15,7 +15,7 @@ pydantic = {extras = ["dotenv"], version = "^1.8.2"}
|
||||
asyncpg = "^0.24.0"
|
||||
psycopg2 = "^2.9.1"
|
||||
python-multipart = "^0.0.5"
|
||||
telegram-files-storage = {extras = ["all"], version = "^1.1.0"}
|
||||
telegram-files-storage = {extras = ["all"], version = "^1.1.1"}
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = "^5.2"
|
||||
|
||||
Reference in New Issue
Block a user