#!/usr/bin/python
# -*- coding: utf-8 -*-
import gtk
from time import gmtime, strftime
import smtplib
from email.MIMEText import MIMEText
from_letter = 'workcontrol@yandex.ru' #от кого (учетная запись должна существовать

)
to_letter = 'nachalnic@gmail.com' #кому (учетная запись должна существовать

)
subject_letter = 'Я (Петя Опоздалкин) к вам пишу – чего же боле? Что я могу еще сказать? Теперь, я знаю, в вашей воле меня презреньем наказать.' #тема
server = "213.180.204.38" #smtp-сервер (этот для яндекса)
port = 25
user_name = "workcontrol" #логин
user_passwd = "************" #пароль
def wakeup(widget, event):
if event.state & gtk.gdk.CONTROL_MASK and event.keyval == 115 or event.state & gtk.gdk.CONTROL_MASK and event.keyval == 1753: #при нажатии Ctrl+S(115)
time_log = strftime("%H") + ':' + strftime("%M") #получаем текущее время
clipboard=gtk.Clipboard(display=gtk.gdk.display_get_default(), selection="CLIPBOARD") #копируем введённые данные в буфер
start, end = buffer_data.get_bounds()
buffer_data.select_range(start, end)
ptext=text_data.get_buffer().copy_clipboard(clipboard)
ptext=clipboard.wait_for_text()
clipboard.store()
ptext = ptext.decode('utf-8')
chars = len(ptext) #получаем количество символов
space = ptext.count(' ') #ищем все пробелы
chars = chars - space #текст без пробелов
if chars >= 150: #если символов больше или равно 150
message = MIMEText(ptext, "", "utf-8")
message['Subject'] = subject_letter
message['From'] = from_letter
message['To'] = to_letter
s = smtplib.SMTP(server, port)
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(from_letter, to_letter, message.as_string()) #отправляем
s.quit()
quit() #и выходим
else: #иначе показываем пользователю сообщение
dialog = gtk.MessageDialog(parent=None, flags=gtk.DIALOG_MODAL, type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_NONE, message_format='\n\nСлишком мало букв. \nПиши ещё. \nНажми Esc.')
dialog.show()
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_position(gtk.WIN_POS_CENTER)
w.fullscreen()
w.set_size_request(800, 600)
w.set_border_width(5)
w.add_events(gtk.gdk.KEY_PRESS_MASK)
w.connect("key-press-event", wakeup)
w.connect("destroy", quit)
w.set_title('')
time = '<span font_desc="Sans 20"> <b>' + strftime("%H") + ':' + strftime("%M") + '</b> </span>' #время входа
label_time = gtk.Label()
label_time.set_markup(time)
label_time.show()
label_why = gtk.Label('Вы видите данное окно из-за опоздания на работу.\nПожалуйста заполните форму ниже и нажмите Ctrl+S. Спасибо.')
label_why.show()
text_data = gtk.TextView()
buffer_data = text_data.get_buffer()
text_data.set_editable(True)
text_data.set_justification(gtk.JUSTIFY_LEFT)
text_data.set_wrap_mode(gtk.WRAP_WORD_CHAR)
text_data.show()
t = gtk.Table(10, 10, homogeneous=True)
t.attach(label_why, 0, 9, 0, 1)
t.attach(label_time, 9, 10, 0, 1)
t.attach(text_data, 0, 10, 1, 10)
t.show()
w.add(t)
w.show()
#условие запуска скрипта (если днём надо перезагрузиться скрипт не будет работать)
#if 11 >= strftime("%H") >= 9 and strftime("%M") >= 5: #если час прихода 9-11 и минуты больше или равны 5 (9:05-11:05)
# gtk.main() #запускаем скрипт
#else:
# quit()
gtk.main()