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