pack to package
This commit is contained in:
+18
-19
@@ -1,21 +1,21 @@
|
|||||||
import telebot
|
import telebot
|
||||||
from me import get_me
|
from telebot import util
|
||||||
from flask import Flask, request, abort
|
from flask import Flask, request, abort
|
||||||
from query_log import logging
|
|
||||||
from datetime import datetime as dt
|
from datetime import datetime as dt
|
||||||
from os.path import exists
|
from os.path import exists
|
||||||
import os
|
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
from config import bot, ADMIN_ID
|
from .query_log import logging
|
||||||
import reminder
|
from .me import get_me
|
||||||
|
from .config import bot, ADMIN_ID, TOKEN
|
||||||
|
from . import reminder
|
||||||
|
|
||||||
# https://core.telegram.org/bots/api Telegram Bot API
|
# https://core.telegram.org/bots/api Telegram Bot API
|
||||||
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
print("LutzBot is running!")
|
print(">>> LutzBot is running! <<<")
|
||||||
|
|
||||||
|
|
||||||
@bot.message_handler(commands=['rules', 'faq'])
|
@bot.message_handler(commands=['rules', 'faq'])
|
||||||
@@ -106,17 +106,6 @@ def default_query(inline_query):
|
|||||||
mime_type='application/pdf',
|
mime_type='application/pdf',
|
||||||
thumb_url='https://fk7.ru/books/PythonCrashCourse.jpg', )
|
thumb_url='https://fk7.ru/books/PythonCrashCourse.jpg', )
|
||||||
|
|
||||||
vincent = telebot.types.InlineQueryResultDocument(
|
|
||||||
id='3', title='📕 Django for Beginners',
|
|
||||||
document_url='https://fk7.ru/books/django_for_beginners_4_0.pdf',
|
|
||||||
description='William S. Vincent, 4.0',
|
|
||||||
caption="""<i><b>Django for Beginners</b>, 4.0</i>
|
|
||||||
├ by William S. Vincent
|
|
||||||
└ Released March 2022""",
|
|
||||||
parse_mode='HTML',
|
|
||||||
mime_type='application/pdf',
|
|
||||||
thumb_url='https://fk7.ru/books/django_for_beginners_4_0.jpg', )
|
|
||||||
|
|
||||||
bot.answer_inline_query(
|
bot.answer_inline_query(
|
||||||
inline_query.id, [lutz, matthes, lutz_rus, matthes_rus],
|
inline_query.id, [lutz, matthes, lutz_rus, matthes_rus],
|
||||||
cache_time=10)
|
cache_time=10)
|
||||||
@@ -142,9 +131,19 @@ def remind_manually():
|
|||||||
reminder.remind()
|
reminder.remind()
|
||||||
|
|
||||||
|
|
||||||
@app.route(f"/bot{os.environ.get('LUTZPYBOT', 'Token not in ENVIRON')}/", methods=['POST'])
|
@bot.message_handler(commands=['jobs'])
|
||||||
|
def list_jobs(message):
|
||||||
|
"""List all jobs"""
|
||||||
|
if message.chat.id == ADMIN_ID:
|
||||||
|
text = reminder.get_jobs()
|
||||||
|
bot.send_message(message.chat.id, text, parse_mode='HTML')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route(f"/bot{TOKEN}/", methods=['POST'])
|
||||||
def webhook():
|
def webhook():
|
||||||
"""Parse POST requests from Telegram"""
|
""" Set webhook. """
|
||||||
|
bot.set_webhook(f'https://fk7.ru/bot{TOKEN}/', allowed_updates=util.update_types)
|
||||||
|
""" Parse POST requests from Telegram. """
|
||||||
if request.headers.get('content-type') == 'application/json':
|
if request.headers.get('content-type') == 'application/json':
|
||||||
json_string = request.get_data().decode('utf-8')
|
json_string = request.get_data().decode('utf-8')
|
||||||
update = telebot.types.Update.de_json(json_string)
|
update = telebot.types.Update.de_json(json_string)
|
||||||
@@ -2,17 +2,13 @@ import schedule
|
|||||||
import time
|
import time
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from datetime import datetime as dt
|
from datetime import datetime as dt
|
||||||
from config import bot
|
|
||||||
import csv
|
import csv
|
||||||
from dotenv import load_dotenv
|
|
||||||
|
|
||||||
from config import PYTHONCHATRU
|
from .config import PYTHONCHATRU, bot
|
||||||
|
|
||||||
|
|
||||||
# https://core.telegram.org/bots/api Telegram Bot API
|
# https://core.telegram.org/bots/api Telegram Bot API
|
||||||
|
|
||||||
dotenv_path = '.env'
|
|
||||||
load_dotenv(dotenv_path)
|
|
||||||
|
|
||||||
|
|
||||||
def scheduler():
|
def scheduler():
|
||||||
while True:
|
while True:
|
||||||
@@ -28,7 +24,7 @@ def remind():
|
|||||||
for entry in holidays[1:]:
|
for entry in holidays[1:]:
|
||||||
date, holiday, description = entry
|
date, holiday, description = entry
|
||||||
if today.month == dt.strptime(date, "%Y-%m-%d").month and today.day == dt.strptime(date, "%Y-%m-%d").day:
|
if today.month == dt.strptime(date, "%Y-%m-%d").month and today.day == dt.strptime(date, "%Y-%m-%d").day:
|
||||||
notification = f'🎉💻 Сегодня {dt.strptime(date, "%m-%d"):%d.%m}, <b><u>{holiday.upper()}</u></b>!\
|
notification = f'🎉💻 Сегодня {dt.strptime(date, "%Y-%m-%d"):%d.%m}, <b><u>{holiday.upper()}</u></b>!\
|
||||||
\n\n{description}.'
|
\n\n{description}.'
|
||||||
if dt.strptime(date, "%Y-%m-%d").year != 1:
|
if dt.strptime(date, "%Y-%m-%d").year != 1:
|
||||||
age = today.year - dt.strptime(date, "%Y-%m-%d").year
|
age = today.year - dt.strptime(date, "%Y-%m-%d").year
|
||||||
@@ -36,5 +32,13 @@ def remind():
|
|||||||
bot.send_message(PYTHONCHATRU, notification, parse_mode='HTML') # PYTHONCHATRU
|
bot.send_message(PYTHONCHATRU, notification, parse_mode='HTML') # PYTHONCHATRU
|
||||||
|
|
||||||
|
|
||||||
schedule.every().day.at('07:00').do(remind)
|
def get_jobs():
|
||||||
|
all_jobs = schedule.get_jobs()
|
||||||
|
text = f"├ <b>Jobs:</b> {str(len(all_jobs))}\
|
||||||
|
\n├ {dt.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n"
|
||||||
|
text += '<i>' + str(all_jobs) + '</i>'
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
|
schedule.every().day.at('06:00').do(remind)
|
||||||
Thread(target=scheduler).start()
|
Thread(target=scheduler).start()
|
||||||
+10
-9
@@ -1,11 +1,12 @@
|
|||||||
"Date","Name","Description"
|
"Date","Name","Description"
|
||||||
0001-01-28,"Международный день защиты персональных данных","Международный день защиты персональных данных (Data Protection Day). Это праздник был учрежден для того, чтобы пользователи сети не забывали о соблюдении правил поведения в интернете, которые помогают обезопасить их виртуальную и реальную жизнь"
|
|
||||||
0001-09-13,"День программиста","День программиста отмечают практически повсеместно, ведь в XXI веке важность и необходимость этой профессии понятна всем. А в России праздник даже является официальным"
|
0001-09-13,"День программиста","День программиста отмечают практически повсеместно, ведь в XXI веке важность и необходимость этой профессии понятна всем. А в России праздник даже является официальным"
|
||||||
0001-09-30,"День интернета","Все началось с того, что в 1998 году московская фирма IT Infoart Stars разослала фирмам и организациям предложение поддержать инициативу, состоящую из двух пунктов: назначить 30 сентября «Днем интернета», ежегодно его праздновать и провести «перепись населения русскоязычного интернета»"
|
1946-02-14,"День компьютерщика","14 февраля 1946 года научному миру и всем заинтересованным был продемонстрирован первый реально работающий электронный компьютер ENIAC I (Electrical Numerical Integrator And Calculator)"
|
||||||
1991-02-20,"День рождения Python","Задумка по реализации языка появилась в конце 1980-х годов, а разработка его реализации началась в 1989 году сотрудником голландского института CWI Гвидо ван Россумом. Гвидо начал разрабатывать Python на досуге, позаимствовав некоторые наработки для языка ABC"
|
1991-02-20,"День рождения Python","Задумка по реализации языка появилась в конце 1980-х годов, а разработка его реализации началась в 1989 году сотрудником голландского института CWI Гвидо ван Россумом"
|
||||||
1995-05-23,"День рождения MySQL","MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM — подпрограммы низкого уровня"
|
1994-04-07,"День рождения Рунета","7 апреля 1994 года для России был зарегистрирован домен — .Ru — и внесен в международную базу данных национальных доменов верхнего уровня."
|
||||||
1996-07-08,"День рождения PostgreSQL","К разработке Postgres, начавшейся в 1986 году, имел непосредственное отношение Майкл Стоунбрейкер, руководитель более раннего проекта Ingres"
|
1995-05-23,"День рождения MySQL","MySQL — это система управления базами данных (СУБД), распространяемая как свободное программное обеспечение"
|
||||||
2005-07-21,"День рождения Django","Джанго — свободный фреймворк для веб-приложений на языке Python. Проект поддерживается организацией <i>Django Software Foundation</i>. Веб-фреймворк Django используется в сайтах Instagram, Disqus, Mozilla, The Washington Times, Pinterest, YouTube, Google и др. Авторы: американский веб-разработчик Адриан Головатый и британский программист Саймон Уиллисон"
|
1996-07-08,"День рождения PostgreSQL","PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД). Разработка начиналась в 1986 году Майклом Стоунбрейкером, руководителем более раннего проекта Ingres"
|
||||||
2008-12-03,"День рождения Python 3","После длительного тестирования, вышла первая версия Python 3000 (или Python 3.0, также используется сокращение Py3k). В Python 3000 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Python"
|
1998-04-04,"День веб-мастера","4 апреля — «404» — отмечают свой профессиональный праздник неутомимые веб-мастера и интернет-разработчики"
|
||||||
2010-04-01,"День рождения Flask","Создатель и основной автор — австрийский программист Армин Ронахер, начал работу над проектом в 2010 году"
|
2005-07-21,"День рождения Django","Джанго — свободный фреймворк для веб-приложений на языке Python. Авторы: американский веб-разработчик Адриан Головатый и британский программист Саймон Уиллисон"
|
||||||
2018-12-05,"День рождения FastAPI","FastAPI — веб-фреймворк для создания API, написанный на Python. Один из самых быстрых и популярных (после Django и Flask) веб-фреймворков, написанных на Python. Автор — колумбиец Себастьян Рамирез"
|
2008-12-03,"День рождения Python 3","В Python 3000 (Python 3.0, Py3k) устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Python"
|
||||||
|
2010-04-01,"День рождения Flask","Flask — фреймворк для создания веб-приложений на языке программирования Python. Создатель и основной автор — австрийский программист Армин Ронахер"
|
||||||
|
2018-12-05,"День рождения FastAPI","FastAPI — веб-фреймворк для создания API, написанный на Python. Один из самых быстрых и популярных (после Django и Flask) веб-фреймворков, написанных на Python. Автор — Себастьян Рамирез"
|
||||||
|
|||||||
|
Reference in New Issue
Block a user