Google Wave

индекс
38,56

Google Wave Notifier для Ubuntu

Уже несколько недель мы используем волну для организации работы небольшой такой фрилансерской команды. И все бы в общем-то хорошо, но для того, чтобы можно было быстро реагировать на новые таски или багрепорты приходилось мало того, что держать открытой веб-интерфейс волны, так еще и обращать туда периодически свое внимание. А это не всегда возможно даже когда просто читаешь какую-нибудь чушь, не говоря уже о состоянии «закопан в работу по уши».


Добавляло дискофморта еще и то, что я, во-первых, работаю на нетбуке — для скриптового программинга его хватает, конечно, но чем меньше на нем запущено тяжелых приложений, тем лучше :), а во-вторых, не пользуюсь Firefox, под который совсем недавно был выпущен AddOn, сообщающий об обновлённых волнах.

С этого-то аддона я и начал плясать, смутно надеясь, что его разработчик достал где-то какую-то апи, с помощью которой можно легко достать информацию о количестве непрочитанных обновлений.

Когда я разобрал аддон на кусочки выяснилось, что, к сожалению, использован там на самом деле достаточно брутальный путь, о котором я и сам задумывался, когда только прикидывал написание нотификатора — мы просто логинимся, получаем код веб-интерфейса, и разбираем json'овский объект, в котором хранится куча разной информации, в том числе — и количество непрочитанных апдейтов блипов.

Так что я потратил некоторое количество времени и наваял питоновский скриптик, занимающийся практически тем же самым — с определенным интервалом показывает системное всплывающее сообщение с количеством и названиями обновленных волн.

«Из коробки» он запустится, наверное, только под ubuntu с gnome, просто потому, что для вывода сообщений использует notify-send (о котором я недавно узнал, перечитывая старые топики на хабре, спасибо, brain2xml :)).

upd: По свидетельству xdemon, работает в kde4, archlinux. Так что, видимо, конструкция не совсем непереносима :)

Но я думаю, что не составит особой проблемы для желающих перепилить скрипт под свою систему и свой любимый способ сообщений, тем более, что код вывода нотификации специально (хитрый план) вынесен в отдельную функцию.

Итак, ставим нотификатор:

  1. Убеждаемся, что у нас есть питон :), urllib, urllib2, cookielib. Самый простой способ — в консоли ввести python, в появившейся строке — import urllib, urllib2, cookielib. Если не сругался — Ctrl+D, чтобы оттуда выбраться. Если сругался — ставим.
  2. Качаем отсюда архив
  3. Распаковываем его куда-нибудь
  4. Правим notify.conf — самым очевидным образом, логин и пароль
    Еще один параметр в конфиге, timeout — это, соответственно, интервал между проверками в секундах
  5. sudo chmod +x ./notify.py в консоли в папке, куда распаковали


Можно запускать :)

В первый раз, наверное, лучше запустить из консоли, ./notify.py, просто потому, что он выводит набор разной дебаговой и не очень информации, по которой можно понять, все ли в порядке.

В архиве еще есть файлик run.sh, написанный мной затем, чтобы можно было без проблем запускать скрипт из System->Preferences->Startup Applications на старте системы.

Главное, что делает sh-скрипт — паузу перед запуском питоновского, чтобы успели отморгаться все системные сообщения и система успела выйти в сеть.

Надеюсь, что это будет полезной штуковиной для волнопользователей :)
C&C very welcome!

PS: Для вывода сообщений использованы иконки из набора MacUltimate Leopard.

PPS: Скрипт написан недавно, особо отладить его я не успел, предоставляется as is :)
К тому же, несмотря на все мои старания, я не нашел официальной позиции Google по отношению к такого рода автоматическим получателям инфы.
+15
31 октября 2009, 14:12
12

комментарии (21)

0
hellt #
есть xmpp робот, который на ваш gtalk аккаунт присылает текст обновлений в волне.
0
bakagaidjin #
Да, я знаю. Но это захламляет список реципиентов, плюс не все, кто создадут волну с моим участием добавят этого робота. Или я неправильно понял, и имеется в виду не wave-robot? Если да, то очень интересно, не поделитесь ссылочкой? Спасибо
0
hellt #
это вейв-робот, но вы его можете добавить в волну сами.
0
bakagaidjin #
ну да. Я такого себе писал :) Но для меня это неудобно — если кто-то еще создает волну, со мной в качестве реципиента — я об этом не узнаю, пока не зайду в интерфейс. Я подумал, что я не один такой :)
+1
hellt #
Да, с уведомлениями пока в волне не густо.
Но я думаю, это временно.
+1
chuwy #
Простите за вопрос не в тему, но что это за картинка? На запрос «wave» она часто попадается. Так понимаю знаменитое что-то?
А нотифиер — да, полезная штука.
+1
bakagaidjin #
Это картина японского художника 19в. Хокусая.
+2
Pryada #
Клёвый чувак. Считается что с него началась Манга (не самая великая заслуга, но ныне это о чём-то может сказать)
Посмотрите его картины, поймёте что такое истинная японская живопись.
Можно научить ребёнка считать до бесконечности, заставив его пересчитать все картины Хокусая с изображением Фудзи :)
0
xvoland #
Осталось только найти инвайт на Waves и всё =)
+1
xdemon #
Работает под kde4, archlinux
0
bakagaidjin #
О, круто, спасибо за репорт. Просто я почему-то был уверен, что notify-send специфически гномовская штука.

Добавил в пост
0
xdemon #
notification daemon вполне себе универсальная штука, вопрос в том что обрабатывает сигнал на конце =)
0
bakagaidjin #
Да, теперь я уже погуглил на эту тему (что, наверное, надо было сделать раньше).

Дело в том, что пост, в котором я нашел его описание, назывался "...notify в gnome", что ввело меня в заблуждение :)
0
Nashev #
хм… на маке мне по умолчанию json не хватило; ща буду искать, как доставить. Если кто уже знает — подмогите.
P.S.: А ещё б неплохо б научиться вывод через Growl сделать.
0
Nashev #
найдя статью bob.pythonmac.org/archives/2008/10/02/python-26-released-now-with-json/, решил просто питон обновить, скачал и установил последний — python.org/download/releases/3.1.1/ — но он заставил обернуть в скобки все строки после print, а затем не нашёл даже ни ConfigParser, ни urllib2.

Скачал таки 2.6.4 с python.org/download/releases/2.6.4/ — и даже со скобочками после print-ов оно запустилось!
Правда, зациклилось, выводя в консоль
Start login…
Send request
Start login…
Send request

и так далее… :(
0
bakagaidjin #
Это значит, что он не получает респонса от вейва — либо что-то с urllib2, либо что-то с сетью.

Но я с трудом себе представляю, как все устроено в макоси, и чем она отличается, да и отдебажить мне негде.

Может, найдется python-программист под мак, сделает доброе дело, посмотрит что не так? Там кода-то — несколько десятков строчек, вроде понятного :)
0
bakagaidjin #
Кстати, можно сделать следующим образом, если Вам не лень — я скину чуть обновленный файлик, который распечатает эксепшен, Вы мне его пришлете, и я попробую все пофиксить :)

Но это, наверное, лучше уже в джаббере обсуждать, чтобы не засорять местную ленту.

Если интересно — bakagaidjin@gmail.com
0
MaEcTPo #
Извините, что вопрос не очень в тему.
Но как вы google wave в работе используете? Какая схема этого всего?
Т.к. я не осили редмайн поставить (какую-то траблу поймал при установке и не могу решить), то хочу попробовать заюзать вэйв для моих задач.
Буду очень благодарен. Спасибо.
0
bakagaidjin #
Написал себе гаджетов, например, для оценки рабочего времени по задачам.

Таски выставляются списком в одном блипе, помечаются как выполненные и через итерацию редактирования удаляются — потому, что в плейбеке все остается. Таким образом можно сразу окинуть орлиным взором весь фронт работ :)

(Можно, по идее, для тасков тоже написать гаджет, благо несложно, и, по идее будет еще приятнее, но мне пока хватает и просто плейн-текста)

Баги — там же, у меня проекты небольшие, как правило, и огромного таск- и баг-листа не бывает, как правило. Зато одновременно идет три-четыре проекта, поэтому преимущества перед мылом для меня огромны — вместо того, чтобы путаться в куче писем по каждому проекту — все наглядно лежит в одном месте :)
0
bakagaidjin #
Но тут, конечно, очень важно, чтобы вся команда согласилась пользоваться новым инструментом — иначе будет, я думаю, не очень удобно.
0
MaEcTPo #
У меня вся команда будет пользоваться, потому что вся команда — это я:) Ну может еще один человек.
Спасибо, попробую поэкспериментировать, думаю получится.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.