db.collection.aggregate([
{"$sample": {"size": 1}},
{"$project": {
"_id": 0,
"<field>": <1 или "$_id.<field>" (не знаю)>
}}
])
from telebot.types import Message, ReplyKeyboardMarkup
def get_buttons(message: Message):
keyboard = ReplyKeyboardMarkup(selective=True)
for word in message.text.split(";"):
keyboard.add(word)
return keyboard
bot.register_next_step_handler(bot.send_message(chat_id, "123"), break_this)
и соответственно в функции break_this
реализовать прерывание цикла, например через флаги. Можно создать базу пользователей с полем, отвечающим за остановку цикла.from telebot import types
UserId = int # тайпхинт
class User:
def __init__(self, user_id: UserId):
self.user_id = user_id # неплохо бы property
self.is_spamming = False # везде
users: dict[UserId, User] = {}
def stop_spam(message: types.Message):
users[message.from_user.id].is_spamming = False
@bot.message_handler(<>)
def spam(message: types.Message):
user = users[message.from_user.id]
user.is_spamming = True
while user.is_spamming:
bot.register_next_step_handler(bot.send_message(<>), stop_spam) # как-то так
chat_id = message.chat.id
message_id = message.message_id # или message.id - в последних версиях есть такое
if message.reply_to.message is None:
bot.send_message(chat_id=chat_id, "Ответьте командой на сообщение", reply_to_message_id=message_id)
else:
id_to_kick = message.reply_to_message.from_user.id
bot.kick_chat_member(chat_id=chat_id, user_id=id_to_kick)
bot.send_message(chat_id=chat_id, "Пользователь кикнут", reply_to_message_id=message_id)
data
имеет тип numpy.ndarray
(с типом значений float
)data
y
это numpy.ndarray
из нулей размером в длину x (первое измерение) на 1 ([0, 0, ...])k
здесь int
y == k
возвращает numpy.ndarray.__eq__(y, k)
; тип у такого - numpy.ndarray
(bool
)x[y == k]
тоже самое, что и numpy.ndarray.__index__(x, y == k)
то есть индекс от массива и массива булевых - выборка правдивых значений, хначит тип у этого тоже numpy.ndarray
скорее всего от float
from time import sleep
from telethon.tl.functions.contacts import ImportContactRequest
from telethon.tl.types import InputPhoneContact, User
from telethon.errors.rpcerrorlist import FloodWaitError
from telethon import TelegramClient
client = TelegramClient("имя сессии", "апи ид", "апи хеш") # можешь сюда ещё старт вписать
async def run():
while True:
try:
result = await client(ImportContactsRequest([InputPhoneContact(
client_id=1, # любой ид
phone=<сюда точно подойдет телефон, возможно что и username тоже>,
first_name="имя", last_name="фамилия",
)]))
except FloodWaitError as e:
sleep(e.seconds)
client.loop.run_until_complete(run())
"\uxxxx"
, вместо xxxx вставляешь код эмоджи.pip install emoji
, вот здесь