FreeRaider wrote:balala, a note: if the number is not composed of 7 digits, it does not make the substitution.
I think it's better to use a lua script.
In fact my initial code does the substitution for any number which has 7, 8 or 9 digits.
The lua solution for sure is a very good one, but something similar can be achieved even without a lua script. Just in case anyone would like to see what I'm talking about:
Code: Select all
[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
[MeasureFacebook]
Measure=Plugin
Plugin=WebParser
Url=https://www.facebook.com/BFMTV/likes
UpdateRate=300
RegExp=(?siU).*\["PagesLikesTab",.*elem_.*\}.*\],(.*)\],\[\]\],
FinishAction=[!EnableMeasure MeasureLikes][!UpdateMeasure MeasureLikes]
[MeasureLikes]
Measure=Plugin
Plugin=WebParser
URL=[MeasureFacebook]
StringIndex=1
IfCondition=(MeasureLikes<=999)
IfTrueAction=[!SetVariable Subst ""][!SetVariable Subst2 ""][!UpdateMeasure "MeasureLikesGrouped"][!UpdateMeter MeterValueFacebook][!ShowMeter MeterValueFacebook][!Redraw]
IfCondition2=((MeasureLikes>999)&&(MeasureLikes<=999999))
IfTrueAction2=[!SetVariable Subst "(\d{0,3})(\d{3})"][!SetVariable Subst2 "\1 \2"][!UpdateMeasure "MeasureLikesGrouped"][!UpdateMeter MeterValueFacebook][!ShowMeter MeterValueFacebook][!Redraw]
IfCondition3=((MeasureLikes>999999)&&(MeasureLikes<=999999999))
IfTrueAction3=[!SetVariable Subst "(\d{0,3})(\d{3})(\d{3})"][!SetVariable Subst2 "\1 \2 \3"][!UpdateMeasure "MeasureLikesGrouped"][!UpdateMeter MeterValueFacebook][!ShowMeter MeterValueFacebook][!Redraw]
IfCondition4=((MeasureLikes>999999999)&&(MeasureLikes<=999999999999))
IfTrueAction4=[!SetVariable Subst "(\d{0,3})(\d{3})(\d{3})(\d{3})"][!SetVariable Subst2 "\1 \2 \3 \4"][!UpdateMeasure "MeasureLikesGrouped"][!UpdateMeter MeterValueFacebook][!ShowMeter MeterValueFacebook][!Redraw]
IfCondition5=((MeasureLikes>999999999999)&&(MeasureLikes<=999999999999999))
IfTrueAction5=[!SetVariable Subst "(\d{0,3})(\d{3})(\d{3})(\d{3})(\d{3})"][!SetVariable Subst2 "\1 \2 \3 \4 \5"][!UpdateMeasure "MeasureLikesGrouped"][!UpdateMeter MeterValueFacebook][!ShowMeter MeterValueFacebook][!Redraw]
IfCondition6=((MeasureLikes>999999999999999)&&(MeasureLikes<=999999999999999999))
IfTrueAction6=[!SetVariable Subst "(\d{0,3})(\d{3})(\d{3})(\d{3})(\d{3})(\d{3})"][!SetVariable Subst2 "\1 \2 \3 \4 \5 \6"][!UpdateMeasure "MeasureLikesGrouped"][!UpdateMeter MeterValueFacebook][!ShowMeter MeterValueFacebook][!Redraw]
Disabled=1
[MeasureLikesGrouped]
Measure=String
String=[MeasureLikes]
RegExpSubstitute=1
Substitute="#Subst#":"#Subst2#"
DynamicVariables=1
[MeterValueFacebook]
Meter=String
MeasureName=MeasureLikesGrouped
X=10
Y=10
W=190
H=100
FontColor=220,220,220
FontSize=15
FontFace=Calibri
StringStyle=BOLD
LeftMouseUpAction=["https://www.facebook.com/BFMTV/likes"]
Text=%1 likes
AntiAlias=1
Hidden=1
This code will work for any number up to 999,999,999,999,999,999, but adding further IfConditions / IfTrueActions to the [MeasureLikes] measure, this limit can be easily extended.
Again FreeRaider, I don't want to underestimate your solution. Mine is just another way to achieve the same thing.