#!/usr/bin/env python3
#encoding: UTF-8
import sys
import imaplib
import email
import os
import PyPDF2
import re
import base64
server = "imap.mail.ru"
port = "993"
login = "dvbakulin@bk.ru"
password = "fAV1sniFTv0BFd5gubfm"
putdir="/Data-2/";

ver="1.0";
copyleft="(c) 2018 by Pavel Gribov http://грибовы.рф";
comment="Сей чудный скрипт смотрит почту по imap протоколу, сохраняет вложения в заданную папку, удаляет письмо с сервера";

# История изменений

##

print (ver);
print (copyleft);
print (comment);

if len(sys.argv)==1:
    print ("Возможные параметры:")
    print ("--run выполнение скрипта. Без этого параметра не выполняется.")
    exit(0)
arg=sys.argv[1]
if arg=="--run":
    print ("- подключаемся к ",server);
    mail = imaplib.IMAP4_SSL(server)
    print ("-- логинимся");
    mail.login(login, password)
    mail.list()
    print ("-- подключаемся к energo");
    mail.select("energo")
    print ("-- получаем UID последнего письма");
    result, data = mail.uid('search', None, "ALL")       
    try:
     latest_email_uid = data[0].split()[-1]     
    except IndexError:
     print("-- писем нет!");
     exit(0)
    result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
    raw_email = data[0][1]
    try:
     email_message = email.message_from_string(raw_email)	
    except TypeError:
     email_message = email.message_from_bytes(raw_email)
    print ("--- нашли письмо от: ",email.header.make_header(email.header.decode_header(email_message['From'])));
    for part in email_message.walk():
        print(part.get_content_type())
        if "application" in part.get_content_type() :	    
            filename = part.get_filename()
            filename=str(email.header.make_header(email.header.decode_header(filename)))
            if not(filename): filename = "test.txt"          
            print ("---- нашли вложение ",filename);	    
            fp = open(os.path.join(putdir, "2.pdf"), 'wb')
            fp.write(part.get_payload(decode=1))
            fp.close
    print ("-- удаляем письмо");
    mail.uid('STORE', latest_email_uid , '+FLAGS', '(\Deleted)')  
    mail.expunge()
    pdf_file = open('2.pdf', 'rb')
    read_pdf = PyPDF2.PdfFileReader(pdf_file)
    page = read_pdf.getPage(0)
    page_content = page.extractText()
    res = page_content.split()# тут уже список слов ['Привет', 'мир', 'вот', 'мой', 'ответ', 'вам', 'на', 'вопрос']
    print(res)
    print(''.join(res[res.index('кВт.ч')+4]))
    mes1=(''.join(res[res.index('кВт.ч')+4]))
    mes2=(''.join(res[res.index('кВт.ч')+1]))
    print(''.join(res[res.index('кВт.ч')+1]))
    f = open('/usr/share/hassio/homeassistant/pokaz_electro.txt', 'w')
    f.write(mes2 + ';' + mes2)
    f = open('/usr/share/hassio/homeassistant/summa_electro.txt', 'w')
    f.write(mes1 + ';' + mes1)

    