diff --git a/holidays.csv b/holidays.csv index 1415dfe..381cfc8 100644 --- a/holidays.csv +++ b/holidays.csv @@ -1,9 +1,11 @@ "Date","Name","Description" -"09-13","День программиста","День программиста отмечают практически повсеместно, ведь в XXI веке важность и необходимость этой профессии понятна всем. А в России праздник даже является официальным" -"01-28","Международный день защиты персональных данных","Международный день защиты персональных данных (Data Protection Day). Это праздник был учрежден для того, чтобы пользователи сети не забывали о соблюдении правил поведения в интернете, которые помогают обезопасить их виртуальную и реальную жизнь" -"09-30","День интернета","Все началось с того, что в 1998 году московская фирма IT Infoart Stars разослала фирмам и организациям предложение поддержать инициативу, состоящую из двух пунктов: назначить 30 сентября «Днем интернета», ежегодно его праздновать и провести «перепись населения русскоязычного интернета»" +0001-01-28,"Международный день защиты персональных данных","Международный день защиты персональных данных (Data Protection Day). Это праздник был учрежден для того, чтобы пользователи сети не забывали о соблюдении правил поведения в интернете, которые помогают обезопасить их виртуальную и реальную жизнь" +0001-09-13,"День программиста","День программиста отмечают практически повсеместно, ведь в XXI веке важность и необходимость этой профессии понятна всем. А в России праздник даже является официальным" +0001-09-30,"День интернета","Все началось с того, что в 1998 году московская фирма IT Infoart Stars разослала фирмам и организациям предложение поддержать инициативу, состоящую из двух пунктов: назначить 30 сентября «Днем интернета», ежегодно его праздновать и провести «перепись населения русскоязычного интернета»" +1995-05-23,"День рождения MySQL","MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM — подпрограммы низкого уровня" +1996-07-08,"День рождения PostgreSQL","К разработке Postgres, начавшейся в 1986 году, имел непосредственное отношение Майкл Стоунбрейкер, руководитель более раннего проекта Ingres" 2005-07-21,"День рождения Django","Джанго — свободный фреймворк для веб-приложений на языке Python. Проект поддерживается организацией Django Software Foundation. Веб-фреймворк Django используется в сайтах Instagram, Disqus, Mozilla, The Washington Times, Pinterest, YouTube, Google и др. Авторы: американский веб-разработчик Адриан Головатый и британский программист Саймон Уиллисон" -2018-12-05,"День рождения FastAPI","FastAPI — веб-фреймворк для создания API, написанный на Python. Один из самых быстрых и популярных (после Django и Flask) веб-фреймворков, написанных на Python. Автор — колумбиец Себастьян Рамирез" -2010-04-01,"День рождения Flask","Создатель и основной автор — австрийский программист Армин Ронахер, начал работу над проектом в 2010 году" -"1991-02-20","День рождения Python","Задумка по реализации языка появилась в конце 1980-х годов, а разработка его реализации началась в 1989 году сотрудником голландского института CWI Гвидо ван Россумом. Гвидо начал разрабатывать Python на досуге, позаимствовав некоторые наработки для языка ABC" 2008-12-03,"День рождения Python 3","После длительного тестирования, вышла первая версия Python 3000 (или Python 3.0, также используется сокращение Py3k). В Python 3000 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Python" +2010-04-01,"День рождения Flask","Создатель и основной автор — австрийский программист Армин Ронахер, начал работу над проектом в 2010 году" +2018-12-05,"День рождения FastAPI","FastAPI — веб-фреймворк для создания API, написанный на Python. Один из самых быстрых и популярных (после Django и Flask) веб-фреймворков, написанных на Python. Автор — колумбиец Себастьян Рамирез" +"1991-02-20","День рождения Python","Задумка по реализации языка появилась в конце 1980-х годов, а разработка его реализации началась в 1989 году сотрудником голландского института CWI Гвидо ван Россумом. Гвидо начал разрабатывать Python на досуге, позаимствовав некоторые наработки для языка ABC" diff --git a/reminder.py b/reminder.py index 4c37755..3913fa4 100644 --- a/reminder.py +++ b/reminder.py @@ -7,14 +7,12 @@ import csv from dotenv import load_dotenv from config import PYTHONCHATRU + # https://core.telegram.org/bots/api Telegram Bot API dotenv_path = '.env' load_dotenv(dotenv_path) -with open('holidays.csv', newline='', encoding='utf-8') as holidays_file: - holidays = tuple(csv.reader(holidays_file)) - def scheduler(): while True: @@ -24,24 +22,21 @@ def scheduler(): def remind(): """ Remind holiday. """ + with open('holidays.csv', newline='', encoding='utf-8') as holidays_file: + holidays = tuple(csv.reader(holidays_file)) today = dt.today() for entry in holidays[1:]: date, holiday, description = entry - if len(date) == 5 \ - and today.month == dt.strptime(date, "%m-%d").month \ - and today.day == dt.strptime(date, "%m-%d").day: - notification = f'🎉💻 Сегодня {dt.strptime(date, "%m-%d"):%d.%m}, {holiday.upper()}! \ - \n\n{description}.' - bot.send_message(PYTHONCHATRU, notification, parse_mode='HTML') # PYTHONCHATRU - elif len(date) == 10 \ - and today.month == dt.strptime(date, "%Y-%m-%d").month \ - and today.day == dt.strptime(date, "%Y-%m-%d").day: - age = today.year - dt.strptime(date, "%Y-%m-%d").year - notification = f'🎉💻 Сегодня {dt.strptime(date, "%Y-%m-%d"):%d.%m}, {holiday.upper()}! \ - \n\n{description}.\n{age} годовщина' + if today.month == dt.strptime(date, "%Y-%m-%d").month and today.day == dt.strptime(date, "%Y-%m-%d").day: + if dt.strptime(date, "%Y-%m-%d").year == 1: + notification = f'🎉💻 Сегодня {dt.strptime(date, "%m-%d"):%d.%m}, {holiday.upper()}! \ + \n\n{description}.' + else: + age = today.year - dt.strptime(date, "%Y-%m-%d").year + notification = f'🎉💻 Сегодня {dt.strptime(date, "%Y-%m-%d"):%d.%m}, {holiday.upper()}! \ + \n\n{description}.\n{age} годовщина' bot.send_message(PYTHONCHATRU, notification, parse_mode='HTML') # PYTHONCHATRU -schedule.every().day.at('08:00').do(remind) +schedule.every().day.at('07:00').do(remind) Thread(target=scheduler).start() -