All you need is an @Include of:
Code: Select all
[Variables]
Decoder=""":"''",""":"''","'":"'","'":"'","&":"&","&":"&","<":"<","<":"<",">":">",">":">","&160;":" ","nbsp;":" ","¡":"¡","¡":"¡","¢":"¢","¢":"¢","£":"£","£":"£","¤":"¤","¤":"¤","¥":"¥","¥":"¥","¦":"¦","¦":"¦","§":"§","§":"§","¨":"¨","¨":"¨","©":"©","©":"©","ª":"ª","ª":"ª","«":"«","«":"«","¬":"¬","¬":"¬","®":"®","®":"®","¯":"¯","¯":"¯","°":"°","°":"°","±":"±","±":"±","²":"²","²":"²","³":"³","³":"³","´":"´","´":"´","µ":"µ","µ":"µ","¶":"¶","¶":"¶","·":"·","·":"·","¸":"¸","¸":"¸","¹":"¹","¹":"¹","º":"º","º":"º","»":"»","»":"»","¼":"¼","¼":"¼","½":"½","½":"½","¾":"¾","¾":"¾","¿":"¿","¿":"¿","×":"×","×":"×","÷":"÷","÷":"÷","À":"À","À":"À","Á":"Á","Á":"Á","Â":"Â","Â":"Â","Ã":"Ã","Ã":"Ã","Ä":"Ä","Ä":"Ä","Å":"Å","Å":"Å","Æ":"Æ","Æ":"Æ","Ç":"Ç","Ç":"Ç","È":"È","È":"È","É":"É","É":"É","Ê":"Ê","Ê":"Ê","Ë":"Ë","Ë":"Ë","Ì":"Ì","Ì":"Ì","Í":"Í","Í":"Í","Î":"Î","Î":"Î","Ï":"Ï","Ï":"Ï","Ð":"Ð","Ð":"Ð","Ñ":"Ñ","Ñ":"Ñ","Ò":"Ò","Ò":"Ò","Ó":"Ó","Ó":"Ó","Ô":"Ô","Ô":"Ô","Õ":"Õ","Õ":"Õ","Ö":"Ö","Ö":"Ö","Ø":"Ø","Ø":"Ø","Ù":"Ù","Ù":"Ù","Ú":"Ú","Ú":"Ú","Û":"Û","Û":"Û","Ü":"Ü","Ü":"Ü","Ý":"Ý","Ý":"Ý","Þ":"Þ","Þ":"Þ","ß":"","ß":"ß","à":"à","à":"à","á":"á","á":"á","â":"â","â":"â","ã":"ã","ã":"ã","ä":"ä","ä":"ä","å":"å","å":"å","æ":"æ","æ":"æ","ç":"ç","ç":"ç","è":"è","è":"è","é":"é","é":"é","ê":"ê","ê":"ê","ë":"ë","ë":"ë","ì":"ì","ì":"ì","í":"í","í":"í","î":"î","î":"î","ï":"ï","ï":"ï","ð":"ð","ð":"ð","ñ":"ñ","ñ":"ñ","ò":"ò","ò":"ò","ó":"ó","ó":"ó","ô":"ô","ô":"ô","õ":"õ","õ":"õ","ö":"ö","ö":"ö","ø":"ø","ø":"ø","ù":"ù","ù":"ù","ú":"ú","ú":"ú","û":"û","û":"û","ü":"ü","ü":"ü","ý":"ý","ý":"ý","þ":"þ","þ":"þ","ÿ":"ÿ","ÿ":"ÿ"
Code: Select all
[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
[Metadata]
Name=YQLFeed
Author=JSMorley
Information=Demonstration of using the YQL syntax to obtain feeds produced in any format
Version=Dec 6, 2013
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
[Variables]
@Include=#@#Decoder.inc
FeedURL=http://rainmeter.net/forum/feed.php
FeedInfo=<title.*>(.*)</title>.*<link href="(.*)".*<updated>(.*)</updated>
Entry=.*<entry>(.*)</entry>
EntryItems=<title.*>(.*)</title>.*<link href="(.*)".*<updated>(.*)</updated>
[MeasureFeed]
Measure=Plugin
Plugin=WebParser
URL=http://query.yahooapis.com/v1/public/yql?q=select * from feednormalizer where url="#FeedURL#" and output="atom_1.0"
RegExp=(?siU)#FeedInfo##Entry##Entry##Entry##Entry##Entry#
; Feed Information
[MeasureFeedTitle]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
Substitute=#Decoder#
StringIndex=1
[MeasureFeedLink]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=2
[MeasureFeedTime]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=3
; Entry 1
[MeasureEntry1Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=4
RegExp=(?siU)#EntryItems#
Substitute=#Decoder#
DecodeCharacterReference=1
StringIndex2=1
[MeasureEntry1Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=4
RegExp=(?siU)#EntryItems#
StringIndex2=2
[MeasureEntry1Time]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=4
RegExp=(?siU)#EntryItems#
StringIndex2=3
; Entry 2
[MeasureEntry2Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=5
RegExp=(?siU)#EntryItems#
Substitute=#Decoder#
DecodeCharacterReference=1
StringIndex2=1
[MeasureEntry2Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=5
RegExp=(?siU)#EntryItems#
StringIndex2=2
[MeasureEntry2Time]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=5
RegExp=(?siU)#EntryItems#
StringIndex2=3
; Entry 3
[MeasureEntry3Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=6
RegExp=(?siU)#EntryItems#
Substitute=#Decoder#
DecodeCharacterReference=1
StringIndex2=1
[MeasureEntry3Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=6
RegExp=(?siU)#EntryItems#
StringIndex2=2
[MeasureEntry3Time]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=6
RegExp=(?siU)#EntryItems#
StringIndex2=3
; Entry 4
[MeasureEntry4Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=7
RegExp=(?siU)#EntryItems#
Substitute=#Decoder#
DecodeCharacterReference=1
StringIndex2=1
[MeasureEntry4Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=7
RegExp=(?siU)#EntryItems#
StringIndex2=2
[MeasureEntry4Time]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=7
RegExp=(?siU)#EntryItems#
StringIndex2=3
; Entry 5
[MeasureEntry5Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=8
RegExp=(?siU)#EntryItems#
Substitute=#Decoder#
DecodeCharacterReference=1
StringIndex2=1
[MeasureEntry5Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=8
RegExp=(?siU)#EntryItems#
StringIndex2=2
[MeasureEntry5Time]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFeed]
StringIndex=8
RegExp=(?siU)#EntryItems#
StringIndex2=3
[MeterBackground]
Meter=Image
ImagePath=#@#Images\
ImageName=Background.png
W=300
H=295
ScaleMargins=3,3,3,3
[MeterHeadBackground]
Meter=Image
X=2
Y=2
W=296
H=40
SolidColor=10,10,10,255
[MeterFeedTitle]
Meter=String
MeasureName=MeasureFeedTitle
X=8
Y=7
W=294
H=36
FontFace=Segoe UI
FontSize=15
FontColor=200,200,200,255
StringStyle=Bold
AntiAlias=1
ClipString=1
LeftMouseUpAction=["[MeasureFeedLink]"]
[MeterEntry1Title]
Meter=String
MeasureName=MeasureEntry1Title
X=3
Y=44
W=287
H=44
FontFace=Segoe UI
FontSize=12
FontColor=200,200,200,255
SolidColor=30,30,30,255
Padding=4,0,4,4
AntiAlias=1
ClipString=1
ToolTipText=[MeasureEntry1Title]#CRLF##CRLF#Published: [MeasureEntry1Time]
ToolTipTitle=[MeasureFeedTitle]
ToolTipType=1
ToolTipWidth=300
DynamicVariables=1
LeftMouseUpAction=["[MeasureEntry1Link]"]
[MeterEntry2Title]
Meter=String
MeasureName=MeasureEntry2Title
X=3
Y=2R
W=287
H=44
FontFace=Segoe UI
FontSize=12
FontColor=200,200,200,255
SolidColor=47,47,47,255
Padding=4,0,4,4
AntiAlias=1
ClipString=1
ToolTipText=[MeasureEntry2Title]#CRLF##CRLF#Published: [MeasureEntry2Time]
ToolTipTitle=[MeasureFeedTitle]
ToolTipType=1
ToolTipWidth=300
DynamicVariables=1
LeftMouseUpAction=["[MeasureEntry2Link]"]
[MeterEntry3Title]
Meter=String
MeasureName=MeasureEntry3Title
X=3
Y=2R
W=287
H=44
FontFace=Segoe UI
FontSize=12
FontColor=200,200,200,255
SolidColor=30,30,30,255
Padding=4,0,4,4
AntiAlias=1
ClipString=1
ToolTipText=[MeasureEntry3Title]#CRLF##CRLF#Published: [MeasureEntry3Time]
ToolTipTitle=[MeasureFeedTitle]
ToolTipType=1
ToolTipWidth=300
DynamicVariables=1
LeftMouseUpAction=["[MeasureEntry3Link]"]
[MeterEntry4Title]
Meter=String
MeasureName=MeasureEntry4Title
X=3
Y=2R
W=287
H=44
FontFace=Segoe UI
FontSize=12
FontColor=200,200,200,255
SolidColor=47,47,47,255
Padding=4,0,4,4
AntiAlias=1
ClipString=1
ToolTipText=[MeasureEntry4Title]#CRLF##CRLF#Published: [MeasureEntry4Time]
ToolTipTitle=[MeasureFeedTitle]
ToolTipType=1
ToolTipWidth=300
DynamicVariables=1
LeftMouseUpAction=["[MeasureEntry4Link]"]
[MeterEntry5Title]
Meter=String
MeasureName=MeasureEntry5Title
X=3
Y=2R
W=287
H=44
FontFace=Segoe UI
FontSize=12
FontColor=200,200,200,255
SolidColor=30,30,30,255
Padding=4,0,4,4
AntiAlias=1
ClipString=1
ToolTipText=[MeasureEntry5Title]#CRLF##CRLF#Published: [MeasureEntry5Time]
ToolTipTitle=[MeasureFeedTitle]
ToolTipType=1
ToolTipWidth=300
DynamicVariables=1
LeftMouseUpAction=["[MeasureEntry5Link]"]
However, if you use DecodeCharacterReference=1 on the "child" WebParser measures in the skin that will turn that & into just &. Fine as far as that goes, but we don't get another shot at DecodeCharacterReference on that measure, so we ALSO use a Substitute that uses that @Include file above.
As far as I can tell, that produces a clean result in all cases.
Here are some other URL's you can plug into the skin and try:
FeedURL=http://rainmeter.net/forum/feed.php
FeedURL=http://feeds.gawker.com/lifehacker/full.xml
FeedURL=http://news.google.com/?output=rss
FeedURL=http://www.breakingnews.com/feeds/rss/