Środa, 23 Maj 2012, 19:07

Autor Wątek: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa  (Przeczytany 26148 razy)

0 użytkowników i 4 Gości przegląda ten wątek.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #45 dnia: Poniedziałek, 22 Wrzesień 2008, 15:14 »
Ten zegarek to sporo plików i sporo waży ;)
Ale.... w tym temacie jest jedna perełka - skrypcik pobierający feedsy (akurat z Yahoo), genialne, zaraz spróbuję przerobić na jakieś nasze  :peace:



dodano: Poniedziałek, 22 Wrzesień 2008, 14:48

upd.: noo.... genialny to jest pomysł, skrypt jest fatalny ;) Ale już jestem w trakcie pisania skryptu, który wciąga RSSy :) I można je potem wywalić gdzieś w BSie.
Windows Mobile: a story of love and hate.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #46 dnia: Poniedziałek, 22 Wrzesień 2008, 15:49 »
 :D  :peace:

RSSFeeds

Zapisuje w kluczu HKCU\Software\Headlines wartości News[1-XX] oraz News[1-XX]URL :)

Windows Mobile: a story of love and hate.


Offline Czaba

  • Swojak
  • ***
  • Wiadomości: 76
  • Podziękowań: 1
  • Płeć: Mężczyzna
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #47 dnia: Poniedziałek, 22 Wrzesień 2008, 16:02 »
HS++ jako czytnik RSS?? Jak tak dalej pójdzie to jedynym programem na moim PPC Będzie właśnie HS++ :P
HTC Hermes, XDA Mini S, MDA Compact III, Nokia 9300, Motorola HT820

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #48 dnia: Poniedziałek, 22 Wrzesień 2008, 16:21 »
No, HS++ plus MortScript (btw, beznadziejny skrót wychodzi z Morta....  :p ). W zasadzie tylko fantazja stoi na przeszkodzie...  :D



dodano: Poniedziałek, 22 Wrzesień 2008, 16:20

Wiecie co?.... skoro już tak jadę, to się zawezmę i w MS zrobię emulację BSWeather - ale z AccuWeather  :peace:  Gra warta świeczki.
Windows Mobile: a story of love and hate.


Offline mobi

  • Administrator
  • Core
  • *****
  • Wiadomości: 19421
  • Podziękowań: 314
  • Płeć: Mężczyzna
  • HTC HD2 #TyphooN CyanogenMod 7#
    • mobione.pl
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #49 dnia: Poniedziałek, 22 Wrzesień 2008, 16:28 »
pierwsze wersje BSW obsługiwały ten serwis
HD2 - wciąż ten sam telefon, wciąż inne wrażenia :)

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #50 dnia: Poniedziałek, 22 Wrzesień 2008, 16:55 »
No właśnie.

Dobra, kolejna wersja, tym razem chyba pełna - doszło kilka pól. Pewnie jeszcze popracuję nad tym jutro ;)
Teraz kombinuję, jak z poziomu samego HS++ + MS zrobić czytnik ;) kombinacje ontap i wywoływania skryptu.

Teraz spadam do domciu, wieczorkiem raczej dużo nie porobię, bo idę na piłeczkę  :D
Windows Mobile: a story of love and hate.


nothin

  • Gość
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #51 dnia: Poniedziałek, 22 Wrzesień 2008, 19:34 »
taki thems w toku mam...



1 row, slide.

Offline mobi

  • Administrator
  • Core
  • *****
  • Wiadomości: 19421
  • Podziękowań: 314
  • Płeć: Mężczyzna
  • HTC HD2 #TyphooN CyanogenMod 7#
    • mobione.pl
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #52 dnia: Poniedziałek, 22 Wrzesień 2008, 20:42 »
to jest qvga?  ?-?
HD2 - wciąż ten sam telefon, wciąż inne wrażenia :)

nothin

  • Gość
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #53 dnia: Poniedziałek, 22 Wrzesień 2008, 23:31 »
ideowo jest to przewijany palcem w koło pasek(czyli koniec staje się początkiem..itp).
gdybym umiał kompletnie wyłaczyć go z obsługi dpadem, byłoby bosko(czyli gdyby móc go przesuwać i tapać tylko palcem..).
« Ostatnia zmiana: Poniedziałek, 22 Wrzesień 2008, 23:34 wysłana przez nothin »

Offline mobi

  • Administrator
  • Core
  • *****
  • Wiadomości: 19421
  • Podziękowań: 314
  • Płeć: Mężczyzna
  • HTC HD2 #TyphooN CyanogenMod 7#
    • mobione.pl
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #54 dnia: Wtorek, 23 Wrzesień 2008, 00:01 »
itemselect="0"
ideowo, to byłoby dobre, gdyby, ustawiał się prawidłowo, powiedzmy na jakim zadanym końcu
zrobiłem takie przewijane kontakty, na całą strone ekranu i niby fajnie, ale kiepsko to wygląda czasami mógłby przyciągać jak magnes do kantów
HD2 - wciąż ten sam telefon, wciąż inne wrażenia :)

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #55 dnia: Wtorek, 23 Wrzesień 2008, 09:06 »
Ano, coś a'la docking by się przydało, czasami ciężko jest ustawić taki pasek tak, jak się chce.
Fajne buttony  :)
Windows Mobile: a story of love and hate.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #56 dnia: Piątek, 26 Wrzesień 2008, 09:19 »
Czytnik RSS - MortScript + Homescreen++ UI

Powiem krótko - zrobienie tego tak, żeby działało z każdym źródłem, dzisiaj jest już niemożliwością prawie... RSSy coraz mniej przypominają to, do czego zostały stworzone, niestety. Spora część z nich w treści zawiera całe strony HTMLowe, formatów samego pliku jest kilka, problem z kodowaniem...... ech.

Jeżeli jednak ktoś ma swoje ulubione źródło, a poniższy zestaw nie pracuje z nim poprawnie, dość łatwo można go sobie dopasować do swoich potrzeb.

Poniższy zestaw działa poprawnie na pewno z RSSem TVN24, który na dzień dzisiejszy ciągle jeszcze trzyma się standardów.

 

Jak to zainstalować w swoim temacie HS++?

1. Po pierwsze, skrypt MS pobierający dane.

RSSFeeds.mscr
#
# RSS Feeds collector
# It collects given RSS feeds into the registry
# HKCU\Software\Headlines
#
# Author: Piotr 'utak3r' Borys
#
# The newest version can always be found at forum.mobione.pl
#

#
# USER SETTINGS
#
###################################################

# set the timer?
periodically = 1
# how often?
delayHours = 2
# RSS feeds URL
FeedsURL = "http://www.tvn24.pl/newsroom.xml"
#FeedsURL = "http://feeds.pocketpcthoughts.com/pocketpcthoughts"
# where's your MortScript.exe?
mort = "\Windows\MortScript.exe"

###################################################
#
# THE END OF USER SETTINGS
#



debug = 0

# ok, let's start....
if (debug = 1)
periodically = 0
Message("Starting...")
endif

GetTime(hour,min,sec,day,month,year)

if (periodically = 1)
utime = TimeStamp() + (delayHours*60)*60
script = """" & SystemPath("ScriptPath") & "\" & SystemPath("ScriptName") & SystemPath("ScriptExt") & """"
RemoveNotifications(mort, script)
RunAt( utime, mort, script)
endif

ErrorLevel("off")

# only bother if cellular radio is on
radio = RegRead("HKLM", "\System\State\Phone", "Cellular System Available")

if ((debug = 1) && (radio = 0))
Message("Radio is off!")
endif
if ((debug = 1) && (radio > 0))
Message("Radio is on :)")
endif


if (radio > 0)

    # try to connect
    if (not InternetConnected("http://www.google.com"))
        Sleep(30000)
Connect("The Internet")
        Sleep(10000)
    endif

if (debug = 1)
Message("Downloading RSS feeds...")
endif
raw = ReadFile(FeedsURL)
if (debug = 1)
Message("Downloaded content: "&raw)
RegWriteString("HKCU", "\Software\Headlines\", "NewsRaw", raw)
endif
title = ""
content = ""
pubDate = ""
category = ""
url = ""
contentstart = 0
lp = 1

ForEach line in split(raw,"^LF^",1)
if (Find(line,"<item>"))
contentstart = 1
endif
if ((contentstart = 1) && (Find(line,"<title>")))
CallFunction("getTitle", title, line)
RegWriteString("HKCU", "\Software\Headlines\", "News"&lp, title)
endif
if ((contentstart = 1) && (Find(line,"<description>")))
CallFunction("getContent", content, line)
RegWriteString("HKCU", "\Software\Headlines\", "News"&lp&"Content", content)
endif
if ((contentstart = 1) && (Find(line,"<link>")))
CallFunction("getURL", url, line)
RegWriteString("HKCU", "\Software\Headlines\", "News"&lp&"URL", url)
endif
if ((contentstart = 1) && (Find(line,"<pubDate>")))
CallFunction("getPubDate", pubDate, line)
RegWriteString("HKCU", "\Software\Headlines\", "News"&lp&"PubDate", pubDate)
endif
if ((contentstart = 1) && (Find(line,"<category>")))
CallFunction("getCategory", category, line)
RegWriteString("HKCU", "\Software\Headlines\", "News"&lp&"Category", category)
lp = lp + 1
endif
EndForEach

if (debug = 1)
Message("Exiting script...")
endif

else
    # we must be in a black hole
    weather="W|0|No|Network"
if (debug = 1)
Message("WTF?! No network!...")
endif
endif

Sub getTitle
ttitlestart = find(argv[1], "<title>")
ttitleend = find(argv[1], "</title>", ttitlestart)
ttitle = SubStr(argv[1], ttitlestart+7, ttitleend-ttitlestart-7)

if (find(ttitle, "<![CDATA["))
ttitlestart = find(ttitle, "<![CDATA[")
ttitleend = find(ttitle, "]]>", ttitlestart)
ttitle = SubStr(ttitle, ttitlestart+9, ttitleend-ttitlestart-9)
endif

return(ttitle)
if (debug = 1)
Message(lp & ": Title: " & ttitle)
endif
EndSub

Sub getURL
turlstart = find(argv[1], "<link>")
turlend = find(argv[1], "</link>", turlstart)
turl = SubStr(argv[1], turlstart+6, turlend-turlstart-6)
return(turl)
if (debug = 1)
Message(lp & ": URL: " & turl)
endif
EndSub

Sub getContent
tvalstart = find(argv[1], "<description>")
tvalend = find(argv[1], "</description>", tvalstart)
tval = SubStr(argv[1], tvalstart+13, tvalend-tvalstart-13)

if (find(tval, "<![CDATA["))
tvalstart = find(tval, "<![CDATA[")
tvalend = find(tval, "]]>", tvalstart)
tval = SubStr(tval, tvalstart+9, tvalend-tvalstart-9)
endif

if (find(tval, "<img "))
tvalstart = find(tval, ">")
tval = SubStr(tval, tvalstart+1)
endif

return(tval)
if (debug = 1)
Message(lp & ": Content: " & tval)
endif
EndSub

Sub getPubDate
tvalstart = find(argv[1], "<pubDate>")
tvalend = find(argv[1], "</pubDate>", tvalstart)
tval = SubStr(argv[1], tvalstart+9, tvalend-tvalstart-9)
return(tval)
if (debug = 1)
Message(lp & ": PubDate: " & tval)
endif
EndSub

Sub getCategory
tvalstart = find(argv[1], "<category>")
tvalend = find(argv[1], "</category>", tvalstart)
tval = SubStr(argv[1], tvalstart+10, tvalend-tvalstart-10)

if (find(tval, "<![CDATA["))
tvalstart = find(tval, "<![CDATA[")
tvalend = find(tval, "]]>", tvalstart)
tval = SubStr(tval, tvalstart+9, tvalend-tvalstart-9)
endif

return(tval)
if (debug = 1)
Message(lp & ": Category: " & tval)
endif
EndSub

Na początku skryptu ustawiamy kilka parametrów działania:

periodically = 1/0
Czy skrypt ma uruchamiać się automatycznie co jakiś czas?

delayHours = 2
Jeżeli włączone automatyczne uruchamianie, co ile godzin skrypt ma pobierać dane?

FeedsURL = "http://www.tvn24.pl/newsroom.xml"
Adres RSS

mort = "\Windows\MortScript.exe"
Pełna ścieżka do interpretera MortScript.exe.

Jeżeli planujemy automatyczne uruchamianie skryptu, po jego skopiowaniu do wybranego katalogu, należy utworzyć link do niego w \Windows\StartUp, ewentualnie całego go tam skopiować.


2. Instalacja czytnika w wybranym temacie HS++.

Dodajemy nowy rząd (zakładkę) w naszym temacie HS++:

<!-- 4 -->
<!--RSS Reader 8*)   -->
<Row name="RSS Reader 8*)" seperator="0" rowtoggle="0" >
<View height="175" itemselect="1" adaptwidth="1" absolute="3" multi="1" >
<Item class="registry_tracker" ontap="StartApp" path="\Windows\MortScript.exe ::&quot;\Program Files\HomeScreen PlusPlus\BSHome\RSSFeedsReader.mscr&quot; lp=1 row=4 view=1">
<label text="%s" left="5" width="230" align="left" top="10" valign="top" format="wordbreak" fontsize="12" height="25" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\News1" />
</label>
</Item>
<Item class="registry_tracker" ontap="StartApp" path="\Windows\MortScript.exe ::&quot;\Program Files\HomeScreen PlusPlus\BSHome\RSSFeedsReader.mscr&quot; lp=2 row=4 view=1">
<label text="%s" left="5" width="230" align="left" top="45" valign="top" format="wordbreak" fontsize="12" height="25" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\News2" />
</label>
</Item>
<Item class="registry_tracker" ontap="StartApp" path="\Windows\MortScript.exe ::&quot;\Program Files\HomeScreen PlusPlus\BSHome\RSSFeedsReader.mscr&quot; lp=3 row=4 view=1">
<label text="%s" left="5" width="230" align="left" top="70" valign="top" format="wordbreak" fontsize="12" height="25" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\News3" />
</label>
</Item>
<Item class="registry_tracker" ontap="StartApp" path="\Windows\MortScript.exe ::&quot;\Program Files\HomeScreen PlusPlus\BSHome\RSSFeedsReader.mscr&quot; lp=4 row=4 view=1">
<label text="%s" left="5" width="230" align="left" top="105" valign="top" format="wordbreak" fontsize="12" height="25" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\News4" />
</label>
</Item>
<Item class="registry_tracker" ontap="StartApp" path="\Windows\MortScript.exe ::&quot;\Program Files\HomeScreen PlusPlus\BSHome\RSSFeedsReader.mscr&quot; lp=5 row=4 view=1">
<label text="%s" left="5" width="230" align="left" top="135" valign="top" format="wordbreak" fontsize="12" height="25" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\News5" />
</label>
</Item>
</View>

<View height="175" itemselect="1" adaptwidth="1" absolute="3" multi="1" >
<Item class="registry_tracker" ontap="View" index="4" subindex="0">
<label text="%s" left="5" width="230" align="left" top="10" valign="top" format="wordbreak" fontsize="12" height="25" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\News" />
</label>
</Item>
<Item class="registry_tracker" ontap="View" index="4" subindex="0">
<label text="%s" left="5" width="230" align="left" top="35" valign="top" format="wordbreak" fontsize="10" height="10" bold="0" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\NewsPubDate" />
</label>
</Item>
<Item class="registry_tracker" ontap="View" index="4" subindex="0">
<label text="%s" left="175" width="60" align="right" top="35" valign="top" format="wordbreak" fontsize="10" height="10" bold="1" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\NewsCategory" />
</label>
</Item>
<Item class="registry_tracker" ontap="View" index="4" subindex="0">
<label text="%s" left="5" width="230" align="left" top="50" valign="top" format="wordbreak" fontsize="12" height="130" bold="0" fontfamily="Tahoma">
<registry key_value="HKCU\Software\Headlines\NewsContent" />
</label>
</Item>
</View>
</Row>

Zakładka ta zawiera dwa widoki: widok nagłówków oraz widok treści.
W widoku nagłówków każdy element zawiera dwie istotne informacje:

<Item class="registry_tracker" ontap="StartApp" path="\Windows\MortScript.exe ::&quot;\Program Files\HomeScreen PlusPlus\BSHome\RSSFeedsReader.mscr&quot; lp=1 row=4 view=1">

Należy dopasować ścieżkę do interpretera MortScript, ścieżkę do skryptu, który za chwilę zainstalujemy oraz ustawić pożądany numer zakładki. W moim przykładzie całość wylądowała w zakładce o numerze 4, dlatego parametry wywołania skryptu wyglądają następująco:

lp=1 row=4 view=1

gdzie:
lp - numer kolejny nagłówka
row - numer zakładki
view - tego nie zmieniamy

oraz:

<registry key_value="HKCU\Software\Headlines\News1" />

gdzie każdy kolejny nagłówek otrzymuje kolejny numer (News1, News2 itd.).

Na końcu w katalogu naszego tematu instalujemy kolejny skrypt MS, odpowiedzialny za wyświetlanie zawartości:

RSSFeedsReader.mscr
title = RegRead("HKCU", "\Software\Headlines\", "News"&lp)
content = RegRead("HKCU", "\Software\Headlines\", "News"&lp&"Content")
pubDate = RegRead("HKCU", "\Software\Headlines\", "News"&lp&"PubDate")
category = RegRead("HKCU", "\Software\Headlines\", "News"&lp&"Category")
url = RegRead("HKCU", "\Software\Headlines\", "News"&lp&"URL")

RegWriteString("HKCU", "\Software\Headlines\", "News", title)
RegWriteString("HKCU", "\Software\Headlines\", "NewsContent", content)
RegWriteString("HKCU", "\Software\Headlines\", "NewsPubDate", pubDate)
RegWriteString("HKCU", "\Software\Headlines\", "NewsCategory", category)
RegWriteString("HKCU", "\Software\Headlines\", "NewsURL", url)

RegWriteString("HKLM", "\SOFTWARE\Microsoft\Today\Items\HomeScreen PlusPlus\", "Command", "100 "&row&" "&view)

W tym skrypcie nic nie trzeba ustawiać, wszystko, czego potrzebuje, otrzymuje jako parametry wywołania z poziomu HS++.


I.... chyba o niczym nie zapomniałem :) Jakby były jakieś problemy, pytajcie.
Powodzenia! :)

Windows Mobile: a story of love and hate.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #57 dnia: Piątek, 26 Wrzesień 2008, 10:24 »

BTW, następna wersja HS++ nie będzie już ucinać stringów, więc aktualny problem ucinania treści zniknie :)
Windows Mobile: a story of love and hate.


Offline mobi

  • Administrator
  • Core
  • *****
  • Wiadomości: 19421
  • Podziękowań: 314
  • Płeć: Mężczyzna
  • HTC HD2 #TyphooN CyanogenMod 7#
    • mobione.pl
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #58 dnia: Piątek, 26 Wrzesień 2008, 12:15 »
no to szykuje się nowy widok, dzięki Utak3r
HD2 - wciąż ten sam telefon, wciąż inne wrażenia :)

Offline TheArt

  • Core
  • *****
  • Wiadomości: 471
  • Podziękowań: 5
  • HTC Diamond WM 6.1
    • Tanie strony WWW
Odp: Kolekcja tematów dla HomeScreena PlusPlus oraz BatteryStatusa
« Odpowiedź #59 dnia: Niedziela, 26 Październik 2008, 13:06 »
Moze ktos zrobil z analogowym zegarkiem, ten Toggle nie dziala
HTC Diamond, HTC Hermes, HTC Blue Angel, HTC Himalaya, HTC Wallaby