Sejmometr API dla Drupala

92 views
Skip to first unread message

Hubert Mach

unread,
Mar 30, 2012, 9:29:30 AM3/30/12
to sejmom...@googlegroups.com
Witam.

Stworzyłem moduł drupalowy wykorzystujący api sejmometru do tworzenia treści.
Moduł do pobrania tu: http://sejmometr.ex-machina.pl
Serwis jest równocześnie wersją demonstracyjną tegoż modułu.

Uwaga 1 - ta instalacja nie pobiera treści dokumentów ani wystąpień, mimo iż moduł na to pozwala.
Uwaga 2 - nie ma implementacji dla komisji sejmowych - w trakcie tworzenia nie działały i zostały pominięte.

Wybór i organizacja danych jest zależna jedynie od koncepcji administratora danego serwisu.
Z dodatkowych modułów wartych zainstalowania polecam views oraz rules.
Pierwszy pozwala na wygodne tworzenie zestawień - vide QA
drugi z kolei pozwala na procesowanie powstających węzłów - np automatyczne tagowanie czy
poszukiwanie konkretnych stringów w treści.

Z informacji które mogą przydać się developerom api sejmometrowego - polecam zakładkę QA (http://sejmometr.ex-machina.pl/qa)
zawiera zestawienia węzłów które mają nieprawidłowe dane z API.

Oprócz tych zestawień zauważyłem, że:
- część wystąpień ma puste daty (0000-00-00)
- są dokumenty które mają typ nieopisany w API - 10,11,12 - podczas importu pojawią się odpowiednie wpisy w logu drupalowym.


Z feature requestów:
1. brakuje mi informacji o źródle - url do stron sejmowych byłby mile widziany.
2. przydałaby się możliwość podania startowego id - w chwili obecnej tych id'ków nie ma zbyt wiele, jednak za rok, dwa będzie ich naprawdę sporo.
Samo iterowanie będzie zabierało czas który można by poświęcić na wykonanie konkretnej pracy, a tego będzie z wydłużaniem listy coraz mniej.
Konkretnym zagrożeniem jest execution time out dla skryptu.

Sam moduł czeka na review społeczności drupala, zanim zostanie pełnoprawnym projektem. Do tego czasu projekt zostaje tak jak jest.

Pozdrawiam.

Piotr Waglowski

unread,
Apr 4, 2012, 6:02:04 PM4/4/12
to sejmom...@googlegroups.com
I widzę, że pod szóstkę. Zatem propaguje.

Marcin Stępnicki

unread,
Apr 26, 2012, 4:49:14 PM4/26/12
to sejmom...@googlegroups.com
Hej,

Nie jestem szczególnym ekspertem od Drupala, ale moduł Coder twierdzi że w linijce 463 pliku sejmometr_api.install lepszym pomysłem jest użycie db_rewrite_sql - prawdopodobnie dlatego, żeby inne moduły potencjalnie korzystające z usuwanych węzłów zostały powiadomione i się nie pogubiły.

$result = db_query(db_rewrite_sql("SELECT nid FROM {node} n WHERE type='%s'"), $content_type);

Pzdr.,
Marcin

Hubert Mach

unread,
Apr 27, 2012, 4:31:41 AM4/27/12
to sejmom...@googlegroups.com
> Nie jestem szczególnym ekspertem od Drupala, ale moduł Coder twierdzi że w
> linijce 463 pliku sejmometr_api.install lepszym pomysłem jest użycie
> db_rewrite_sql - prawdopodobnie dlatego, żeby inne moduły potencjalnie
> korzystające z usuwanych węzłów zostały powiadomione i się nie pogubiły.
>
> $result = db_query(db_rewrite_sql("SELECT nid FROM {node} n WHERE
> type='%s'"), $content_type);

Witam.

Poprawka już w repozytorium.


--
H.

Robert Fiałek

unread,
Mar 27, 2013, 6:40:16 PM3/27/13
to sejmom...@googlegroups.com
Linki podane w tym wątki nie działają już. Gdzie znajdę ten moduł?

Hubert Mach

unread,
Mar 30, 2013, 5:02:33 PM3/30/13
to sejmom...@googlegroups.com
W dniu 27 marca 2013 23:40 użytkownik Robert Fiałek
<robert...@gmail.com> napisał:
> Linki podane w tym wątki nie działają już. Gdzie znajdę ten moduł?
>

Witam.

Jeszcze przed końcem ubiegłego roku, wersja API Sejmometru którą
implementował ten moduł
została zawieszona - nie było nowych informacji dostępnych tą drogą.
Z tego tez powodu, strona 'demo' została usunięta.
Kod wspomnianego modułu (w wersji mocno developerskiej) dla
zainteresowanych nadal jest dostępny tu:
http://drupal.org/sandbox/hmach/1429092

Osobiście, czekam aż opadnie kurz na nowej wersji API i na odrobinę
wolnego czasu :)

Pozdrawiam.

--
H.

Robert Fiałek

unread,
Mar 30, 2013, 6:51:18 PM3/30/13
to sejmom...@googlegroups.com
Dopiero raczkuję w githubie ale mam wrażenie, że obecnie nie ma tam nic poza readme.txt. Czy mogę zrobić rollback do 12 lutego 2012 21:13?



--
H.

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz temat w grupie "Sejmometr API" w Grupach dyskusyjnych Google.
Aby anulować subskrypcję tego tematu, odwiedź https://groups.google.com/d/topic/sejmometr-api/tcw1CONgWtc/unsubscribe?hl=pl.
Aby anulować subskrypcję tej grupy i wszystkich jej tematów, wyślij e-maila do sejmometr-ap...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out



Robert Fiałek

unread,
Mar 30, 2013, 7:52:43 PM3/30/13
to sejmom...@googlegroups.com
Przepraszam, zdaje się, że tu jest nowsza wersja:
ale nie widzę to na github.
Czy mógłbyś mi podpowiedzieć jak zrobić w takiej sytuacji fork'a?


Hubert Mach

unread,
Apr 1, 2013, 4:50:06 PM4/1/13
to sejmom...@googlegroups.com
Witam.

> Przepraszam, zdaje się, że tu jest nowsza wersja:
>
> http://drupal.org/commitlog/commit/33460/d67ed93ff707ab71c199377beae67d2e4fdf278f
> ale nie widzę to na github.
> Czy mógłbyś mi podpowiedzieć jak zrobić w takiej sytuacji fork'a?
>


Jak już masz sklonowaną wersję repo, to z katalogu w którym ją masz na
swoim dysku wykonaj:
git branch -a
To polecenie wylistuje Ci wszystkie branche które są w repozytorium
tego projektu.
Powinieneś zobaczyć coś takiego:
* master
remotes/origin/6.x-1.x
remotes/origin/HEAD -> origin/master
remotes/origin/master

Kod zgodnie z wymogami znajduje się w odpowiedniej gałęzi - stąd w
'master' znajdziesz tylko readme.txt.
Aby przełaczyć się wydajesz polecenie:
git checkout remotes/origin/6.x-1.x
To spowoduje dociągnięcie brakujących rzeczy z repozytorium głównego.

W tym momencie (a w zasadzie od wykonania clone) posiadasz na swoim
dysku działające repozytorium.
Lokalnie możesz wykonywać wszelkie operacje tj. commit itp.
Najistotniejszą rzeczą której nie będziesz mógł zrobić, to 'git push'
- czyli wysłać wszystkich swoich zmian
na serwer główny. Dbaj więc o backup.

Jeśli idzie o szczegóły robienia własnych gałęzi, łączenia ich itp, to
odsyłam do dokumentacji git'a.
Jeśli nie man, to w sieci też znajdziesz tego sporo - google Twoim
przyjacielem. :)
Zawsze możesz rozpocząć na bazie tego kodu swój projekt i samodzielnie
nim zarządzać - gorąco zachęcam!

Jako dodatkową lekturę przed rozpoczęciem developerki polecam:
http://drupal.org/developing/modules

Przyda Ci się jeśli w pewnym momencie zechcesz udostępnić swój kod
społeczności Drupala.
A ta ma dość konkretne wymagania co do jakości kodu.
I tip na koniec - nie trzymaj konfiguracji modułu w bazie. Stwarza to
niepotrzebne problemy przy zarządzaniu zmianami.


Pozdrawiam!

--
H.

Robert Fiałek

unread,
Apr 7, 2013, 5:27:24 PM4/7/13
to sejmom...@googlegroups.com
Niestety nie wiem jak sklonować (czy to to samo co fork?). Wyszukiwanie na githubie nic nie daje:
A little help please?
(Próbuję postępować według tej instrukcji: https://help.github.com/articles/fork-a-repo)

Jak repozytoria github'a mają się do repozytoriów drupal.org? Są tożsame? Czy też są to kolejne kroki flow'u?
Nie ogarniam tego świata.




--
H.

Robert Fiałek

unread,
Apr 7, 2013, 5:52:55 PM4/7/13
to sejmom...@googlegroups.com
Udało mi się!
git clone git://git.drupal.org/sandbox/hmach/1429092.git sejmometr_api
woohoo

Zen Vantalye

unread,
Apr 7, 2013, 6:10:14 PM4/7/13
to sejmom...@googlegroups.com

GitHub i Drupal to dwa oddzielne serwery repozytoriów Git.

Nie znajdziesz tego czego szukasz na githubie.

Wykonaj git clone http://git.drupal.org/sandbox/hmach/1429092.git sejmometr_api aby utworzyć właściwe repozytorium u siebie.
Teraz gałąź jak powyżej.

Poza tym zalecam podręcznik Git i http://drupal.org/documentation/git

Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „Sejmometr API”.
 
Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do sejmometr-ap...@googlegroups.com.

Hubert Mach

unread,
Apr 8, 2013, 4:02:38 PM4/8/13
to sejmom...@googlegroups.com
To jeszcze uzupełnię mojego przedpiszcę.

GIT - system kontroli wersji. Tak jak SVN czy CVS
Github - usługa dająca repozytorium GIT.

Drupal posiada własne repozytorium GIT.

Mam nadzieję, że odrobinę pomogło ogarnąć świat :)

--
H.

Robert Fiałek

unread,
Apr 8, 2013, 5:41:27 PM4/8/13
to sejmom...@googlegroups.com
Tak - pomogło. Dziękuję wam bardzo za wyjaśnienia.
Będę się pochylał nad tym tematem aczkolwiek...

...ponieważ administruję stronami na Drupalu to chciałbym zwrócić uwagę, że trzymanie ustawień w pliku to zły zwyczaj. To dlatego, że:
- przy uaktualnianiu oprogramowania pliki są zastępowane nowymi wersjami trzeba więc zadbać o ten jeden pliczek. Takich pliczków do zadbania robi się z czasem strasznie dużo.
- w idealnej sytuacji kopię zapasową robi się tylko z bazy danych (a moduły można ściągnąć z drupal.org)
Taki schemat postępowania radykalnie zmniejsza wysiłek utrzymania strony. Dbanie o pojedyncze pliki naraża na błędy i przysparza pracy.
Ślicznie proszę żebyśmy się zgodzili co do trzymania konfiguracji w bazie.





--
H.

Hubert Mach

unread,
Apr 8, 2013, 10:52:38 PM4/8/13
to sejmom...@googlegroups.com
W dniu 8 kwietnia 2013 23:41 użytkownik Robert Fiałek
<robert...@gmail.com> napisał:
> Tak - pomogło. Dziękuję wam bardzo za wyjaśnienia.
> Będę się pochylał nad tym tematem aczkolwiek...
>
> ...ponieważ administruję stronami na Drupalu to chciałbym zwrócić uwagę, że
> trzymanie ustawień w pliku to zły zwyczaj. To dlatego, że:
> - przy uaktualnianiu oprogramowania pliki są zastępowane nowymi wersjami
> trzeba więc zadbać o ten jeden pliczek. Takich pliczków do zadbania robi się
> z czasem strasznie dużo.
> - w idealnej sytuacji kopię zapasową robi się tylko z bazy danych (a moduły
> można ściągnąć z drupal.org)
> Taki schemat postępowania radykalnie zmniejsza wysiłek utrzymania strony.
> Dbanie o pojedyncze pliki naraża na błędy i przysparza pracy.
> Ślicznie proszę żebyśmy się zgodzili co do trzymania konfiguracji w bazie.


Wszystko zależy od tego w jakim procesie zarządza się serwisem i zmianami.
Ja biorę pod uwagę sytuację, gdzie są minimum dwa środowiska -
developerskie i produkcyjne.
Wszelkie zmiany są dokonywane na środowisku developerskim, a po
zatwierdzeniu są migrowane na produkcję.
Co więcej - zmiany są wersjonowane tak, że zawsze można zrobić
rollback. Przy okazji wiadomo co się zmieniło.
Trzymanie ustawień w bazie danych jest niewygodne, bo wymaga
dodatkowych kroków związanych
z uzyskaniem dostępu do produkcyjnej bazy danych spoza środowiska
produkcyjnego aby te ustawienia przenieść - czasem jest to
niewykonalne,
a w każdym razie stanowi ryzyko związane z bezpieczeństwem serwisu.
Pozostaje jeszcze kwestia ich wersjonowania - trzeba pamiętać o
dumpach odpowiednich tabel.
A ilość klikania rośnie...

Sposobem na poradzenie sobie z tymi problemami jest moduł Features.
Jednak on też wymaga dodatkowej obsługi i nie wspiera wszystkich modułów.

Aktualizacja modułu nie powinna mieć wpływu na jego konfigurację.
Nie ma bazowej konfiguracji, jest tworzona podczas konfigurowania
modułu i zapisywana w pliku. Przy takim podejściu nie będziesz miał
pliczków o które musiałbyć dbać podczas aktualizacji.


Pozdrawiam.

--
H.
Reply all
Reply to author
Forward
0 new messages