суббота, 7 января 2012 г.

Проверка почты


С Рождеством Христовым !

По случаю нашел скрипт проверки почты с https://mail.google.com/a/gmail.com/
Ссылка на оригинал http://crunchbanglinux.org/forums/topic … ing-https/


Для любителей классических CONKY скрипт имеет такой вид


#!/bin/bash
wget -q -O - https://mail.google.com/a/gmail.com/feed/atom --http-user=${1}@gmail.com --http-password="${2}" --no-check-certificate | grep fullcount | sed 's/<[^0-9]*>//g'


Копируем и называем gmail_generic.sh, не забываем дать права

В conkyrc добавляем строки

{execpi 300 ~/Script/Shell/gmail_generic.sh username  'password'}


Прописываем свой путь к скрипту и вместо username и password пишем своё имя из почтового адреса до знака @ и паспорт
Скрипт лучше сделать скрытым

Ну и конечно не удержался и сделал всё это на LUA



--[[ mail.lua
    by olgmen 07.01.2012


Скрипт проверяет наличие новой почты на сайте https://mail.google.com/a/gmail.com/


Для запуска выше слова TEXT добавляем


lua_load ~/путь_к_скрипту/mail.lua
lua_draw_hook_pre mail


Для вывода текста необходим скрипт который можно взять здесь http://wlourf.deviantart.com/#/d36njc0
]]


usrhome = os.getenv("HOME")                            -- определяем домашнюю директорию


dofile (usrhome .. "/путь_к_скрипту/text.lua")      -- загружаем скрипт для вывода текста


-- данные для работы скрипта


secs = 600                                     -- обновление каждые 10 минут
user =                                            -- имя, часть почтового адреса до @gmail.com
password =                                    -- пасспорт к почтовому ящику


function conky_mail()    
    
    local updates = tonumber(conky_parse('${updates}'))
    local timer = (updates %secs) + 1                        -- устанавливаем время обновления
    
    if timer == 1 or updates == 0 then                        -- проверяем наличие почты
    
        mail = conky_parse("${exec wget -q -O - https://mail.google.com/a/gmail.com/feed/atom --http-user=user@gmail.com --http-password=\"password\" --no-check-certificate | grep fullcount | sed 's/<[^0-9]*>//g'}")
    else
        mail = "пишут :)"                                    -- любое сообщение об отсутствии почты
    end


    mail_settings = {                                        -- данные для скрипта text.lua


                    {
                    text = "Почта    " .. mail,
                    x = 125,
                    y = 600,
                    font_size = 22,
                    bold = true,
                    h_align = "c",
                    colour = {{0, 0x555555, 1},{0.5, 0xcfcfcf, 1},{1, 0x555555, 1}},
                    orientation="nn",
                    },
                    }
--[[ здесь заканчивается ввод всех данных ]]


    if conky_window == nil then return end
    
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)


-- вывод текста
    for i,v in pairs(mail_settings) do
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
    end
end

Удачных коньков

2 комментария:

  1. покороче, на питоне:
    ~$ cat .scripts/mail.py
    #!/usr/bin/env python
    # coding: utf-8
    import pycurl, StringIO, re

    username = '*****'
    password = '*****'

    def get_mail():
    data = StringIO.StringIO()
    curl = pycurl.Curl()
    curl.setopt(pycurl.WRITEFUNCTION, data.write)
    curl.setopt(pycurl.URL, 'https://'+username+':'+password+'@mail.google.com/mail/feed/atom')
    try:
    curl.perform()
    except:
    return False
    mail = re.findall('(.*)', data.getvalue())[0]
    if mail != '0': return '%s' % (mail)
    else: return '0'

    print get_mail()
    вызов в conky стандартный :)

    ОтветитьУдалить
  2. К сожалению с Питоном не знаком, поэтому пишу на LUA, а за скрипт спасибо.

    ОтветитьУдалить