help func, restart func, notify
This commit is contained in:
20
db.py
20
db.py
@@ -78,6 +78,26 @@ class BotDB:
|
|||||||
print(error)
|
print(error)
|
||||||
|
|
||||||
|
|
||||||
|
def get_username(self, user_id):
|
||||||
|
"""Достаем id юзера в базе по его user_id"""
|
||||||
|
try:
|
||||||
|
result = self.cursor.execute("SELECT `username` FROM `our_users` WHERE `user_id` = ?", (user_id,))
|
||||||
|
return result.fetchone()[0]
|
||||||
|
except sqlite3.Error as error:
|
||||||
|
print(error)
|
||||||
|
|
||||||
|
def get_all_user_id(self):
|
||||||
|
"""Достаем все айдишники юзеров из БД и преобразуем их в список"""
|
||||||
|
try:
|
||||||
|
result = self.cursor.execute("SELECT `user_id` FROM `our_users`",)
|
||||||
|
fetch_all = result.fetchall()
|
||||||
|
list_of_users = []
|
||||||
|
for i in fetch_all:
|
||||||
|
list_of_users.append(i[0])
|
||||||
|
return list_of_users
|
||||||
|
except sqlite3.Error as error:
|
||||||
|
print(error)
|
||||||
|
|
||||||
def get_user_first_name(self, user_id):
|
def get_user_first_name(self, user_id):
|
||||||
try:
|
try:
|
||||||
result = self.cursor.execute("SELECT `first_name` FROM `our_users` WHERE `user_id` = ?", (user_id,))
|
result = self.cursor.execute("SELECT `first_name` FROM `our_users` WHERE `user_id` = ?", (user_id,))
|
||||||
|
|||||||
64
voice_bot.py
64
voice_bot.py
@@ -3,6 +3,8 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
|
import db
|
||||||
from db import BotDB
|
from db import BotDB
|
||||||
import telebot
|
import telebot
|
||||||
import random
|
import random
|
||||||
@@ -72,6 +74,11 @@ def telegram_bot():
|
|||||||
bot.send_message(message.chat.id, "Если не знаешь, что сказать, можешь просто прочитать любое текстовое сообщение из недавно полученных или отправленных (или спеть, рассказать стихотворенье)", parse_mode='html', reply_markup=markup,
|
bot.send_message(message.chat.id, "Если не знаешь, что сказать, можешь просто прочитать любое текстовое сообщение из недавно полученных или отправленных (или спеть, рассказать стихотворенье)", parse_mode='html', reply_markup=markup,
|
||||||
disable_web_page_preview=not PREVIEW_LINK)
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
time.sleep(0.8)
|
time.sleep(0.8)
|
||||||
|
bot.send_message(message.chat.id,
|
||||||
|
"Так же можешь ознакомиться с инструкцией к боту по команде /help",
|
||||||
|
parse_mode='html', reply_markup=markup,
|
||||||
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
|
time.sleep(0.8)
|
||||||
msg = bot.send_message(message.chat.id, "<b>ну всё, достаточно инструкций. записывайся! Микрофон твой - </b> 🎤", parse_mode='html', reply_markup=markup,
|
msg = bot.send_message(message.chat.id, "<b>ну всё, достаточно инструкций. записывайся! Микрофон твой - </b> 🎤", parse_mode='html', reply_markup=markup,
|
||||||
disable_web_page_preview=not PREVIEW_LINK)
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
bot.register_next_step_handler(msg, standup)
|
bot.register_next_step_handler(msg, standup)
|
||||||
@@ -154,6 +161,8 @@ def telegram_bot():
|
|||||||
from_chat_id=message.chat.id,
|
from_chat_id=message.chat.id,
|
||||||
message_id=message.message_id)
|
message_id=message.message_id)
|
||||||
bot.register_next_step_handler(msg, standup)
|
bot.register_next_step_handler(msg, standup)
|
||||||
|
elif message.text == '/help':
|
||||||
|
help_function(message)
|
||||||
else:
|
else:
|
||||||
msg = bot.send_message(chat_id=message.chat.id, text='Я тебя не понял, воспользуйся меню', reply_markup=markup)
|
msg = bot.send_message(chat_id=message.chat.id, text='Я тебя не понял, воспользуйся меню', reply_markup=markup)
|
||||||
bot.register_next_step_handler(msg, standup)
|
bot.register_next_step_handler(msg, standup)
|
||||||
@@ -236,6 +245,61 @@ def telegram_bot():
|
|||||||
def restart_function(message):
|
def restart_function(message):
|
||||||
return standup(message)
|
return standup(message)
|
||||||
|
|
||||||
|
@bot.message_handler(commands=['help'])
|
||||||
|
def help_function(message):
|
||||||
|
msg = bot.send_message(chat_id=message.chat.id, text='Скорее всего ответы на твои вопросы есть здесь, ознакомься: https://telegra.ph/Instrukciya-k-botu-Golosa-Bijsk-10-11-2'
|
||||||
|
'\nЕсли это не поможет, пиши в тг: @Kerrad1',disable_web_page_preview=not PREVIEW_LINK)
|
||||||
|
bot.register_next_step_handler(msg, standup)
|
||||||
|
|
||||||
|
@bot.message_handler(commands=['send'])
|
||||||
|
def notify(message):
|
||||||
|
"""Функция для рассылки сообщений пользователям бота"""
|
||||||
|
admins = [842766148]
|
||||||
|
command_sender = message.from_user.id
|
||||||
|
if command_sender in admins:
|
||||||
|
markup = types.InlineKeyboardMarkup(row_width=1)
|
||||||
|
button = types.InlineKeyboardButton(text='Я прочитал ', callback_data='from_user')
|
||||||
|
success_send_message = 0
|
||||||
|
error_send_message = 0
|
||||||
|
markup.add(button)
|
||||||
|
user_ids = BotDB.get_all_user_id()
|
||||||
|
# Парсим список id юзеров для рассылки и рассылаем сообщения
|
||||||
|
for i in user_ids:
|
||||||
|
username = BotDB.get_username(i)
|
||||||
|
try:
|
||||||
|
bot.send_message(chat_id=i,
|
||||||
|
text='Привет, на связи админ. Первая тестовая рассылка через этого бота, не суди строго, обещаю не злоупотреблять этим))\n'
|
||||||
|
'Собственно хотел сказать следующее, сегодня ночью обновил бота, добавил ему две функции /restart и /help. '
|
||||||
|
'Рекомендую ознакомиться со статьей в /help, там я подробно описал как сейчас все работает. '
|
||||||
|
'Если у тебя будут предложения по доработке бота или новому функционал, пиши не стесняйся @Kerrad1. '
|
||||||
|
'Так же прошу нажать на кнопку под сообщением, чтобы я понял что ты прочитал сообщение❤️\n\nНа этом у меня все, пока, до следующего релиза', reply_markup=markup)
|
||||||
|
bot.send_message(chat_id=message.chat.id,
|
||||||
|
text=f'Успешно отправлено - @{username}')
|
||||||
|
success_send_message += 1
|
||||||
|
except Exception as e:
|
||||||
|
bot.send_message(chat_id=message.chat.id,
|
||||||
|
text=f'Этому юзеру не отправилось - @{username}')
|
||||||
|
error_send_message += 1
|
||||||
|
bot.send_message(chat_id=message.chat.id,
|
||||||
|
text=f'<b>Количество успешных отправок</b> - {success_send_message}', parse_mode='html')
|
||||||
|
bot.send_message(chat_id=message.chat.id,
|
||||||
|
text=f'<b>Количество неуспешных отправок</b> - {error_send_message}', parse_mode='html')
|
||||||
|
standup(message)
|
||||||
|
else:
|
||||||
|
bot.send_message(command_sender, f'у вас нет прав для запуска команды')
|
||||||
|
bot.forward_message(chat_id=GROUP_FOR_LOGS, from_chat_id=message.chat.id, message_id=message.id)
|
||||||
|
standup(message)
|
||||||
|
|
||||||
|
@bot.callback_query_handler(func=lambda call: True)
|
||||||
|
def post_for_group(call):
|
||||||
|
if call.data == 'from_user' and call.message.content_type == 'text':
|
||||||
|
try:
|
||||||
|
command_sender = call.message.from_user.id
|
||||||
|
bot.answer_callback_query(call.id, text="Мне приятно, спасибо ❤")
|
||||||
|
#Попробовать варианты если не сработает call.from_user.username
|
||||||
|
bot.send_message(chat_id=842766148, text=f'Юзер с ником @{call.message.chat.username} по имени {call.message.chat.first_name} прочитал сообщение')
|
||||||
|
except:
|
||||||
|
print('что-то не так')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
telegram_bot()
|
telegram_bot()
|
||||||
|
|||||||
Reference in New Issue
Block a user