It is currently March 28th, 2024, 3:41 pm
Tips and Tricks from the Rainmeter Community
fulf
Posts: 3 Joined: November 7th, 2010, 8:31 am
Post
by fulf » November 16th, 2010, 2:41 pm
I have a quick question. Can there be a RSS filter? (For example I have this sports RSS:
Code: Select all
[Basketball]X shoots winning basket at -.3 miliseconds.
[Football] Y is suspended after ugly fault.
[Tennis] Z sux.
[Basketball]Other info.
[Football] More info.
and so on and so forth.
Is there a way to make the RSS feed display only those posts containing [Basketball] (for e.g.)
Would really make my days much easier with RSS.
Chewtoy
Moderator
Posts: 995 Joined: June 10th, 2009, 12:44 pm
Location: Sweden
Post
by Chewtoy » November 16th, 2010, 3:14 pm
Yes. With the help of a lookahead regexp that is very much possible.
Now I don't know what the code for the page look like, as you haven't included a link or anything that might help. But in general it should look like this:
(?(?=.*IfThis).*GetThis)
Feel free to implement that in your code.
http://www.regular-expressions.info/lookaround.html
fulf
Posts: 3 Joined: November 7th, 2010, 8:31 am
Post
by fulf » November 16th, 2010, 3:40 pm
Here's a rss i'd like to filter
Click.
And here's the .ini of the skin i'm using.
Code: Select all
;=======================================================================================
;
; Fade by FreakQuency
; RSS Reader
; http://freakquency85.deviantart.com
;
;=======================================================================================
[Rainmeter]
Author=aidaaah, modified by freakQuency,fresenius85@gmail.com,Interface created by FreakQuency
AppVersion=1.1
Update=5000
MouseOverAction=!execute [!RainmeterShowMeter MeterClose][!RainmeterRedraw]
MouseLeaveAction=!execute [!RainmeterHideMeter MeterClose][!RainmeterRedraw]
;=======================================================================================
[Metadata]
Name= Fade RSS Reader
Config=
Description=
Instructions=
Tags=
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
Variant=
Preview=
;=======================================================================================
[Variables]
URL=http://www.role.ro/rss.php
Link=http://www.role.ro/
Title=bitGAMER
LineColor=0,0,0,1
Substitute="&":"&",""":"","&Quot;":"","<br>":"","![CDATA[":"","]]":"","...":"","<":"",">":"","/PRE>":"","PRE>":"","<":"","'":"'"
[Style1]
FontColor=221f1f
FontSize=9
StringAlign=LEFT
StringStyle=Normal
FontFace=Calibri
AntiAlias=1
[Style2]
FontColor=bc2525
FontSize=9
StringAlign=LEFT
StringStyle=Normal
FontFace=Calibri
AntiAlias=1
;=======================================================================================
;Measure Section
;=======================================================================================
[RSS]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=#URL#
RegExp="(?siU)<title>(.*)<\/title>(?(?=.*<lastBuildDate>(.*)<\/lastBuildDate>))(?(?=.*<link>(.*)<\/link>.)).*<description>(.*)<\/description>(?:(?:.*<url>(.*)<\/url>)|.*).*<item(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)(?:.*<title>(.*)<\/title>(?(?=.*<pubDate>(.*)<\/pubDate>)).*<link>(.*)<\/link>.*<description>(.*)<\/description>|.*)"
UpdateRate=60
StringIndex=1
[MeasureRSS1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=6
Substitute=#Substitute#
[MeasureLink1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=8
Substitute="&":"&"
---
[MeasureRSS2]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=10
Substitute=#Substitute#
[MeasureLink2]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=12
Substitute="&":"&"
---
[MeasureRSS3]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=14
Substitute=#Substitute#
[MeasureLink3]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=16
Substitute="&":"&"
---
[MeasureRSS4]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=18
Substitute=#Substitute#
[MeasureLink4]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndeX=20
Substitute="&":"&"
---
[MeasureRSS5]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=22
Substitute=#Substitute#
[MeasureLink5]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=24
Substitute="&":"&"
---
[MeasureRSS6]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=26
Substitute=#Substitute#
[MeasureLink6]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=28
Substitute="&":"&"
---
[MeasureRSS7]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=30
Substitute=#Substitute#
[MeasureLink7]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=32
Substitute="&":"&"
---
[MeasureRSS8]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=34
Substitute=#Substitute#
[MeasureLink8]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=36
Substitute="&":"&"
---
[MeasureRSS9]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndeX=38
Substitute=#Substitute#
[MeasureLink9]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndex=40
Substitute="&":"&"
---
[MeasureRSS10]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndeX=42
Substitute=#Substitute#
[MeasureLink10]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[RSS]
StringIndeX=44
Substitute="&":"&"
;=======================================================================================
;Background Section
;=======================================================================================
[Background]
Meter=IMAGE
X=0
Y=0
ImageName=rss.png
H=292
W=227
[Title]
Meter=STRING
X=22
Y=17
FontFace=Century Gothic
FontSize=12
AntiAlias=1
StringAlign=LEFT
StringStyle=Bold
Text=#Title#
LeftMouseDownAction=!execute ["#Link#"][!RainmeterRedraw]
;=======================================================================================
;Meter Section
;=======================================================================================
[Feed1]
Meter=STRING
MeasureName=MeasureRSS1
X=10
Y=34r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link1][!RainmeterHideMeter Feed1][!RainmeterRedraw]
[Link1]
Meter=STRING
MeasureName=MeasureRSS1
X=r
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed1][!RainmeterHideMeter Link1][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink1]
[Feed2]
Meter=STRING
MeasureName=MeasureRSS2
MeasureName2=MeasureLink2
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link2][!RainmeterHideMeter Feed2][!RainmeterRedraw]
[Link2]
Meter=STRING
MeasureName=MeasureRSS2
X=r
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed2][!RainmeterHideMeter Link2][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink2]
[Feed3]
Meter=STRING
MeasureName=MeasureRSS3
MeasureName2=MeasureLink3
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link3][!RainmeterHideMeter Feed3][!RainmeterRedraw]
[Link3]
Meter=STRING
MeasureName=MeasureRSS3
X=r
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed3][!RainmeterHideMeter Link3][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink3]
[Feed4]
Meter=STRING
MeasureName=MeasureRSS4
MeasureName2=MeasureLink4
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link4][!RainmeterHideMeter Feed4][!RainmeterRedraw]
[Link4]
Meter=STRING
MeasureName=MeasureRSS4
X=r
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed4][!RainmeterHideMeter Link4][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink4]
[Feed5]
Meter=STRING
MeasureName=MeasureRSS5
MeasureName2=MeasureLink5
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link5][!RainmeterHideMeter Feed5][!RainmeterRedraw]
[Link5]
Meter=STRING
MeasureName=MeasureRSS5
X=10
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
MouseLeaveAction=!execute [!RainmeterShowMeter Feed5][!RainmeterHideMeter Link5][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink5]
[Feed6]
Meter=STRING
MeasureName=MeasureRSS6
MeasureName2=MeasureLink6
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link6][!RainmeterHideMeter Feed6][!RainmeterRedraw]
[Link6]
Meter=STRING
MeasureName=MeasureRSS6
X=10
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed6][!RainmeterHideMeter Link6][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink6]
[Feed7]
Meter=STRING
MeasureName=MeasureRSS7
MeasureName2=MeasureLink7
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link7][!RainmeterHideMeter Feed7][!RainmeterRedraw]
[Link7]
Meter=STRING
MeasureName=MeasureRSS7
X=10
Y=r
H=15
W=165
ClipString=1
StringStyle=NORMAL
MeterStyle=Style2
MouseLeaveAction=!execute [!RainmeterShowMeter Feed7][!RainmeterHideMeter Link7][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink7]
[Feed8]
Meter=STRING
MeasureName=MeasureRSS8
MeasureName2=MeasureLink8
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link8][!RainmeterHideMeter Feed8][!RainmeterRedraw]
[Link8]
Meter=STRING
MeasureName=MeasureRSS8
X=r
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed8][!RainmeterHideMeter Link8][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink8]
[Feed9]
Meter=STRING
MeasureName=MeasureRSS9
MeasureName2=MeasureLink9
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link9][!RainmeterHideMeter Feed9][!RainmeterRedraw]
[Link9]
Meter=STRING
MeasureName=MeasureRSS9
X=r
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed9][!RainmeterHideMeter Link9][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink9]
[Feed10]
Meter=STRING
MeasureName=MeasureRSS10
MeasureName2=MeasureLink10
X=10
Y=20r
H=15
W=165
ClipString=1
MeterStyle=Style1
MouseOverAction=!execute [!RainmeterShowMeter Link10][!RainmeterHideMeter Feed10][!RainmeterRedraw]
[Link10]
Meter=STRING
MeasureName=MeasureRSS10
X=10
Y=r
H=15
W=165
ClipString=1
MeterStyle=Style2
Hidden=1
MouseLeaveAction=!execute [!RainmeterShowMeter Feed10][!RainmeterHideMeter Link10][!RainmeterRedraw]
LeftMouseDownAction=[MeasureLink10]
I'd like it to filter just 'Video' and 'Rolling' (or just 'Video').
So...could you explain it in a bit more detail? (not necesarely high level detail, but...medium? XD)
Edit: Just found out about a good site: http://feedsifter.com
Chewtoy
Moderator
Posts: 995 Joined: June 10th, 2009, 12:44 pm
Location: Sweden
Post
by Chewtoy » November 16th, 2010, 4:08 pm
I would make the lookahead something like:
(?(?=.*<title>Video).*~(.*)</title>.*<link>(.*)</link>)
That should give you the title as the first string index and the link as the second. And it will only get the ones with Video.
(?(?=.*<title>Rolling).*~(.*)</title>.*<link>(.*)</link>)
Would get the ones for Rolling .
You have to replace your RegExp with that. If you have no idea how to do it, I suggest you take a look at these:
http://rainmeter.net/cms/Rainmeter101-SkinTutorials
Now. Look ahead works like this: The (?=something) says that webparser should look for 'something'. And if it finds that, it should retrive what we tell it to in (?.
==> (?(?=If_This_Is_Found)Get_This_Stuff)
fulf
Posts: 3 Joined: November 7th, 2010, 8:31 am
Post
by fulf » November 16th, 2010, 4:31 pm
Thanks alot! I'm 70% sure I understand
(Don't worry, the rest of 30 will come by practicing it myself
) Thanks alot.