Rainmeter WebParser 應用教學 - 桌布

Necoo avatar
By Necoo
at 2011-10-25T07:40

Table of Contents

WebParser 網頁分析的功能大部分用來訂閱RSS、新聞、天氣預報等等
簡單來講就是透過連結至網頁依照規則取數值回來秀在 Meter 上

接下來將從無到有講解一個 SKIN 的撰寫步驟
示範使用網頁分析取得 own3D.tv 網站上熱門的 LoL 直播清單

請先準備好製作面板的素材,這部分有點牽涉到美工能力(略)

建立一個INI檔案以供 SKIN 使用

[Rainmeter]
Author=June

這個區段控制一些全域的設置選項,例如更新間隔、背景模式等等...

[Metadata]
Name=
Config=
Description=
Instructions=
Version=1.0
Tags=
License=
Variant=
Preview=

這個區段控制軟體內建管理 SKIN 功能的一些細節顯示

[Variables]
Path=#CURRENTPATH#
Play=按一下左鍵開啟串流#CRLF#按一下中鍵連結至 own3D 頁面
SubstituteText="![CDATA[":"","]]":""

這個區段可以預先設置變數
第一個為設定路徑
第二個為工具提示文字
第三個為取值後要替換個文字

[TextStyleA]
FontSize=10 文字大小
FontColor=52,56,63 文字顏色
FontFace=Arial Unicode MS 文字字型
StringStyle=Bold 粗體樣式
StringEffect=Border 邊框特效
FontEffectColor=112,118,128 特效顏色

[TextStyleB]
...
因為我想要把 Meter 文字分成兩種風格,所以我預先定義出風格樣式

[MeasureGetList]
Measure=Plugin
Plugin=Plugins\WebParser.dll
UpdateRate=600 更新間隔
Url=http://api.own3d.tv/live?game=lol 解析網址
RegExp="(?si)</author>.*?<title>...." 取值規則(正規表達式)
StringIndex=1

這部分就是取數值的核心了,正規表達由於我也是初學者..使用方法就 Google 吧
(?si) s=忽略斷行字元 i=符合大小寫

[MeasureName1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureGetList]
StringIndex=1
Substitute=#SubstituteText#

取得頻道名稱,即[MeasureGetList]的第一個返回值,並替換不需要的文字

[MeasureUrl1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureGetList]
StringIndex=2

取得頻道頁面網址,即[MeasureGetList]的第二個返回值

[MeasureView1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureGetList]
StringIndex=3

取得頻道觀眾人數,即[MeasureGetList]的第三個返回值

[MeasureStream1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureGetList]
StringIndex=4
Substitute=#SubstituteText#

取得頻道串流網址,即[MeasureGetList]的第四個返回值,並替換不需要的文字
由於我有個功能是直接使用 Player 播放直播(不需開啟瀏覽器),故取此值

[MeasureImage1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureGetList]
StringIndex=5
Download=1

取得頻道預覽圖片,即[MeasureGetList]的第五個返回值,並下載供 Meter 使用

接下來直到 Meter 區段前除了名稱裡的數字不同及取值索引遞增之外
就是一大串的重複了.....所以就省略了
最多觀眾的10個頻道,每頻道取5個值,所以總共有50個

[MeterBackground5]
Meter=IMAGE
ImageName=background_5.png
ImageAlpha=255

1~5背景圖片,由於我有作開關分為兩段顯示清單所以有兩個

[MeterBackground10]
Meter=IMAGE
ImageName=background_10.png
ImageAlpha=255
Hidden=1

6~10背景圖片,設定隱藏之

[MeterButton5]
ImageName=button_5.png
Meter=Image
ImageAlpha=255
X=230
Y=28
ToolTipText=按一下左鍵切換清單#CRLF#按一下中鍵更新清單
LeftMouseDownAction=!Execute [!RainmeterHideMeter MeterName1]...
MiddleMouseDownAction=!Execute [!RainmeterRefresh]

1~5的開關按鈕,點擊左鍵會隱藏頻道1~5所有 Meter 並顯示6~10頻道

[MeterButton10]
...

6~10的開關按鈕,點擊左鍵會隱藏頻道6~10所有 Meter 並顯示1~5頻道

接下來的 Meter 顯示有幾點觀念要講一下
Rainmeter SKIN 的 INI 內容是有層級的,越下面的 Meter 層級越高
如果 Meter 位置是有規律性的建議依序寫入,可使用r直接繼承上一個的位置
這樣就不用每個 Meter 都去橋X,Y浪費一堆時間

[MeterName1]
MeasureName=MeasureName1
Meter=STRING
StringAlign=CENTER 置中
ClipString=1 過長省略
W=190 區域寬
H=18 區域高
X=215 X座標
Y=80 Y座標
MeterStyle=TextStyleA 使用先前定義的風格
AntiAlias=1 反鋸齒
ToolTipText=[MeasureName1] 工具提示
DynamicVariables=1 動態值(用於工具提示)

[MeterView1]
MeasureName=MeasureView1
Meter=STRING
StringAlign=CENTER
ClipString=1
W=190
H=18
X=0r X座標繼承上一個
Y=18r Y座標繼承上一個+18
MeterStyle=TextStyleB
AntiAlias=1

由於某些取回來的數值可能會長到超出背景圖範圍,所以我限制了顯示區域
這也是我要使用工具提示的原因,過長被截斷時可由工具提示觀看

接下來直到頻道預覽圖前除了名稱裡的數字及某些繼承的Y座標不同之外
就是一大串的重複了.....所以就省略了
由於6~10頻道的 Meter 是經由開關開啟的,所以要先設定為隱藏

[MeterImage1]
MeasureName=MeasureImage1
Meter=Image
ImageAlpha=250
W=88
H=50
X=29
Y=70
ToolTipText=#Play#
LeftMouseDownAction=!Execute ["#Path#\flashplayer.exe" "[MeasureStream1]...
MiddleMouseDownAction=!Execute ["[MeasureUrl1]"]

[MeterImage2]
MeasureName=MeasureImage2
Meter=Image
ImageAlpha=250
W=88
H=50
X=r
Y=65r
ToolTipText=#Play#
LeftMouseDownAction=!Execute ["#Path#\flashplayer.exe" "[MeasureStream2]...
MiddleMouseDownAction=!Execute ["[MeasureUrl2]"]

預覽圖的 Meter ,我設置為左鍵直接撥放,右鍵開啟網頁

接下來除了名稱裡的數字不同之外
就是一大串的重複了.....所以就省略了

[MeterMask]
Meter=IMAGE
ImageName=mask.png
ImageAlpha=255
X=25
Y=67
Hidden=1

由於嫌只有預覽圖太醜了,所以幫預覽圖做了個遮罩加個框
設為隱藏待第10個預覽圖取得才顯示,這樣才不會一載入就顯示,很突兀

[MeterShadow]
Meter=IMAGE
ImageName=shadow.png
ImageAlpha=255

上下橫幅加了個陰影效果
陰影我需要的效果是會蓋到某些 Meter 故我寫在最後面(最上層)



某些腳本因為過長有被我截斷,可以下載完成的 SKIN 觀看
http://db.tt/RnG6phlY

--
Tags: 桌布

All Comments

Gilbert avatar
By Gilbert
at 2011-10-28T21:29
很棒推~~ 可以放個實圖嗎
Tracy avatar
By Tracy
at 2011-11-01T06:30
http://goo.gl/uThIo 上面那個
Quanna avatar
By Quanna
at 2011-11-01T15:03
下面那個是另一種應用....星座每日運勢 XD
Caitlin avatar
By Caitlin
at 2011-11-02T14:13
再推!!!
實用又有質感 棒
Odelette avatar
By Odelette
at 2011-11-06T10:22
推~~~

win7無法安裝objectdock

Hedda avatar
By Hedda
at 2011-10-24T03:16
如題 已經爬過文了,好像沒人有這問題。 但我不管是自己在用的win7x64還是虛擬機器的win7x86都沒辦法安裝objectdock2.0 剛開始安裝就會出現以下情形 http://ppt.cc/otcat 請問有人知道是為什麼嗎? 感謝。 -- ███ ███ ███ ξ ...

La Montagne II

Mason avatar
By Mason
at 2011-10-23T22:05
這是台灣山岳第二集, 總共十張桌布, 七種解析度。 地點包括: 水漾森林、石門山、塔關山、關山嶺山、 清境農場、向陽山、五寮尖、能高越嶺、能安主稜 前陣子去梨山華崗, 想探訪賽德克巴萊拍攝景點之一的合歡溪步道 結果運氣不好碰到大雨, 完全沒有照片~ 太可惜 桌布網址: http://www. ...

大家來分享自己的桌面

Joseph avatar
By Joseph
at 2011-10-23T17:01
初次分享andlt;(_ _)andgt; 因為重灌電腦也就順便把前人心血(像是那兩隻鳥XD)拿來操演一番,成果如下XD http://i.imgur.com/KzY7f.png XP版本(怕電腦跑不動…) --Rainmeter --Rocketdock --Rainlendar 缺憾: ...

大家來分享自己的桌面

Candice avatar
By Candice
at 2011-10-21T15:53
我也來分享一下 http://ppt.cc/pYir 這是暑假拿到新相機P300時 到我家旁邊河堤拍的風景 剛好天氣還不錯 覺得蠻好看就當桌布:P 同場加映 我的上一張桌布試用這張: http://ppt.cc/vAcu - ...

塗鴉風?桌布5枚

Blanche avatar
By Blanche
at 2011-10-21T14:26
http://www.hbg-wave.com/specialpresent/ 喜歡請自取 - ...