368 читателей, 4 поста
Администрация
Модераторы
UNIX-like системы и иже с ними.
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | wc -l
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | awk -F '<fullcount>|</fullcount>' '{for (i=2; i<=NF; i++) {print $i}}'Спасибо за подсказку Wolverinecurl -u username:password --silent "https://mail.google.com/mail/feed/atom" | grep -c "<entry>"намекает onix74curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | perl -pe 's/^<title>(.*)<\/title>.*<name>(.*)<\/name>.*$/$2 - $1/'По материалам commandlinefu
комментарии (95)
У Google тоже есть свой мессенджер :) Он более открытый: использует стандартный Джаббер протокол, а также позволяет общаться голосом.
И почту тоже проверяет, да.
Но у него менее… хм… попсовый :) интерфейс.
Так если протокол один, не кажется ли Вам, что как бы проблем быть не должно? Кстати, Jabber — это не «IM» (что бы Вы под этим термином не понимали), а всего лишь старое название XMPP, а ещё точнее: проекта из которого XMPP вырос.
> Мэйл-агент тоже на xmpp
Да ну?
agent.mail.ru/ru/developers/licence.html
Что совершенно не запрещено протоколом.
Только вот не совсем пойму, вы разместили в Линукс для всех и по тексту применяете все к линуксу, а скриншот MacOS X. Это я к тому, что UNIX not LINUX.
А во вторых, к компьютеру могут разные люди случайно подойти. Ну не дело это короче.
curl -u username --silent «https://mail.google.com/mail/feed/atom» | grep -c ""
тогда пароль будет запрашиваться интерактивно, и не показываться. У меня по крайней мере так.
Так не проще посчитать кол-во новых сообщений?
curl -u username:password --silent «https://mail.google.com/mail/feed/atom» | grep -c "<empty>"
Если новых писем нет, то и <empty> отсутствует
<?xml version=«1.0» encoding=«UTF-8»?>
<feed version=«0.3» xmlns=«purl.org/atom/ns#»>
<title>Gmail — Inbox for xxxxxxxxxxxxxx@gmail.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>1</fullcount>
<link rel=«alternate» href=«mail.google.com/mail» type=«text/html» />
<modified>2009-09-09T08:32:02Z</modified>
<entry>
<title>Test22222222</title>
<summary>T111est</summary>
<link rel=«alternate» href=«mail.google.com/mail?account_id=xxxxxxxxxxxx%40gmail.com&message_id=1239dee275d61a35&view=conv&extsrc=atom» type=«text/html» />
<modified>2009-09-09T08:31:53Z</modified>
<issued>2009-09-09T08:31:53Z</issued>
<id>tag:gmail.google.com,2004:1313325830576151093</id>
<author>
<name>My Name</name>
<email>from@mail.dom</email>
</author>
</entry>
</feed>
После прочтения писем в ящике:
<?xml version=«1.0» encoding=«UTF-8»?>
<feed version=«0.3» xmlns=«purl.org/atom/ns#»>
<title>Gmail — Inbox for xxxxxxxxxxxxxx@gmail.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>0</fullcount>
<link rel=«alternate» href=«mail.google.com/mail» type=«text/html» />
<modified>2009-09-09T08:37:23Z</modified>
</feed>
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p"
www.commandlinefu.com/ рулит :)
curl -u login:password --silent «https://mail.google.com/mail/feed/atom» | tr -d '\n' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n «s/\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 — \1/p»
Вообще парсер не должэен ничего менять внутри code :(
#!/usr/bin/env perl use Net::IMAP::Simple; use Email::Simple; my $imap = Net::IMAP::Simple->new('imap_server') || die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n"; if(!$imap->login('username','password')){ print STDERR "Login failed: " . $imap->errstr . "\n"; exit(64); } my $nm = $imap->select('INBOX'); for(my $i = 1; $i <= $nm; $i++){ if($imap->seen($i)){ print "*"; } else { print " "; } my $es = Email::Simple->new(join '', @{ $imap->top($i) } ); printf("[%03d] %s\n", $i, $es->header('Subject')); } $imap->quit;ну и считать вывод | wc -l
Проверил у себя на ярлыке «В мемориз»
Получилась такая ссылка. Работает
А со слешем действительно засада. Попробовал — он его режет тупо и все. Никак не вставить.
.bash_history?habrahabr.ru/blogs/nix/69110/#comment_1964359
habrahabr.ru/blogs/nix/69110/#comment_1964452
habrahabr.ru/blogs/nix/69110/#comment_1964309
read -sp "pass: " && echo && curl -u username:$REPLY --silent "https://mail.google.com/mail/feed/atom" | grep -c ""| iconv -f UTF-8 -t KOI8-R
Вместо последней — кодировку вашей системы. Список досупных кодировок можно посмотреть командой iconv -l
К.О. mode on
Для пущего удобства выражение записать в файл, поместить в /usr/bin/ и сделать ему chmod a+x
Скрипт можно будет запускать из командной строки просто по названию файла.
/К.О.
Я же просто вопрос задал, без всяких намеков :)
и еще хоцю такую же тему для гнома под МАС :)
По-моему в макоси это стандартная фича для скриншотов.
В принципе, тень можно сделать при помощи утилиты montage, входящей в состав пакета imagemagick. Не такую гламурную, конечно, но всё же :)
Держите небольшой скриптик:
Результат:
Можно удадить блок
PNG=`file $1 | grep PNG` if [ -z "$PNG" ]; then echo "Looks like file is not a PNG image" exit 1 fi>Command-Control-Shift-4, then space, then click a window: Take a screenshot of a window and save it to the clipboard
Если интересно, могу написать.
backtick 1 10 10 gmail
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%1` mail(s)][%{B}%Y-%m-%d %{W}%c %{g}]'
backtick 1 10 10 gmail — проверяет почту каждые 10 секунд
[%1` mail(s)] — превращается в [7 mail(s)]