Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-09-26 23:02:09

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Witam
Od razu zaznaczam, że nie jestem programistą, ale piszę dlatego, że nie znalazłem do tej pory nic ciekawego i jeśli by się udało z waszą pomocą to sam bym coś takiego zrobił, a jeśli nie to może zainteresował kogoś kto umiałby to zrobić.

Mianowicie interesuję się zjawiskami atmosferycznymi takimi jak burze, tornada itp. W naszym kraju istnieje grupa "łowców burz" Skywarn Polska,która publikuje bardzo dokładne i szybko aktualizowane zagrożenia metrologiczne dla Polski. Zwłaszcza w lecie w okresie burzowym zdarzało się, że wchodziłem na ich stronkę kilka razy na dzień i sprawdzałem ostrzeżenia dla mojego regionu. Już wtedy pomyślałem, że byłoby super żeby ta prognoza wyświetlałaby się na pulpicie KDE, czyli aby powstał plasmoid, który by umożliwiał:

-wyświetlanie mapki z zagrożeniami ze strony skywarn polska
-ustawienie częstotliwości odświeżania mapki
- ustawienie regionu  o którym chcemy być informowani
- wyświetlanie ostrzeżeń w formie opisu dla regionu, który nas interesuje
-miganie komunikatu jeśli jest on w 3 stopniu zagrożenia

Wiem, że może brzmi to ambitnie, ale wszystko tak naprawdę jest na tej mapce łowów burz:
http://lowcyburz.pl/ a plasmoid musiałby jedynie odczytywać te dane z mapki. Co o tym pomyśle myślicie? Da się tak zrobić? Jak się za to zabrać?

Offline

 

#2  2011-09-27 16:55:52

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Jak najbardziej da się to zrobić, ale bez chociaż odrobiny przygotowania programistycznego będzie to raczej niewykonalne. Plazmoidy można pisać w Pythonie, Rubym oraz JavaScripcie — musisz znać przynajmniej jeden z tych języków przynajmniej na bardzo podstawowym poziomie.

Można też w plazmoidzie w prosty sposób zagnieździć stronę HTML. Strona zostanie wyświetlona przy pomocy silnika WebKit. Do tego co chcesz osiągnąć wystarczyłoby kilka ramek, ale aby jakaś akcja była podejmowana gdy istnieje zagrożenie trzeciego stopnia, musiałbyś napisać kilka linijek w JavaScript (chociaż może dałoby się to w ograniczonym zakresie uzyskać przy pomocy bardzo zaawansowanych selektorów CSS3). Odświeżanie strony załatwisz tagiem meta refresh.

Zobacz materiały na stronach:
http://techbase.kde.org/Development/Tutorials/Plasma
http://www.khattam.info/howto-python-plasmoids-part … 10-12-25.html
http://www.brighthub.com/hubfolio/matthew-casperson … es/76428.aspx

W sieci jest bardzo wiele materiałów dotyczących tworzenia własnych plazmoidów. Powinieneś sobie poradzić, o ile w miarę znasz angielski w piśmie i o ile znasz przynajmniej podstawy wymienionych wcześniej języków (jednego z nich).

Offline

 

#3  2011-09-28 08:24:41

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

A można to zrobić w C++ ? Bo czytałem gdzieś na stronie, że w Kdevelop jest już gotowy szablon dla plasmoidów no i ten język chociaż trochę znam ze szkoły (pisanie jakiś podstawowych programów z matematyki, obliczanie dzielników, rysowanie choinek z gwiazdek i takie tam)
Co do umieszczenia samej mapki to z tym zagnieżdżeniem HTML powinienem sobie poradzić, gorzej z resztą. Mam jeszcze pytanie jak tą mapkę umieścić w plamoidzie, sam chyba nie dam rady tego zrobić. Chodzi o to, że muszę się chyba skontaktować z twórcą strony, aby udostępnił kod tej mapki. Z tego co widzę to stronka jest postawiona na Wordpressie a ta mapka mi wygląda na boczny zwykły widget, jako pole tekstowe ze zdjęciem.

Offline

 

#4  2011-09-29 00:02:03

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Wg materiałów, do których link podałem w poprzedniej wiadomości, plazmoidy można też pisać w C++.

Żeby uzyskać dostęp do mapki, wcale nie musisz się kontaktować z autorami strony. Nie wiem tylko czy mapka jest generowana zawsze do pliku http://lowcyburz.pl/skypredict/convection/forecast/clean/blankm.png, czy też na podstawie jakichś danych serwer w tym miejscu wstawia odpowiedni odnośnik do jednej z wcześniej wygenerowanych map. W zależności od tego musisz albo pobierać sam plik .png, albo przy pomocy DOM wybierać obrazek znajdujący się w danym miejscu na stronie.

Oczywiście jak najbardziej możesz się skontaktować z twórcami strony, może Tobie pomogą.

Ja teraz nie mam czasu, żeby taki plazmoid tworzyć, więc nic ponad linki do dokumentacji czy ogólne wytyczne nie jestem w stanie pomóc. Jeżeli znasz angielski, to czytaj dokumentację, ucz się i może podpytaj na liście mailingowej KDE albo ichnim forum. Tam masz znacznie większą szansę, że ktoś Ci pomoże, gdyż tutaj nie ma zbyt wielu użytkowników KDE — a już zwłaszcza takich, którzy by pisali własne plazmoidy.

Offline

 

#5  2011-09-29 08:55:52

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Tak jak Minio pisze, jeżeli mapka zawsze jest zrzucana do tego samego pliku to applet htmlowy z meta refreshem wystarczy. Jeżeli nie to najlepiej kontaktuj sie z nimi. Czy maja wypuszczone jakieś api? Nie sądzę. Ale może przynajmniej powiedzą ci na tyle że będziesz mógł coś przewidzieć. Ja zrobiłem to w htmlu i mi pokazuje ale na dzień dzisiejszy mają wszystko w szarym kolorze.

@Minio a wiesz jak powiększyć lub zeskalować taki applet aby mogło się zdjęcie całe zmieścić? No bo w sumie dostosowywać zdjęcie do wielkości apletu to nie tędy droga.

Ostatnio edytowany przez hello_world (2011-09-29 09:06:55)

Offline

 

#6  2011-09-29 09:23:15

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Czy ja to dobrze rozumiem? Już coś tam robiłeś w tym temacie? Fajnie byłoby jakbyś mógł pociągnąć ten temat. Ja do nich napisałem właśnie maila, zobaczymy co mi odpiszą.

Offline

 

#7  2011-09-29 10:26:34

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Ja tylko zrobiłem plasmoida w html-u do zdjęcia pod tym adresem
http://lowcyburz.pl/skypredict/warns/clean/blankm.png

Offline

 

#8  2011-09-29 15:12:04

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Czy możesz to gdzieś umieścić? Zobaczyłbym jak to wygląda na pulpicie.
Czy gdybym od ekipy skywarn dostał cały kod, czy też skrypt do generowania mapki to czy dałbyś radę zrobić ten plasmoid w oparciu o te wytyczne które podałem?

Ostatnio edytowany przez vnu007dl (2011-09-29 22:31:25)

Offline

 

#9  2011-09-29 20:46:09

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

hello_world napisał(-a):

@Minio a wiesz jak powiększyć lub zeskalować taki applet aby mogło się zdjęcie całe zmieścić? No bo w sumie dostosowywać zdjęcie do wielkości apletu to nie tędy droga.

Możesz na sztywno wpisać wielkość w pliku metadata.desktop, w kluczu X-Plasma-DefaultSize.
Albo wywoływać metodę resize() na obiekcie plasmoidu. Najlepszym pewnie sposobem jest pobieranie obrazka, odczytywanie jego rozmiarów i ustalanie wielkości plazmoida na ich podstawie.

Można też jakoś zmusić Plazmoidy do zapamiętywania swoich rozmiarów, ale nie jestem pewien jak. Gdzieś widziałem jakiś przykład w jednym z tutoriali. Tak zachowuje się większość plazmoidów w KDE, więc możesz po prostu podejrzeć ich kod źródłowy.

Offline

 

#10  2011-09-30 10:59:06

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

@vnu007dl
Jak ci coś podeślą to będziemy myśleć.
http://satkas.waw.pl/example.php
@minio
X-Plasma-DefaultSize pomogło

Offline

 

#11  2011-09-30 13:10:20

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

A moglbys umiescic gdzies plik binarny z tym plasmoidem?bo chcialbym zobaczyc jakby to wygladalo na moim pulpicie.Dzis jak wroce do domu to napisze maila do drugiego programisty bo od pierwszego wrocil dzis blad z serwera ze nie doszedl

Offline

 

#12  2011-09-30 13:54:14

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Offline

 

#13  2011-10-02 12:12:53

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

@hello_world
Ciężko się skontaktować z tymi gościami. Maile wysyłane na ich domenę lowcyburz wracają z powrotem, a reszta nie odpowiada. Wgryzłem się w jednak w forum i z tego co widzę to w tym wątku jest opisane jak działa ten system:
http://lowcyburz.pl/forum/viewtopic.php?f=709&t=3022
Z tego co widzę to ta mapka o którą nam chodzi to oni do jej generowania dają bezpośredni link
http://lowcyburz.pl/skypredict/warns/imagemin.php
Obecnie brak jakiś ostrzeżeń więc ciężko mi sprawdzić, czy to naprawdę działa, czy to może statyczna mapka.
Gdyby to faktycznie działało było by już z górki.

PS. Mógłbyś powiedzieć jak uruchomić ten plasmoid na pulpicie? Bo chciałem go otworzyć lokalnie, ale system szuka plików typu plasmoid i nic w tym folderze po rozpakowaniu nie znajduje.

Offline

 

#14  2011-10-02 12:27:06

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

vnu007dl napisał(-a):

PS. Mógłbyś powiedzieć jak uruchomić ten plasmoid na pulpicie? Bo chciałem go otworzyć lokalnie, ale system szuka plików typu plasmoid i nic w tym folderze po rozpakowaniu nie znajduje.

Wykonujesz polecenia:

Kod:

wget 'http://satkas.waw.pl/images/hello-web.zip'
plasmapkg -i hello-web.zip

A potem dodajesz go jak każdy inny. Nazywa się „Witaj Tadeusz”, co trochę utrudnia jego znalezienie.
Żeby działał musisz mieć zainstalowany pakiet plasma-scriptengine-webkit.

Offline

 

#15  2011-10-02 12:59:26

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Ok dzięki, udało się zainstalować.
Hmm próbowałeś z tym linkiem co podrzuciłem?
Napisałem to w ten sposób, ale nie wyświetla się obrazek:

Kod:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  <head>
    <title>SKYPREDICT Mapka SkyWarn Polska</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<img src ="http://lowcyburz.pl/skypredict/warns/imagemin.php"/>
</body>
</html>

Co do nazwy to może zróbmy to tak:

Kod:

[Desktop Entry]
Encoding=UTF-8
Name=SkyWarn Poland
Name[pl]=SkyWarn Polska
Type=Service
ServiceTypes=Plasma/Applet
Icon=burza.png
X-Plasma-API=webkit
X-Plasma-MainScript=code/main.html
X-KDE-PluginInfo-Author=Tadeusz Kasprzycki
X-KDE-PluginInfo-Email=t.kasprzyckii@gmail.com
X-KDE-PluginInfo-Name=SkyWarn_Polska
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://plasma.kde.org/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
X-Plasma-DefaultSize=250,250

a link do ikonki tutaj:
http://dl.dropbox.com/u/17620616/linki/burza.png
PS. Da się zrobić tak żeby przy skalowaniu plasmoidu mapka też się skalowała?Bo pasowałoby żeyby tak to działało jak każdy plasmoid.

Offline

 

#16  2011-10-02 13:47:00

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Taki kod jak podałeś nie zadziała, gdyż ta strona (http://lowcyburz.pl/skypredict/warns/imagemin.php) jest zwykłą stroną HTML z odpowiednio spreparowanym linkiem do obrazka. Sądzę że oni na serwerze mają przygotowane obrazy dla różnych stanów burz w Polsce i potem skrypt po prostu jako src tagu <img> wkleja odpowiednio przygotowaną ścieżkę do jednego z już istniejących obrazów.

Dlatego musisz pobierać zawartość tej strony i z jej kodu wyciągać adres mapki. Używając DOM byłoby to banalne, ale można też wgetem i sed-em:

Kod:

wget "http://lowcyburz.pl/skypredict/warns/$(wget -q 'http://lowcyburz.pl/skypredict/warns/imagemin.php' -O - |sed -n -e '/img/s:.*img src="\(.\+\)" alt.*:\1:i p')" -O /tmp/mapka.png

Zapisze aktualną mapkę do pliku /tmp/mapka.png

Możesz skorzystać z Plazmoidu Scripted Image aby ten obrazek wyświetlać i co jakiś czas go odświeżać. Ten Plazmoid potrafi też samodzielnie pobierać obrazek, jeśli dać mu ścieżkę do skryptu, który generuje URL tego obrazka. Ma on też opcję skalowania, o której wspominałeś (chociaż ta mapka już przy odrobinę większych rozmiarach zaczyna wyglądać paskudnie).

Jeżeli chodzi tylko o mapkę, to skorzystaj z tego Plazmoidu. Jeżeli zależy Ci jeszcze na tym powiadomieniu, o którym wspominałeś w pierwszym poście, to będziesz musiał przyjąć zupełnie inne podejście do sprawy. Ale część kodu Plazmoidu można by było wykorzystać.

Offline

 

#17  2011-10-02 14:08:41

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Hmm to może lepiej byłoby się skupić na tym linku:
http://lowcyburz.pl/skypredict/warns/issue/view.php
Bo zdjęcie na tej stornie wyświetla komunikaty o ostrzeżeniach jak się kliknie na dany rejon mapy.
Co do tego palsmoidu scripted image to może udało by się tak zrobić aby zmodyfikować już od razu jego źródło aby bez późniejszej konfiguracji wyświetlał tą mapkę?
Trzeba by tam podać te 2 wartości: jedną do pliku ze zdjęciem, a drugą do skryptu generującego zdjęcie, ale ja nie umiem tego zrobić.

Offline

 

#18  2011-10-02 16:31:34

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

Aktualizacja
Udało mi się wstawić w ten plasmoid to duże zdjęcie, bo ono pokazuje ostrzeżenia dla regionów, ale po wstawieniu w plasmoid już nie jest interaktywne, poza tym nie umiem ustawić tego obrazka żeby się skalował razem z plasmoidem. Dodałem też ikonkę dla plasmoidu, jedyne co to dostaję przy instalacji błąd:

Kod:

darek@kubuntu-pc:~$ plasmapkg -i SkyWarn_Polska.zip
plasmapkg(2929)/libplasma Plasma::PackageStructurePrivate::createPackageMetadata: No metadata file in the package, expected it at: "" 
Pomyślnie zainstalowano /home/darek/SkyWarn_Polska.zip

Ale plasmoid się instaluje.
Plik do pobrania plasmoidu tutaj:
http://dl.dropbox.com/u/17620616/linki/SkyWarn_Polska.zip
A wygląda to tak:
http://img847.imageshack.us/img847/9823/skyn.th.png

Offline

 

#19  2011-10-03 01:28:39

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

vnu007dl napisał(-a):

Udało mi się wstawić w ten plasmoid to duże zdjęcie, bo ono pokazuje ostrzeżenia dla regionów

Jeżeli dobrze interpretuję działanie tej strony (teraz jak na złość nie ma żadnych burz), to wstawiłeś tylko obrazek bezburzowej Polski. Ten Plazmoid zawsze będzie pokazywał że nie ma żadnych burz, co czyni z niego bardziej ramkę na zdjęcie.

vnu007dl napisał(-a):

ale po wstawieniu w plasmoid już nie jest interaktywne,

Nie jest, bo masz sam obrazek, a w kodzie jest jeszcze tag <map> z koordynatami.

Ale ja nie wiem, czy silnik WebKit do Plazmoidów wyświetla w pełni interaktywną stronę internetową, więc możliwe że nawet podanie tam tych współrzędnych nie uczyni mapki interaktywną.

vnu007dl napisał(-a):

poza tym nie umiem ustawić tego obrazka żeby się skalował razem z plasmoidem.

Masz na sztywno wpisane rozmiary, więc czego się spodziewasz? ;)

W nagłówku strony (<head/>) dopisz:

Kod:

<style>
img {width: 100%; height: 100%;}
</style>

Powinien się skalować. Ale już Twoim zadaniem jest, aby zachować proporcje plazmoidu.

vnu007dl napisał(-a):

Dodałem też ikonkę dla plasmoidu, jedyne co to dostaję przy instalacji błąd:

Kod:

darek@kubuntu-pc:~$ plasmapkg -i SkyWarn_Polska.zip
plasmapkg(2929)/libplasma Plasma::PackageStructurePrivate::createPackageMetadata: No metadata file in the package, expected it at: "" 
Pomyślnie zainstalowano /home/darek/SkyWarn_Polska.zip

Ale plasmoid się instaluje.

Masz źle stworzoną strukturę archiwum. Ty masz w archiwum katalog SkyWarn_Polska w którym masz pliki i katalogi plasmoidu, a powinieneś mieć je bezpośrednio w archiwum (a nie w podkatalogu).

Offline

 

#20  2011-10-03 21:16:14

  vnu007dl - Użytkownik

vnu007dl
Użytkownik
Zarejestrowany: 2010-11-01

Re: Jak zrobić plasmoid który wyświetlałby mapkę ze strony www?

No dzięki, teraz plasmoid się poprawnie skaluje i nie wyrzuca błędów przy instalacji. No ale to chyba tyle z mojej strony. Dalej już nie jestem w stanie tego pociągnąć. Chyba że jeszcze była by jeszcze jakaś funkcja, która by odświeżała obraz co wybrany okres czasu. Szkoda że nie ma żadnych burz bo nie ma jak sprawdzić czy to w ogóle działa.
poprawiony Plasmoid jest pod linkiem:
http://dl.dropbox.com/u/17620616/linki/SkyWarn_Polska_01.zip

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)