WIP: Client change

This commit is contained in:
2023-03-22 22:25:49 +01:00
parent af2bcd088f
commit 478c18f52d
3 changed files with 228 additions and 196 deletions

View File

@@ -1,10 +1,19 @@
from os import path, remove, sep
from shutil import rmtree
from typing import Tuple, Union
from photosapi_client.api.default.photo_upload_albums_album_photos_post import (
asyncio as upload_pic,
)
from photosapi_client.models.body_photo_upload_albums_album_photos_post import (
BodyPhotoUploadAlbumsAlbumPhotosPost,
)
from photosapi_client.types import File
from photosapi_client.models.http_validation_error import HTTPValidationError
import aiofiles
from pyrogram.client import Client
from pyrogram.types import Message
from classes.exceptions import SubmissionDuplicatesError, SubmissionUnavailableError
from modules.api_client import upload_pic
from modules.api_client import client
from modules.database import col_submitted
from bson import ObjectId
from modules.logger import logWrite
@@ -61,12 +70,26 @@ class PosterClient(Client):
except:
raise SubmissionUnavailableError()
logWrite(f"Uploading {path.basename(filepath)} to the API...", debug=True)
async with aiofiles.open(filepath, "rb") as f:
file_bytes = await f.read()
response = await upload_pic(
str(filepath), allow_duplicates=configGet("allow_duplicates", "submission")
album=configGet("album", "posting", "api"),
client=client,
multipart_data=BodyPhotoUploadAlbumsAlbumPhotosPost(
File(file_bytes, path.basename(filepath), "image/jpeg")
),
ignore_duplicates=configGet("allow_duplicates", "submission"),
caption="queue",
compress=False,
)
if len(response[1]) > 0:
raise SubmissionDuplicatesError(str(filepath), response[1])
if isinstance(response, HTTPValidationError) > 0:
raise SubmissionDuplicatesError(
str(filepath), response.to_dict()["duplicates"]
)
col_submitted.find_one_and_update(
{"_id": ObjectId(id)}, {"$set": {"done": True}}