Files
Jarvis/triggers.py

62 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Парсер почты
import datetime
import email
import imaplib
# будильник
import threading
import time
# Будильник
# Формат строки (год месяц день час минута секунда)
#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
# проверка почты на новое письмо gmail
# Нужно включить https://myaccount.google.com/lesssecureapps и https://mail.google.com/mail/u/2/#settings/fwdandpop
# Формат строки (логин пароль )
#check_mail_config='login@gmail.com Password123'
def check_email(check_mail_config):
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()
count_Email_Start = (mail.select("inbox")[1][0]).decode('utf-8')
while True:
mail.list()
count_Email_Current = (mail.select("inbox")[1][0]).decode('utf-8')
if count_Email_Current > count_Email_Start:
result, data = mail.search(None, "ALL")
ids = data[0] # Получаем сроку номеров писем
id_list = ids.split() # Разделяем ID писем
latest_email_id = id_list[-1] # Берем последний ID
result, data = mail.fetch(latest_email_id, "(RFC822)") # Получаем тело письма (RFC822) для данного ID
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
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
time.sleep(15) # частота проверки нового письма
def test_trigger(var):
time.sleep(int(var))
def test_action(var):
print("Я пишу", var)