Linux для всех

индекс
247,20

Апплет на панель Gnome, отображающий карму и хабрасилу

Habrahabr Monitor Applet



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

UPD (22.03.2010): текущая версия — 0.1.9. Журнал изменений доступен на домашней странице программы.
+66
7 января 2009, 16:56
24

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

+2
Devgru #
Что за шрифт у вас?
+5
mrShadow #
Liberation (Sans)
+1
Devgru #
Спасибо.
0
korynd #
Апплет использует системный шрифт?
0
mrShadow #
Шрифты настраиваются.
0
korynd #
В том смысле, что берутся из системной темы?
–2
Vadi2 #
fwrite($static, 'SET sql_log_bin = 0;'."\n".
'SET NAMES \'utf8\';'."\n".
'USE popcon2;'."\n".
'SET AUTOCOMMIT=0;'."\n".
'SET FOREIGN_KEY_CHECKS=0;'."\n".
'SET UNIQUE_CHECKS=0;'."\n".
'ALTER TABLE daily_data DISABLE KEYS;'."\n".
'ALTER TABLE static_data DISABLE KEYS;'."\n".
'INSERT IGNORE INTO static_data VALUES ');
fwrite($daily,'INSERT INTO daily_data VALUES ');
+1
Vadi2 #
Блин, не то вставил. Хотел: «Нет, по дефолту не берутся. Хотя должны»
0
mrShadow #
Думаете, стоит добавить галочку «Использовать шрифт по умолчанию»? Я не стал этого делать, потому что у большинства всё равно карма и хабрасила будут раскрашены не так, как дефолтный текст (зелёный и голубой цвет текста там по моему очень кстати).
0
Vadi2 #
цвет ето цвет, а шрифт — лучьше елси он системный по дефолту
+50
melmaxnvk #
Это, наверное, для кармадрочеров придумали?! :)
+12
mrShadow #
Угу, для них. Ещё за виртуалами наблюдать удобно.
НЛО прилетело и опубликовало эту надпись здесь
+3
mrShadow #
Просто добавьте несколько апплетов на панель.
+3
c0deX #
Мне кажется можно просто повесить несколько апплетов на панель, настроенных на разные ники
+1
DZhon #
Прям-таки хотел написать, но боялся высказать :)
Вопрос практической пользы для меня будет, видимо, открыт еще долго.
+10
Orlangur #
Концентрированое дрочерство. Еще частоту рефреша секунд в 5 выставить %)
+2
Frosty #
3, а то не дай бог пропустишь чего важного ;)
+1
RayZ #
Кармографа не достаточно в профиле?
+1
mrShadow #
1. Хабрасилу не отображает
2. В профиль заходить надо
+5
mrShadow #
Забыл.

3. Тренируюсь в написании апплетов
+3
gigigi #
было бы интересно почитать как их писать :)
+1
Cyxapeff #
Уже давно написано: pyobject.ru/blog/tag/gnome/
0
Kalan #
0. Я его всё время забываю починить;
1. Будет.
0
kotuke #
Можно узнать, что у вас за стиль?
+1
mrShadow #
Конечно можно. Cloudlooks
0
urandom #
Не думаю, что буду применять по прямому назначению, но спасибо за хороший примерчик апплета на питоне :)
0
mrShadow #
Не за что. Я ведь тоже не с нуля писал :)

habrahabr.ru/blogs/linux/45627/
0
ilembitov #
Посмотрите на citkit-е, там точно были статьи про написание апплетов на питоне, только не могу найти
0
urandom #
Я по-моему их читал, и вроде они были очень устаревшие, ну а тут уже живой пример)
+2
Vadi2 #
Getdeb.net собрал пакет (для ленивых :). Скоро будет опубликован на сайте, а пока для теста можно скачать тут.

(ресурсы для пакета в тойже папке — коли захотите ППА сделать :)
–2
Tonna #
Не портите Getdeb.net этой бякой, умоляю… Выложите сюда, deb-кармодрочеры будут счастливы
0
Vadi2 #
ну, как хотите. действительно довольно специализованная вещь. может автор поставит пакет в code.google.com/p/habr-monitor-applet/downloads/list
0
mrShadow #
Поставлю.
0
antono #
Поставте еще и в пост ссылку на deb — получите резкий прирост базы пользователей :)
+2
Grawl #
вещь хорошая, я бы на ней постоял =)
только вот лениво мне, тупому юзеру, устанавливать проги как-то, кроме деб-пакетов =))
0
Vadi2 #
0
Grawl #
а теперь эту ссылку — в пост, и всё будет хорошо
0
GloooM #
Тоже недавно писал на PyGTK апплет для гномовой панельки, который выводил баланс на счету интернет провайдера и телефона.
Инсталятор сделал башевым скриптом, который запрашивал пароль для судо и сам инсталил куда нужно файлы, народ без проблем смог поставить.
Использовал для отправки пост запросов httplib и столкнулся с такой траблой, что при невозможности подключиться к серверу, поток просто зависает и все, никакие таймауты не спасают ситуацию. Может кто из питонистов подскажет как решить? ) Сам пришел к мысли что стоит отказаться от httplib и самому написать класс для этого используя сокеты, но времени не нашлось пока.
0
TWINc #
Жалко людей для которых карма на хабре так важна…
–2
zencd #
Знаете, вас тоже :'-(
+4
ferrari #
Ану я щас тебе опущу карму, а ты посмотри — правильно работает или нет =) шютка
–2
Assuri #
Идея интересная, но лучше было бы, если это был плагин для FireFox. Предлагаю кроме кармы и хабрасилы добавить некоторые другие функции Хабрахабра, например, выпадающий попап, когда появился новый пост с фильтром(главная страница, личные, корпоротивные и т.п.). Я бы пользовался.
–1
dimasi #
Следующий этап — это программа для iPhone которая бы отображала вашу карму и место в рейтинге.
Тогда можно будет «дрочить» на карму и в вагоне метро и в маршрутке по дороге на работу.

:)

+1
naryl #
В суть не вникал. Возможно бОльшая часть кода связана с апплетом, но, на всякий случай, можно сделать проще:

USER=naryl
TMP=$(mktemp)
lynx -dump http://${USER}.habrahabr.ru > ${TMP}
echo "Карма: $(grep -A 1 karma < ${TMP} | tail -n 1), Хабрасила: $(grep -A 1 habrasila < ${TMP} | tail -n 1)"
rm ${tmp}


В WM'ах с текстовым статусбаром (wmii например) можно сделать вывод в него по таймеру.
+1
mrShadow #
Да, есть такой вариант. Можно ещё с помощью conky или dzen выводить, а lynx заменить на wget. Но этот способ менее удобен для обычного пользователя, не так ли?
0
naryl #
lynx -dump отрендерёную страницу выводит. Её разбирать легче. С другой стороны wget гарантированно у всех есть.

> Но этот способ менее удобен для обычного пользователя, не так ли?
Зависит от пользователя. Ваш апплет пригодится только пользователям Gnome. Данный скрипт пригодится только пользователям WM'ов с текстовым статусбаром.
0
roller #
собрать в deb, поставить зависимость на lynx… делов то =)
0
Vadi2 #
0
mrShadow #
Огромное спасибо. До завтра поправлю.
0
johnconstantine #
Было бы здорово, если бы поле для ввода ника сигнализировало о том, что такого ника не существует, если его действительно не существует.
0
mrShadow #
Посмотрю, что можно сделать.
0
mrShadow #
Пришёл к мысли, что не стоит это реализовывать. За время, которое требуется для определения, есть хабраюзер или нет, пользователь уже может перейти на другую вкладку в диалоге настроек или даже успеть закрыть его (скорее всего это он и сделает). В этом случае у нас не будет выхода кроме как вывести рядом с апплетом уведомление (как делается сейчас в любом случае). Использовать два метода уведомления как-то некрасиво что-ли.
–9
acy #
Мне кажется ваш плагин никому на хуй ни упал.
0
fantom_ua #
а на KDE будет кто то делать?
–1
Grawl #
кде никто не любит, очень жаль
0
sk2 #
кармадрочерство как оно есть.
–1
sk2 #
еще добавлю, что понимаю, что автор написал этот апплет с целью потренироваться в написании оных, а запостил сюда с целью проверить его в действии.
но тот факт, что пост так лихо вывели на главную как-то удручает. теперь мне всегда будет казаться, что большинство написанного «по делу» написано не просто так из добрых побуждений :)
+3
sraider #
Класс! Еще бы длину самого важного органа показывал, вообще бы красота была! ;)
+1
naryl #
Обновляя информацию каждые 5 секунд? ;D
–1
Grawl #
жжоте )))
0
yktoo #
Ошибка при добавлении апплета на панель:

The panel encountered a problem while loading "OAFIID:GNOME_HabrMonitorApplet".
0
mrShadow #
К сожалению, по этому сообщению нельзя ничего понять. Если у вас есть время, попробуйте запустить программу вручную из консоли:

/usr/lib/gnome-panel/habr-monitor-applet/main.py

Затем через меню панели добавьте апплет и посмотрите, что в консоли вывелось.
0
yktoo #
Это была моя ошибка. Я вместо содержимого src поместил в habr-monitor-applet сам каталог.

Я думаю, было бы более логично назвать каталог вместо srchabr-monitor-applet, и в инструкции написать, что надо класть его в /usr/lib/gnome-panel/ (ведь каталог всё равно приходится создавать).
0
mrShadow #
Директорию с исходниками просто принято называть «src». Допишу в файл INSTALL предупреждение.
+2
develop7 #
Hint: http://habrahabr.ru/api/profile/<username>/ возвращает xml.
0
mrShadow #
Спасибо, пригодится. Никогда не знал, где же всё-таки у Хабра API.
0
mrShadow #
Обнаружил недостаток. В API значения меняются не мгновенно. То есть зашёл к вам в профиль, посмотрел значение хабрасилы, поставил плюс за коммент, посмотрел снова — значение обновилось, посмотрел через API — осталось старым.
0
develop7 #
Ух ты, не знал. Спасибо, учтём :)
+1
naryl #
О! Тогда можно ещё проще:

USER=naryl
lynx -dump habrahabr.ru/api/profile/$USER/ | awk "/$USER/{print \$1 \" Карма: \" \$2 \" Хабрасила: \" \$3 \" Рейтинг: \" \$4 }"
+1
Vadi2 #
И на конки поставить
0
alexeym #
надо бы на свою карму прикрутить mrtg :)
0
crosser #
Господа, я понимаю хабразависимость, сам такой — но нельзя быть настолько кармазависимыми.
0
bagzilla #
Сколько трафика сьедает данный аплет в день? Точнее я имею в виду какой интервал обновления.
0
mrShadow #
Интервал обновления 5 минут. Я пока не сделал его настраиваевым, так как не вижу необходимости.

Страница профиля занимает ~25 Кб. Если компьютер включён 24 часа:
25 * (24 * 60 / 5) = 7200 Кб ~= 7 Mб

В версии 0.1.1 буду использовать API. Нужная страница занимает ~150 байт.
150 * (24 * 60 / 5) = 43200 б ~= 43 Кб
+1
yktoo #
Ему бы не мешало ещё сделать прозрачным фон. Иначе смотрится немного не очень:
0
mrShadow #
Посмотрю, что можно сделать.
+1
mrShadow #
Исправлено в версии 0.1.1
0
yktoo #
Ну, совсем другой коленкор, спасибо, камрад!
Вот теперь только ещё (смайлег):
1. Уметь бы сохранять гориз. ориентацию при добавлении на вертикальную панель (см. выше).
2. Уметь выводить то же самое не в строку, а в столбик (значения одно под другим).

P.S. deb-пакет — это, кстати, просто замечательно! :)
0
mrShadow #
Насчёт первого пункта — будет через минуту.
Насчёт второго. Думаешь, это будет кому-нибудь нужно? Панелька слишком широкой должна быть, чтобы вместить значения.
0
yktoo #
Вот именно если он лежит на вертикальной панели, а текст выводится горизонтально (п. 1) — это и может оказаться очень полезным.
0
mrShadow #
В общем, попробуйте новый пакет и скажите, что вам ещё не хватает :)
0
yktoo #
Э… а что поменялось-то? :)
0
mrShadow #
Теперь он нормально ориентацию меняет. Можете перетаскивать панель, и апплет будет подстраиваться.

Лично я не понимаю. зачем нужна при вертикальной панели горизонтальная ориентация текста. Он же просто не поместиться, или панельку придётся делать очень широкой.
0
yktoo #
Я, если честно, не заметил никакой разницы с предыдущим вариантом апплета — он и раньше на вертикальной панели располагался вертикально.

А вертикальная панель вполне может быть широкой, поскольку большинство современных ноутов и много мониторов — wide screen, соответственно, иметь такую панель, по-моему, более удобно, чем, скажем, толстую горизонтальную. Ну и, конечно, при варианте «текст поперёк» место на панели используется намного более экономично.
0
mrShadow #
Хорошо, добавлю настройку в следующей версии (0.1.2)
+1
mrShadow #
0
yktoo #
Отлично!
0
burunduk2 #
на панели итак места нет. имхо лучше иконку с альтом или попап, если чё поменялось.
0
mrShadow #
Попап отвлекать будет.
0
burunduk2 #
почему?

gmail нотификатор очень удобно оповещает, как только приходит новое сообщение.
0
mrShadow #
Не, ну почта всё-таки дело важное, не то что изменение кармы и хабрасилы. Боюсь даже сказать, до какого состояния хабрачеловека доведёт этот попап после публикации топика, ведь параметры будут очень часто меняться.
–1
burunduk2 #
ж)))))
0
etc #
На скрине очень аккуратная панель :)
0
SilverOK #
Это сделано что бы не заходить на Хабр и смотреть на карму? Зачем? :-)
0
Leency #
Хабрадрочеры обрадуются :D
0
romantik #
спасибо, полезная штука :) я не дрочу на карму. правда.
0
tsabu #
а у меня панель полупрозрачная, смотрится некрасиво ((
0
Vadi2 #
Прозрачность уже добавлена, скоро новый пакет будет.
0
yktoo #
У меня вдруг (ВНЕЗАПНО) возник вопрос: а нельзя ли сделать так, чтобы апплет принимал во внимание установки системного proxy? В настоящий момент он через прокси не работает совсем, правильно?
0
mrShadow #
С прокси наверняка не работает, потому что поддержкой прокси я не занимался. Сделать конечно можно, но у меня сейчас нет времени, да и тестировать у меня не получится, потому что прокси я не использую (если кто подскажет, где найти публичный прокси, буду благодарен). Пока добавил в планы на будущее на странице программы (http://code.google.com/p/habr-monitor-applet/) и себе в TODO.
0
mrShadow #
Если вам нужна поддержка только HTTP прокси (пусть даже с авторизацией), готов реализовать в ближайшее время. Если нужна поддержка SOCKS, то ей не займусь, ибо так и не нашёл, как с такими прокси работать.
0
mrShadow #
Добавлена базовая поддержка HTTP прокси.
0
kovyrlo #
Заметил фичу, если в поле для ввода интервала ввести собственноручно время, то при закрытии оно не сохраняется. Если кнопками набить, то сохраняется всё. Система: Gnome 2.26.3, Python 2.6.4.
Спасибо за плагин! :)
0
mrShadow #
Поправлю в ближайшее время.
0
mrShadow #
Исправлено в версии 0.1.7. Тестируйте.
0
kovyrlo #
Спасибо, работает как надо.
+1
kovyrlo #
После того как курсор побывал в поле ввода интервала он не может попасть в поле ввода ника
0
mrShadow #
Накосячил, когда предыдущий баг исправлял… Тебе архив подойдёт? Deb-пакет пока собрать не могу, нужных утилит под рукой нет.

Архив: stream.ifolder.ru/16816482.
Если всё ок, напиши, я новую версию на гуглокод залью.
0
kovyrlo #
подойдёт конечно, у меня gentoo.
работает
0
mrShadow #
Отлично. Залил новую версию. Спасибо за багрепорт.
+1
kovyrlo #
я еще один баг нашел :)
при отрицательном рейтинге, показывает (1)
0
mrShadow #
Честно, просто не замечал, что рейтинг может быть отрицательным :)
Тестируй архив: slil.ru/28827245
0
kovyrlo #
ну конечно )))
работает

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