dem171, ну можно и упростить всё тоже, например, как выше привели код.
Главная идея - смотри время от времени на свой код со стороны решаемой задачи, и формулируй, какую часть этой задачи должен решать тот или иной метод.
1. Оформляем код по правилам сайта. Кнопка </> в помощь.
2. Описываем русским языком, какую проблему решаем. То, что в заголовке вопроса, не слишком-то понятно.
dvrr, да не в этом проблема-то. У тебя поиск не находит элемент - значит, ты что-то напутал либо в данных для поиска, либо в хранилище. А уж как доставать найденное - дело десятое.
dvrr,
1. Ну так логично. Ты получаешь курсор, его надо перебрать или циклом for, или отправить в list(), если тебе нужны все данные сразу.
2. Я не знаю, что такое message.guild.id, но если это дискордовский id, он вроде и так int. А в базе он тоже как int хранится?
3. У тебя вот прямо гильдия с id 1234567890?
Я не очень понял, почему сроки горят - ИМХО такую ошибку ты поймал бы уже при попытке установить обе либы в одном окружении, т.е. в самом начале разработки.
В общем, единственное, что мне приходит в голову - срочно лепить недосервисную архитектуру и разносить код по двум проектамс разными окружениями. Отдельно - то, что работает с vkbottle, отдельно - то, что работает с aiogram. Связь по какому-нибудь API, например, fastapi на ведомой стороне, и requests/aiohttp на ведущей.
dvrr, повторяю для одарённых: не знаешь как самостоятельно сделать что-то - сначала поищи, как это делается в существующих библиотеках, и сделай по аналогии. Тебе не обязательно их использовать, чтобы на их примере понять, как работать с соответствующим API. Тут я уже за тебя поиск выполнил, разжевал и в рот положил.
dvrr, а теперь внимательно перечитай мой ответ.
Модели discord.py основаны на json-данных, получаемых от серверов дискорда - тех же самых, с которыми работаешь ты.
Я подозреваю, что у тебя в словаре role есть ключ position, на который можно ориентироваться.
пример строки duration, и на какое время фактически мутит.
На кой ты делаешь расчёт total_days с последующим пересчётом в секунды, если у тебя уже есть расчёт total_seconds?
И да, такой мут - недомут. Если бот будет перезапущен, размут не произойдёт.
vology, ну так прописываешь в коде адрес сервера в нидерландах. На том сервере проверяешь, какой интерфейс слушает мускуль. Если он слушает все интерфейсы (адрес 0.0.0.0) или хотя бы внешний интерфейс (короче, не локалхост), то по идее должна быть возможность постучаться.
Возьми для начала родной клиент mysql и попробуй с его помощью сконнектиться на сервер БД.
Проверь фаерволлы заодно на обоих хостах, не режут ли они чего лишнего.
vology, погоди, погоди, ты что-то странное городишь.
Если у тебя БД на отдельном сервере, то какого баклажана ты коннектишься на локалхост?!
А на локальном компе у тебя фз что, может у тебя тоже MySQL там установлена.
Прописывай адрес этого сервера тогда. Хотя тут возникнет вопрос, а ты точно можешь достучаться до БД на том сервере? Потому что БД, смотрящая в интернет, это та ещё дыра.
3FANG, потому что create_task() - синхронный вызов, в нём нет await. callee() была поставлена в очередь, но раз нет await - нет переключения контекста. Нет переключения контекста - текущая корутина продолжает выполняться. Когда произойдёт переключение контекста (await или выход из caller()), только тогда рабочий цикл заглянет в очередь и увидит ожидающую в ней корутину callee().
sys.argv
? Т.е. так же, как и для не запакованного скрипта?