Perl, Curl, Gmail

8 утра. Пришел на работу, выпил кофе, покурил. В голове каша, на работу не настроен. Не есть хорошо. Делаем разминку для мозгов опираясь на статью на Habrahabr. Напишем-ка простенький прикладной демон, который будет оповещать нас о новой почте на Gmail.

Сначала в рабочей директории создадим папку с конфигом:

$ mkdir config

Теперь в ней создадим файл конфига:

$ nano -w config/user.conf

Заполним его:

{
  'username' => 'Gmail username',
  'password' => 'Gmail password',
  'timeout' => '300', #количество секунд между запросами 
}

Добавим немного красивости. Создадим директорию для иконки и возможно еще чего-нибудь еще:

$ mkdir share
$ mkdir share/icons
$ cd share/icons
$ wget -c http://www.google.com/intl/ru/options/icons/gmail.gif
$ cd ../..

Теперь сам скрипт:

$ nano -w gmail

Пишем:

01. #!/usr/bin/perl
02. use strict;
03. my $path = `pwd`; $path =~ s/\n//i;
04. my $icon = $path.'/share/icons/gmail.gif';
05. my $config = require $path.'/config/user.conf';
06. getMail();
07. sub getMail() {
08.    my $recieve = `curl -u $config->{'username'}:$config->{'password'} --silent "https://mail.google.com/mail/feed/atom" | grep -c "<entry>"`;
09.    $recieve =~ s/\n//i;
10.    `notify-send -u low -t 7000 -i $icon "Получено $recieve новых писем"` if $recieve != 0;
11.    sleep($config->{'timeout'});
12.    getMail();
13. }

Сохраняем и запускаем:

$ ./gmail &

Как то вот так…

Screenshot

Screenshot

Пойду теперь работать…


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

4 Comments »

 
  • mirage:

    Бесконечный цикл рекурсивной функцией?
    А стек не переполнится?

    • gwinn:

      хз, как уже говорил ранее, скрипт просто для разминки, никак не конечная реализация, ну и как бы уже около 6 часов болтается в процессах, ничего страшно-ужасного не происходит =)

  • boh:

    Может быть, стОит воспользоваться cтандартными директориями ~/.config и ~/.share ?

    • gwinn:

      Можно конечно =)
      Просто это скрипт на коленке, за пять минут, для того что бы войти в струю так сказать, вариантов модернизации уже куча в голове вертится, вплоть до интеграции с XFCE =)

 

Добавить комментарий

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>