Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 0
Регистрация: 23.02.2018
Сообщений: 74
Telegram Bot

Уведомление о Дне Рождения сотрудника с возможностью добавления или изменения данных

05.06.2022, 10:53. Показов 2477. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день,

Нужно написать бота, который будет уведомлять в беседе, если сегодня у кого-то день рождение. Это я реализовал с помощью schedule. Каждый день в определенное время Бот сравнивает сегодняшнюю дату с днями рождения, если есть совпадение публикует. Далее в течении дня, сообщение удаляет.

Еще нужно, чтобы была возможность вносить дополнительные данные о новых людях. Делать проверку, внесен ли такой user в бот и тд.
Есть предположение реализовать все это через многопоточность с помощью библиотеки threading. Когда я создаю t1 в __main__', добавляя туда функции со стандартными командами Message_handler, бот на команды не реагирует.

Есть идея для создания 2-ого бота, который будет отвечать за Добавление/Проверку/Удаление данных, но хотелось бы реальзовать весь функционал в одном месте.

С удовольствием послушаю ваши возможные вариации для решение этой задачи))

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from telebot import *
from time import sleep
import json
import schedule
import threading
 
 
print("\n")
print("Bot working.........")
 
with open("Api.json", "r") as a:
    afile = json.load(a)
a.close()
 
with open("birth.json", encoding="utf8") as d:
    bfile = json.load(d)
d.close()
 
bot = telebot.TeleBot(afile["Api_token"], threaded=True)
chatID = afile["Chat_id"]   
 
 
#Begining: Part of Created post with birthday
def check_birthday(check = None, msg_id = None):   
    text = '''INFO
Поздравим сегодня с Днем Рождения:
'''
    text2 = '''\nЖелаем крепкого здоровья, благополучия в семье, успехов в работе'''
    today = time.strftime('%d.%m')
    # today = "02.12"
    for date in bfile:
        if today in date["Date_birth"]:
            Name_birth = date["First_name"] + " " + date["Last_name"]
            text = text + "\n" + Name_birth
            check = True
    if check:
        text = text + text2
        msg = bot.send_message(chatID, text)
        msg_id = msg.chat.id, msg.message_id
    return msg_id
def check_post(message_id):
    if message_id:
        bot.delete_message(*message_id)
schedule.every().day.at("14:52").do(check_birthday) 
msg_id = check_birthday()
schedule.every().day.at("15:13").do(check_post, message_id=msg_id) 
def start_schedule():
    while True:
        print(121)
        schedule.run_pending()
        time.sleep(30)
#End: Part of Created post with birthday
 
 
if __name__ == '__main__':
    t2 = threading.Thread(target=start_schedule())  
    t2.start()
 
    bot.polling(none_stop=True)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2022, 10:53
Ответы с готовыми решениями:

Sharepoint services 3.0 - Уведомление о дне рождении сотрудника
Всем доброго времени суток!! Вот моя типичная история про так как директор дал задание неучу :))) Была поставлена задача: сделать...

Уведомление о дне рождения за 3-4 дня
Всем привет! Нужна вот такая помощь. Есть базав которой есть уведомление о ДР, оно работает и отображает дни рождения день у день, а нужно...

Вывод данных о Дне рождения
Всем привет. Что-то совсем затупил и не могу сообразить как сделать уведомление в скрипте. Смысл в том, что есть список пользователей в БД....

3
2 / 2 / 0
Регистрация: 23.02.2018
Сообщений: 74
08.06.2022, 00:23  [ТС]
Решение нашел самостоятельно. Поменял местами расположение строк.
Python
1
2
3
4
5
if __name__ == '__main__':
    bot.polling(none_stop=True)
    
    t2 = threading.Thread(target=start_schedule())  
    t2.start()
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
08.06.2022, 07:34
Prosto_maloyy, ты не решил проблему, т.к. до создания и запуска потока программа не доходит, а уходит в бесконечный цикл, на строке: bot.polling(none_stop=True)

Python
1
2
3
4
t2 = threading.Thread(target=start_schedule)  
t2.start()
 
bot.polling(none_stop=True)
0
2 / 2 / 0
Регистрация: 23.02.2018
Сообщений: 74
08.06.2022, 14:26  [ТС]
Добрый день,

А как возможно иначе реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2022, 14:26
Помогаю со студенческими работами здесь

Хранение значений с возможностью одновременного добавления/изменения с нескольких пользователей
Здравствуйте. Есть такие проблемные списки, как список друзей, закладки на сайте... Способы, которые я рассмотрел (и знаю): ...

Уведомление об дне недели и месяца в календаре
Нужна помощь в делфи. Пишу курсовую работу. Тема заключалась в том, что нужно написать программу календарь с показанием дня и вывод при...

База данных с возможностью редактирования, удаления и добавления
Можно ли на питоне реализовать такое: -База данных с возможностью редактирования, удаления и добавления таких предметов: Изображение,...

Вывод данных в таблицу с возможностью добавления записей
Добрый вечер, программисты! Помогите воплотить мысль в жизнь! К примеру у меня есть первоначальный List какой-то(пускай это лист...

Имеется список сотрудников, в котором записаны: фамилия сотрудника, год рождения, месяц и день рождения
Имеется список сотрудников, в котором записаны: фамилия сотрудника, год рождения, месяц и день рождения (входной файл firma.txt). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru