Как мне сделать подключения к OneDrive, взять файлы из папки OneDrive, и отправить их ботом?
У меня есть код для отправки постов в канал. Этот код работает следующим образом, берет файлы из папки, и отправляет их, потом переносит файлы из папки с изображениями в папку с отправленными сообщениями. Как мне сделать тоже самое с OneDrive, чтобы я мог брать изображения из папки, и отправлять их в канал? Пытался гуглить, ничего не понятно, ведь Microsoft то еще дерьмо. Или может забить на OneDrive, и дальше отправлять файлы с папки?
import datetime
from os import listdir
import asyncio
from aiogram.utils.markdown import hlink
from config import channels
from loader import bot, dp
import os
from os import path
import shutil
# Переменные для итерации фото
mypath = "C:/Users/OneDrive/TestSend" # Путь к папке с фото
photos = list() # Список фото который проитерируется потом
formats = ['.jpg', '.jpeg', '.png'] # Форматы фото
savedSet = set() # Переменная на всякий случай
sent_directory = "C:/Users/OneDrive/TestSentPhoto" # Укажите здесь директорию куда /
# будут переходить отправленные фото
one = '9x16 - Name' # Названия которое вы хотите чтобы было в первом ряду
two = 't.me/link' # Ссылка на канал, второй ряд
three = '@link' # Ссылка на канал, третий ряд
url = two # Необходимая перемменая для создания ссылки
# Переменные для итерации времени
time = ('16:12', '14:33', '14:34')
interval = 60 # тут должно быть указано число которое отвечает за интервал между отправками постов
async def send_post():
polling_task = asyncio.create_task(dp.start_polling())
while True:
# Получаем нынешнее время
now_global = datetime.datetime.now()
now_global = str(now_global.time())
now_global = now_global.split('.')[0]
now_global = now_global[:-3]
# Сравнения нынешнего времени и нужного времени
if now_global in time:
for i in formats:
# Итерация по форматам фото
# Добавления новых фото
for j in filter(lambda x: x.endswith(i), listdir(mypath)):
# Вставляем фото в список
photos.append(j)
for i in photos:
now_local = datetime.datetime.now()
now_local = str(now_local.time())
now_local = now_local.split('.')[0]
now_local = now_local[:-3]
if now_local in time:
with open(f"{mypath}/{i}", 'rb') as photo:
print(f'Сейчас {now_local} времени')
await bot.send_photo(chat_id=channels, photo=photo, caption=f'{hlink(one, url=two)}\n'
f'{hlink(two, url=two)}\n'
f'{hlink(three, url=two)}')
with open(f"{mypath}/{i}", 'rb') as photo:
# print(f'Сейчас {now_local} времени')
await bot.send_document(chat_id=channels, document=photo, caption=f'{hlink(one, url=two)}\n'
f'{hlink(two, url=two)}\n'
f'{hlink(three, url=two)}')
print('Отправил фото')
photo = f"{mypath}/{i}"
# Укажите здесь директорию куда
# будут переходить отправленные фото
new_location = shutil.move(photo, sent_directory)
# print('Засыпаю')
# Строчка снизу отвечает за интервал между отправками фото
await asyncio.sleep(interval)
else:
# Нижнюю строку можно по желанию раскомментировать, тогда в консоль будет выводится 'Ожидаю 12:00',
# и есть много памяти
# print('Ожидаю 12:00')
pass