async def parse_card(card):
d = dict()
# из карточки берется html
# "вставляется" в объект супа
# и возвращается словарь
# внутри этой функции не используются await
return d
# submodule_1.py - модуль, содержащий часть функций бота
def setup(bot):
# bot - объект бота. Можешь добавить и другие полезные параметры, такие как:
# - объект logging.Logger для журналирования
# - объект соединения с БД
# - ну и что там ещё тебе потребуется
# все обработчики событий объявляем ВНУТРИ setup()
# тогда они смогут ссылаться на переданные параметры
@bot.command('/start') # например, чтобы использовать декораторы
def on_start(message):
message.reply('foobar')
# мы описали функцию setup(), но здесь мы её не вызываем!
# main.py - основной файл бота
bot = ... # создаём объект бота
import submodule_1 # импортируем модуль с функциями
# при вызове setup() будут заданы обработчики событий, описанные в ней
submodule_1.setup(bot) # функции передаём объект бота (и другие объекты, если она их ожидает)
# функцию setup() нужно вызывать не более одного раза!
# так можно добавлять столько модулей, сколько требуется.
bot.run() # дальше бота запускаем как обычно
f"SELECT premium FROM premusers WHERE id = {ctx.guild.id}"
@discord.app_commands.checks.dynamic_cooldown(factory, *, key=...)
If a factory function is given, it must be a function that accepts a single parameter of type discord.Interaction and must return a Cooldown or None. If None is returned then that cooldown is effectively bypassed.
var connInfo = new Renci.SshNet.PasswordConnectionInfo("<IP>", 22, "<USER>", "<PWD>");
var sshClient = new Renci.SshNet.SshClient(connInfo);
sshClient.Connect();
var stream = sshClient.CreateShellStream("", 0, 0, 0, 0, 0);
// Send the command
stream.WriteLine("echo 'sample command output'");
// Read with a suitable timeout to avoid hanging
string line;
while((line = stream.ReadLine(TimeSpan.FromSeconds(2))) != null)
{
Console.WriteLine(line);
// if a termination pattern is known, check it here and break to exit immediately
}
// ...
stream.Close();
// ...
sshClient.Disconnect();
@dp.callback_query_handler(text='1')
async def id1(callback: CallbackQuery):
def do_stuff_nocache(*args, **kwargs):
...
@lru_cache
def do_stuff(*args, **kwargs):
return do_stuff_nocache(*args, **kwargs)
@lru_cache
def do_stuff(*args, **kwargs):
...
print(do_stuff.__wrapped__(*args, **kwargs))
do_stuff.clear_cache()
но это очистит кэш вообще, что, скорее всего, нежелательно. SELECT user_id, join_date EXTRACT(DAY FROM date) as day FROM users VALUES (?, ?)
from confusable_homoglyphs.confusables import is_confusable
wtf = 'YOᑌ ᑎᗩᗰE 42'
is_good = []
result = []
for c in wtf:
data = is_confusable(c, preferred_aliases=[], greedy=True)
if data:
data = data[0]
alias = data['alias']
if alias in ('LATIN', 'COMMON'):
data = False
if data:
is_good.append('!')
print(data)
result.append(data['homoglyphs'][0]['c'])
else:
is_good.append(' ')
result.append(c)
print()
print(''.join(result))
print(''.join(is_good))