Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

nbnotify 0.3 - powoli ewoluujemy naprzód! Integracja blogów z Linuksem

Witam, ostatnio przedstawiłem Wam malutką aplikację integrującą pulpit linuksowy z blogami dobreprogramy.pl - dpnotify. W ciągu następnego tygodnia projekt powoli ewoluuował i zmienił nazwę na bardziej uniwersalną "Nice Blog Notifications" oraz zamienił się w bibliotekę obsługującą... uwaga... wtyczki.

Strona projektu: https://github.com/webnull/nbnotify

Gotowe pakiety są dostępne do pobrania z serwerów lustrzanych dla Debiana oraz Arch Linux:
http://paczkownia.kablownia.org/Paczkownia/
http://s1.paczkownia.kablownia.org/Paczkownia/

UWAGA: W Arch Linux z niewiadomych przyczyn w ogóle nie działa libnotify zarówno na czystym Arch Linux jak i na Arch Bang. Jeśli naprawicie sobie problem to aplikacja będzie bez problemu wyświetlać powiadomienia.

Zmiany? Jakieś muszą być przecież...

No więc proszę Państwa, nbnotify jest teraz dostarczany w postaci biblioteki oraz klienta. Nowa architektura aplikacji pozwala na utworzenie dla niej dowolnego interfejsu graficznego np. w GTK poprzez zaimportowanie biblioteki i wywoływanie jej funkcji wewnątrz aplikacji bez użycia żadnego dbusa czy socketów.

Dodatkowo wstępnie weszła obsługa wtyczek, jednak jak na razie wtyczki mają bardzo, bardzo ograniczone API i mogą jedynie służyć do przetwarzania i wyświetlania powiadomień, jednak w planach jest także dodanie takiej funkcjonalności która zapewni możliwość dodawania obsługi dodatkowych serwisów WWW a prace za niedługo zaczną się nad wsparciem dla Twittera.

Opensource oraz re-wykorzystanie kodu

Kod obsługi wtyczek oraz logowanie do dziennika zostało przeniesione z projektu "Subget", z resztą tak samo jak i instalator który stał się od teraz biblioteką którą można dowolnie rozszerzać i wykorzystywać w dowolnych projektach.

libsubgetinstaller to nic innego jak malutka biblioteka posiadająca sama w sobie gotowe funkcje do kompilowania plików językowych, sama również wykrywa wszystkie wersje Pythona oraz używa ich do wykonania setup.py instalując końcowo wszystko do wybranego katalogu jak w środowisku "chroot" gotowego do zapakowania bądź skopiowania do rootfs.

libnotify i błędy w pokazywaniu powiadomień

Bywało wcześniej, że powiadomienia bywały urywane bądź w ogóle nie wyświetlane - teraz wszystko wysyłanie jest poprzez API libnotify czyli jak się domyślam tam gdzieś w głębi jest zaimplementowany dbus i wszystko działa jak należy.  

linux oprogramowanie programowanie

Komentarze

0 nowych
kamil_w   11 #1 09.09.2012 18:24

To da się ewoluować do tyłu? ;)

  #2 09.09.2012 18:46

Głupie pytanie Panie Kamilu, ponieważ ewolucja w istocie oznacza rozwój, czyli tylko i wyłącznie w jedną stronę - do przodu ; )

  #3 10.09.2012 13:25

@Webnull
Coś ciężko chwytasz, a pytanie kamila-w jak najbardziej zasadne, a nie głupie.
Naprawdę trzeba Ci tłumaczyć jak przysłowiowej krowie na granicy?
Skoro jak sam napisłeś :"..ewolucja w istocie oznacza rozwój, czyli tylko i wyłącznie w jedną stronę - do przodu", to skąd ten tytuł: "powoli ewoluujemy naprzód!"

  #4 10.09.2012 13:41

nie działa na Archu ? to jak pisać programy dla linuxa skoro na jednych dystrybucjach działają a na innych nie ?

command-dos   18 #5 10.09.2012 17:30

z tego co widzę, to na dzień dzisiejszy najlepszy byłby program "dioda-notify" ;) i fajnie, że to rozwijasz - jak będzie mi się nudziło, to z chęcią przetestuję - na razie nie mam weny... BTW - da się jakoś przeglądarki zintegrować jakimś dodatkiem, dzięki któremu nie będzie trzeba dodawać nic "z łapy"? Mam tu na myśli jakieś extension, które rozpoznawałoby, że czytamy bloga i pojawia się funkcja "+" dodaj do obserwowanych i "-" wywal - to jedyna rzecz, która zniechęca mnie do używania tego wynalazku: kopiuj, wklej link + kontrola całego pliczku z obserwowanymi linkami...

mikolaj_s   14 #6 10.09.2012 18:20

"To da się ewoluować do tyłu?"
Da się, to jest wtedy regresja. W ewolucji większość zmian prowadzi w ślepy zaułek, tylko niektóre prowadzą do przodu :)

kamil_w   11 #7 10.09.2012 18:23

Oj Damian, Damian... chodziło mi o to, że słowo "naprzód" jest zbędne. To tak, jakby napisać, że masło jest maślane, ktoś cofa się do tyłu, albo spada w dół.

Co do programiku to całkiem fajny. Gdybym korzystał z Linuksa pewnie bym używał.

mikolaj_s   14 #8 10.09.2012 19:54

@Webnull

Czy libnotify nie działa na Archu? Na Ubuntu nie ma z nim problemu (próbowane na Vala). Bo może nie dodajesz bindingu do pythona :)

webnull   9 #9 10.09.2012 20:04

@mikolaj_s | 10.09.2012 19:54
W ogóle libnotfiy nie pokazuje mi powiadomień w Arch Linux ani w Arch Bangu.

Próbowałem z użyciem dbusa, api libnotify oraz notify-send - żadna metoda nie pokazuje powiadomień.
Aplikacja działa, jak w Archu naprawią tego buga to będzie Wam aplikacja działać o to się nie martwcie : )

Wkrótce pojawi się jeszcze kilka innych metod powiadomień użytkownika, będzie można wyłączyć libnotify i włączyć inną metodę dzięki czemu nawet jak w Archu libnotify nie będzie sprawne to użytkownicy będą w stanie otrzymywać powiadomienia.

webnull   9 #10 10.09.2012 20:09

@multiplatformowy (niezalogowany) | 10.09.2012 13:41
Widzę, że Windowsiarze tylko szukają okazji aby się przyczepić.
W Arch Linux biblioteka libnotify posiada jakiś błąd uniemożliwiający wyświetlanie powiadomień dlatego do czasu aż błąd nie zostanie naprawiony nbnotify działać nie będzie. Proste.

webnull   9 #11 10.09.2012 20:15

@command-dos | 10.09.2012 17:30
Jeżeli chodzi o Firefoksa to tak, ale z Chromium już nie taka prosta sprawa.

Ale aby to chodziło na wszystkich przeglądarkach to mógłbym to rozwiązać po stronie serwera zewnętrznego (wiem, naruszenie prywatności) ale kto by się zgodził ten by się zgodził i używał takiego rozwiązania.

Chodzi mi mianowicie o zakładkę bądź najprostszą wtyczkę do każdej przeglądarki która dodawałaby przycisk "+" do wpisów na blogach. Po wciśnięciu przycisku "+" wysyłane by było rządanie do serwera głównego który zapamiętywałby te kilka linków a nbnotify łączyłby się z nim okresowo i sprawdzał czy ma do odebrania jakiś link a po odebraniu linki byłby kasowane z serwera.

Można by to też rozwiązać na inny sposób, troszkę cięższy, obciążający aplikację - zaimplementować w niej najprostszy serwer WWW przyjmujący linki z localhosta.

Myślę, że dałbym radę zrobić taką wtyczkę do nbnotify a wtyczkami do Chromium i Firefoksa może by się ktoś zajął...

webnull   9 #12 10.09.2012 20:17

@Anonim (niezalogowany) | 10.09.2012 13:25
Bo tak lepiej brzmi tytuł. Na tym portalu wszyscy się czepiają o wszystko ; o

webnull   9 #13 10.09.2012 22:08

@RaveStar | 10.09.2012 21:57
Wolałbym nie uzależniać się od konkretnej platformy (Unity) i popracować nad dodatkami do przeglądarek.
Myślę, że dałbym radę napisać mały serwer webowy i dać użytkownikowi do wyboru - albo będzie korzystać z własnego serwera WWW wbudowanego w aplikację lub z mojego który będę udostępniać : )

Zaimplementowałbym prosty serwerek HTTP z bazą SQLite3 domyślnie w :memory: (bo po co zapisywać linki? - chyba, że w razie "crashu") i to by wystarczyło.

Serwerek WWW mógłby chodzić w osobnym wątku aplikacji, jest taka możliwość oczywiście.
A po stronie serwera udostępnianego przeze mnie to mógłbym pokusić się po prostu o zaimportowanie wtyczki Pythona i uruchomienie serwera niezależnego od mojego głównego serwera WWW. Na stronie http://webnull.kablownia.org umieściłbym politykę prywatności itp.

command-dos   18 #14 11.09.2012 11:09

hmmm, z ciekawości popatrzyłem za dodatkami do chrome'a, które śledziły by zmiany na stronach. Jest taki: Page Monitor. Działa, tylko że na DP się nie nadaje - śledzi wszystkie zmiany, więc od razu wykrywa przewijające się blogi w okienku na głównej, najnowsze komentarze na blogu, itd. Żeby dało się wykluczyć obszar monitorowanej strony, to byłoby git...

Jaahquubel_   13 #15 11.09.2012 12:25

1. U mnie działa. :)
2. Po dodaniu kolejnej strony do pilnowania, trzeba ubić proces i wywołać go jeszcze raz, czy też można jakoś inaczej dokonać jakiegoś odświeżenia bazy?
3. Za pierwszym razem wczytują się wszystkie komentarze z danej strony. Czy da się to jakoś obejść?
4. "Error: option --daemonize not recognized".

Autor edytował komentarz.
Jaahquubel_   13 #16 11.09.2012 15:21

Zrobiłem przycisk do Opery, który dodaje aktualną stronę do nbnotify.
Ale w komentarzu go nie wrzucę.
@Webnull
Jak chcesz, to podeślę Ci stosowny kod i go wstawisz jako link.

Autor edytował komentarz.
webnull   9 #17 11.09.2012 16:21

@Jaahquubel_ | 11.09.2012 15:21
Proszę wyślij mi wszystko co masz na maila i postaram się to w wolnym czasie przeanalizować i włączyć do kodu programu.

Mail masz podany na: https://github.com/webnull/

webnull   9 #18 11.09.2012 16:24

@Jaahquubel_ | 11.09.2012 12:25
"2. Po dodaniu kolejnej strony do pilnowania, trzeba ubić proces i wywołać go jeszcze raz, czy też można jakoś inaczej dokonać jakiegoś odświeżenia bazy? "

Póki co tak ale planuję dodać możliwość odświeżania konfiguracji programu "w locie", mam już w głowie cały projekt tego i nie powinno to być trudne - rzecz jasna niektóre opcje konfiguracyjne mogą być dostępne tylko po restarcie aplikacji ale póki co aplikacja nie ma jeszcze takich funkcji które by tego wymagały.