Дописал отправку сообщения через телеграм

This commit is contained in:
2020-03-22 15:45:23 +03:00
parent 6d30f8373f
commit 6cbb78e344
5 changed files with 32 additions and 26 deletions

View File

@@ -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)

View File

@@ -7,3 +7,5 @@ def db_fill():
add_trigger('Проверить почту', 'check_email')
add_action('Тест', 'test_action')
add_action('Отправить письмо', 'send_mail')
add_action('Отправить сообщение в ТГ', 'send_message_tg')

View File

@@ -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):

View File

@@ -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):

View File

@@ -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)