diff --git a/actions.py b/actions.py index 2975e31..b9caf8d 100644 --- a/actions.py +++ b/actions.py @@ -1,6 +1,9 @@ import smtplib from email.mime.text import MIMEText from email.header import Header +from flask_login import current_user +import telegram + def send_mail(): mail_sender = '' #отправитель @@ -21,3 +24,8 @@ def send_mail(): server.login(username, password) server.sendmail(mail_sender, mail_receiver, msg.as_string()) server.quit() + + +def send_message_tg(text, user_id=current_user.get_tg_id()): + telegram.send_message(user_id, text) + diff --git a/db_init.py b/db_init.py index f42305d..d8154ad 100644 --- a/db_init.py +++ b/db_init.py @@ -7,3 +7,5 @@ def db_fill(): add_trigger('Проверить почту', 'check_email') add_action('Тест', 'test_action') + add_action('Отправить письмо', 'send_mail') + add_action('Отправить сообщение в ТГ', 'send_message_tg') diff --git a/db_routing.py b/db_routing.py index f3c845f..e9ba1c5 100644 --- a/db_routing.py +++ b/db_routing.py @@ -13,7 +13,7 @@ class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) password = db.Column(db.String(120), nullable=False) - tg_username = db.Column(db.String(80), unique=True) + tg_id = db.Column(db.String(80), unique=True) def __init__(self, username, password, tg_username=None): self.username = username @@ -28,6 +28,9 @@ class User(db.Model): def get_id(self): return self.id + + def get_tg_id(self): + return self.tg_id class Trigger(db.Model): diff --git a/scenario_manager.py b/scenario_manager.py index 24d52a0..6575f74 100644 --- a/scenario_manager.py +++ b/scenario_manager.py @@ -1,5 +1,6 @@ from threading import Thread import triggers +import actions import db_routing @@ -15,7 +16,7 @@ class Executor(Thread): def execute(self): trigger = getattr(triggers, self.trigger_def) trigger(self.trigger_args) - action = getattr(triggers, self.action_def) + action = getattr(actions, self.action_def) action(self.action_args) def run(self): diff --git a/triggers.py b/triggers.py index 4a2a0ce..cbaf35d 100644 --- a/triggers.py +++ b/triggers.py @@ -1,22 +1,24 @@ -# Парсер почты import datetime import email import imaplib -# будильник -import threading import time + +def test_trigger(var): + time.sleep(int(var)) + + # Будильник # Формат строки (год месяц день час минута секунда) -#Config_time='2020 3 22 15 20 0' -def alarm_clock(Config_time): - Config_list=Config_time.split() - dt = datetime.datetime(int(Config_list[0]), int(Config_list[1]), int(Config_list[2]), int(Config_list[3]), int(Config_list[4]), - int(Config_list[5])) +# Config_time='2020#3#22#15#20#0' +def alarm_clock(config_time): + config_list = config_time.split('#') + dt = datetime.datetime(int(config_list[0]), int(config_list[1]), int(config_list[2]), int(config_list[3]), + int(config_list[4]), + int(config_list[5])) diff = (dt - datetime.datetime.now()).total_seconds() try: time.sleep(diff) - print('сообщение в телегу текст') except: print('Нельзя поставить будильник в прошлое') return @@ -24,11 +26,10 @@ def alarm_clock(Config_time): # проверка почты на новое письмо gmail # Нужно включить https://myaccount.google.com/lesssecureapps и https://mail.google.com/mail/u/2/#settings/fwdandpop -# Формат строки (логин пароль ) -#check_mail_config='login@gmail.com Password123' - +# Формат строки (логин#пароль) +# check_mail_config='login@gmail.com Password123' def check_email(check_mail_config): - mail_config_list=check_mail_config.split() + mail_config_list = check_mail_config.split('#') mail = imaplib.IMAP4_SSL('imap.gmail.com', 993) mail.login(mail_config_list[0], mail_config_list[1]) mail.list() @@ -47,15 +48,6 @@ def check_email(check_mail_config): email_message_From = email_message['From'] email_message_From = email_message_From[email_message_From.index('<'):email_message_From.index('>')] email_message_From = email_message_From[1:] - print('Отправить сообщение в телегу о том, что занят') - print('Отправить "от кого" ', email_message_From) - count_Email_Start = count_Email_Current + return + # count_Email_Start = count_Email_Current time.sleep(15) # частота проверки нового письма - -def test_trigger(var): - time.sleep(int(var)) - - -def test_action(var): - print("Я пишу", var) -