Ни на одном сайте нету нормальной инструкции.Неправда, есть офф. доки - docs.aiogram.dev. Но так как я не работал с данной библиотекой и не планирую - то я их читать за вас не хочу.
@dp.message_handler(content_types=['photo'])
async def scan_message(msg: types.Message):
document_id = msg.photo[0].file_id
file_info = await bot.get_file(document_id)
print(f'file_id: {file_info.file_id}')
print(f'file_path: {file_info.file_path}')
print(f'file_size: {file_info.file_size}')
print(f'file_unique_id: {file_info.file_unique_id}')
file_id: AgACAgIAAxkBAAIO2WBd12gIEuhnEzsUgfS_VguqIVMLAAK5sDEb0qrwSiETN9pic8VjZPdZoi4AAwEAAwIAA20AA3dRAAIeBA
file_path: photos/file_48.jpg
file_size: 12946
file_unique_id: AQADZPdZoi4AA3dRAAI
как знать сколько людей подключены к нему?В момент, когда пользователь подписывается(или как оно там называется) на бота, нужно сохранять его id в базе(или в файле - но это велосипед). Тогда просто получаем количество записей из базы, или количество строк из файла. Это и будут количество пользователей бота. Правда, потом пользователь может отписаться - но это уже совсем другая история.
Как сделать функцию рассылку для всех пользователей моего ботаЧитаем id пользователей из базы или файла и отправляем сообщения пользователям:
bot.send_message(id_пользователя,"Текст")
blask_list = []
while True:
command = input()
if command == 'list': # Вывести содержимое списка
print(blask_list)
if not command in blask_list:
print(command)
blask_list.append(command)
import sqlite3
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY AUTOINCREMENT,
user_name TEXT,
user_id TEXT,
user_status TEXT
)''')
cursor.execute('DELETE FROM users')
users = [[None,'Валера','123','blocked'],
[None,'Тарас','134','blocked'],
[None,'Степан','145','normal'],
[None,'Абдурахман','168','blocked'],
[None,'Петя','190','normal']]
for user in users:
cursor.execute('INSERT INTO users VALUES(?,?,?,?)',user) # Заполняем таблицу из списка
conn.commit()
result = cursor.execute('SELECT id,user_id FROM users WHERE user_status="blocked"').fetchall()
# Выбираем из базы id(порядковый номер пользователя в базе), user_id - id пользователя в вашей системе только тех пользователей,
# в которыъ статус blocked
for x in result: # перебираем результаты
id,user_id = x # Распаковываем кортеж
cursor.execute('UPDATE users SET user_status=? WHERE id=?',('normal',id)) # обновляем записи в таблице.
# Так как у нас есть порядковый номер пользователя в таблице(id), то обновляем записи этих id и устанавливаем
# user_status в normal
print(f'Статус blocked изменен на normal для следуещего пользователя {user_id}')
conn.commit()
conn.close()
with open('salary.txt') as file:
lines = file.read().splitlines()
with open('workers.txt') as file:
lines2 = file.read().splitlines()
max_salary = max([x.split(',')[1] for x in lines])
inn = [x.split(',')[0] for x in lines if x.split(',')[1] == max_salary][0]
max_salary_user = [x.split(',')[0] for x in lines2 if x.split(',')[1][4:] == inn][0]
print(max_salary_user)
max_salary = max([x.split(',')[1] for x in lines])
my_list = [] # Создаем пустой список
for x in lines: # перебираем каждую строку
my_list.append(x.split(',')[1]) # Каждую строку делим по запятым, берем второй элемент и добавляем в список.
print(my_list) # В списке будет ['99424', '91300', '91870', '63400', '80500', '68070', '76320', '97600', '98060', '78030']
print(max(my_list)) # С помощью функции max берем сомое большое число из списка.
i = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
for x in i:
if x > 7 and x < 13:
print(x)
i = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
num = [x for x in i if x > 7 and x < 13]
print(num)
Начиная с версии 2.8, обёртки объектов GLib вынесены в отдельную библиотеку — PyGObject, которая должна полностью вытеснить PyGTK при использовании GTK+ версии 3. Хотя PyGTK является стабильной, достаточно развитой и одной из четырёх основных библиотек графического интерфейса для Python, её разработка была остановлена авторами в 2011 году[1], пользователям было рекомендовано переходить на PyGObject
with open('salary.txt') as file:
lines = file.read().splitlines()
max_salary = max([x.split(',')[1] for x in lines])
max_salary_user = [x.split(',')[0] for x in lines if x.split(',')[1] == max_salary][0]
print(max_salary_user)
>>> 1234567898