PyCallBlocker

14.03.2010 [20:10]
Авторы: V@s3K, использован код демона by Vinu Thomas
Использованное ПО: Geany, Python 2.5, Maemo SDK

Однажды вечером я в очередной раз прочитал о возможности блокировки входящих вызовов на Nokia N900 через D-Bus. И как-бы нечаянно написал, что данный способ уже 5 раз описан на многих тематических форумах, но никто так и не удосужился прикрутить к нему GUI. И вот черт меня дернул сесть и потратить вечер на написание простого гуя для себя любимого и для maemos.ru, который запускает демон, блокирующий ненужные звонки.

На следующий день я научился как загружать свои программы на extras-devel, поэтому пользователи могут очень быстро получить ее себе, а так же следить за обновлениями. Уже открыта страничка на garage.maemo.org, на которой уже появился SVN с исходным кодом, багтрекер и описание на английском языке.

screenshot

Как это работает?

Скачиваем через Диспетчер приложений программу PyCallBlocker. У нее есть несколько зависимостей, так что если у вас еще не установлено ни одного python + pyqt приложения, ему придется выкачать для вас еще 15 мегабайт библиотек (ставятся в /opt, так что не ссыте, в будущем пригодятся для других приложений). Если установлен, то наслаждайтесь, ибо сама программа весит 100 килобайт. Затем она появляется там, где вы и ожидаете.

Запускаем PyCallBlocker из меню, он сообщит, что создал новый файл в MyDocs (по причинам безопасности на maemo, как на любом linux, программкам можно писать только в папку юзера). Файл представляет из себя просто список строк с телефонами, поэтому можете редактировать его даже без GUI. Но не зря же я его писал, так что идем в него. Для добавления нового номера жмем Add и вписываем или вставляем его в поле. Для удаления — кликаем по строчке в списке и жмем Delete.

После того, как вы добавили сюда всех неудачников, мешающих вам жить, нужно перезапустить демона, чтобы он заново прочитал файл с номерами. Большая кнопочка Restart daemon вам в этом поможет. Всё, можете закрывать программку, демон останется висеть в фоне. Каждый раз, когда что-то изменяете в списке не забудьте перезапустить его!

screenshot

screenshot

У меня не работает!

Так как это первый работающий билд программы, она еще в статусе глубокой беты. По комментариям к топику на maemos.ru у людей вроде бы работает. Хотя точно быть уверенным я смогу где-то после тысячной успешной установки.

Если у вас вообще не хочет работать программка, можете прислать мне багрепорт. Для этого запустите ее через терминал, набрав /opt/pycallblocker/callblocker.py, затем проделайте все шаги, которые у вас не работают, закройте и посмотрите не вывалился ли лог ошибок в консоль. Если да, копируем или скриним его и кидаем мне. Так же, чтобы проверить запустился ли демон, можно набрать ps aux | grep callblock. Если в выпавших строках будет что-то типа python2.5 /opt/pycallblocker/callblocker-daemon.py, значит демон работает. Если таковых будет много — пишите мне, это баг. Если вам лень или страшно все это делать, можете назвать меня криворуким быдлокодером и ждать, пока багрепорт пришлет кто-то другой.

UPD:

Version 1.2-1: Убрана кнопка рестарта демона. Теперь он стартует автоматически после каждого внесенного изменения. Так как обычно их не много, мне показалось это оптимальным решением, понятным многим.

Version 1.2-3: По репорту пользователя подписавшегося ником myname файл, в котором хранится pid запущенного демона перенесен из /home/user/MyDocs/tmp и /tmp, так как как это вызывало проблемы у небольшого процента пользователей.

refresh

i