It is currently May 1st, 2024, 3:44 am

Need some help getting XML to Parse and Display properly

Get help with creating, editing & fixing problems with skins
DHermit2
Posts: 6
Joined: August 31st, 2011, 4:20 am

Need some help getting XML to Parse and Display properly

Post by DHermit2 »

I'm completely new to Rainmeter, loving a lot of things I have found so far. I created a php script (ran by a cron job on a remote server) that creates an XML file for me every few minutes displaying who is active on a Teamspeak server (version 2) for a World of Warcraft Guild. I am trying to make it so I can have a display of who is online which the XML works, I just can't seem to get it inside Rainmeter. the current XML I am working with is as follows:

Code: Select all

 
<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <server name="The Killing Hand TS Server">
- <channel name="The Killing Hand (RSD)">
  <player name="Rofellos (R SA)">Rofellos (R SA)</player> 
  <player name="Xervah (R SA)">Xervah (R SA)</player> 
  <player name="Superman (U)">Superman (U)</player> 
  <subchannel name="Group 1" /> 
  <subchannel name="Group 2" /> 
  <subchannel name="Raid 1 - 10 Man" /> 
  <subchannel name="Raid 2 - 10 Man" /> 
  <subchannel name="25 Man Raid" /> 
  </channel>
  <channel name="Brazil Nuts (R)" /> 
  </server>
I can make changes to how the XML is structured if it will help in getting this working, as of right now that was a quick off the top of my head way of doing it. I am disabling the cron job and leaving the xml at its current state at http://www.killinghand.net/ts-test/rainmeter-app/server.xml. Any help would be very much appreciated. Please do keep in mind the number of players expands and contracts between 0 and 25 but the channels stay the same for the most part not sure if this matters.
User avatar
KreAch3R
Posts: 608
Joined: February 7th, 2011, 7:27 pm
Location: Thessaloniki, GR

Re: Need some help getting XML to Parse and Display properly

Post by KreAch3R »

It seems pretty easy to do. Can you post the skin that you have troubles with, and what would you like to be displayed (channel names, player names, etc)? So that we can help you :).
Inactive, due to life changes. Send me a PM for any question.

Desktop DeviartArt
Image
DHermit2
Posts: 6
Joined: August 31st, 2011, 4:20 am

Re: Need some help getting XML to Parse and Display properly

Post by DHermit2 »

As I said the Player Names will keep changing but the channels and how it should display are basically as it shows here http://www.killinghand.net/ts-test/demo.php which is what I used for a base to get the xml. I am using the Illusto skin currently, I just can't seem to wrap my head about making the meters proprerly.

Along the lines of
Server Name
Channel
Players in that channel
next channel
players in that channel
next channel and so on
User avatar
KreAch3R
Posts: 608
Joined: February 7th, 2011, 7:27 pm
Location: Thessaloniki, GR

Re: Need some help getting XML to Parse and Display properly

Post by KreAch3R »

I thought you already knew you had to use Webparser and that the skin you developed didn't work, sorry about that. Read the tutorial Webparser Primer & use the manual for any more help. I think you should get the hold pretty easy, given that the .xml you can produce makes things simpler.
Inactive, due to life changes. Send me a PM for any question.

Desktop DeviartArt
Image
DHermit2
Posts: 6
Joined: August 31st, 2011, 4:20 am

Re: Need some help getting XML to Parse and Display properly

Post by DHermit2 »

Okay I've been starting to do a bit of work, looking at how things interact and I have gotten somewhere but I have hit a wall I can't seem to figure out so perhaps I can get a little more help than rtfm.

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1

[Variables]
fontName=Trebuchet MS
textSize=8
colorBar=235,170,0,255
colorText=255,255,255,205
myServer=.*<server name="(.*)">.*
myChannel=.*<channel name="(.*)">.*
mySubchannel=.*<subchannel name="(.*)">.*
myPlayer=.*<player name="(.*)">.*

; ----------------------------------
; MEASURES return some kind of value
; ----------------------------------

[TSServer]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=http://www.killinghand.net/ts-test/rainmeter-app/server.xml
RegExp="(?siU).*#myServer##myChannel##myPlayer##myPlayer##myPlayer##myPlayer##myPlayer##myChannel##myChannel##myChannel##myChannel##myChannel##myChannel#"
DynamicVariables=1
UpdateRate=30
Debug=1

[TSServerName]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=1

[TSChannel1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=2

[TSChannel1Player1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=3

[TSChannel1Player2]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=4

[TSChannel1Player3]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=5

[TSChannel1Player4]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=6

[TSChannel1Player5]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=7

; ----------------------------------
; STYLES are used to "centralize" options
; ----------------------------------

[StyleServers]
StringAlign=CENTER
StringCase=UPPER
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=10
AntiAlias=1

[StyleChannels]
StringAlign=Left
StringCase=UPPER
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=10
AntiAlias=1

[StylePlayers]
StringAlign=LEFT
; Meters using styleLeftText will be left-aligned.
StringCase=NONE
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,20
FontColor=#colorText#
FontFace=#fontName#
FontSize=#textSize#
AntiAlias=1

; ----------------------------------
; METERS display images, text, bars, etc.
; ----------------------------------

[meterBackgroundBar]
Meter=Bitmap
MeasureName=TSServer
SolidColor=0,0,0,128
X=0
Y=0
H=35
W=243

[meterBackground]
Meter=Bitmap
MeasureName=TSServer
SolidColor=0,0,0,128
X=0
Y=0
H=300
W=243

[Servername]
Meter=String
MeterStyle=StyleServers
MeasureName=TSServerName
X=120
Y=12
H=18
AntiAlias=0
Text="%1"

[Channel1name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel1
X=10
Y=40
W=300
H=18
AntiAlias=0
Text="%1"

[Channel1Player1name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player1
X=40
Y=60
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player2name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player2
X=40
Y=80
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player3name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player3
X=40
Y=100
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player4name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player4
X=40
Y=120
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player5name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player5
X=40
Y=140
W=10
H=18
AntiAlias=0
Text="%1"
This is my ini file I am working with, its not an exact match to the theme I use but close enough for the moment. The issue I face is I need to be able to get the number of players to be dynamicly assigned, and if there are no players in a given channel to skip over the players and move to the next channel.

Code: Select all

  <?xml version="1.0" encoding="ISO-8859-1" ?> 
- <server name="The Killing Hand TS Server">
- <channel name="The Killing Hand (RSD)">
  <player name="Rofellos (R SA)">Rofellos (R SA)</player> 
  <player name="Xervah (R SA)">Xervah (R SA)</player> 
  <player name="chan (U)">chan (U)</player> 
  <player name="Superman (U)">Superman (U)</player> 
  <channel name="Group 1" /> 
  <channel name="Group 2" /> 
  <channel name="Raid 1 - 10 Man" /> 
  <channel name="Raid 2 - 10 Man" /> 
  <channel name="25 Man Raid" /> 
  </channel>
  <channel name="Brazil Nuts (R)" /> 
  </server>
This is the current XML I am working with. there are 4 Players listing but if I try and add a 5th player to that channel and the variable is not there I get an error. WebParser: [TSServer] Matching error! (-8)

How can I correct for this? People are going to come and go from channels all the time so I can't have this being a static entry.
User avatar
KreAch3R
Posts: 608
Joined: February 7th, 2011, 7:27 pm
Location: Thessaloniki, GR

Re: Need some help getting XML to Parse and Display properly

Post by KreAch3R »

Sorry for the rtfm, I hope there are no hard feelings. Let me try to help a bit.

Firstly, I should point out that the .xml has a problem here:
<channel name="Group 1" />
This (and the others below it) should be ">, to match the first channel name.

I have managed to solve some of your problems, but some others persist. Take the .xml file I am using:

Code: Select all

  <?xml version="1.0" encoding="ISO-8859-1" ?> 
- <server name="The Killing Hand TS Server">
- <channel name="The Killing Hand (RSD)">
  <player name="Rofellos (R SA)">Rofellos (R SA)</player> 
  <player name="Xervah (R SA)">Xervah (R SA)</player> 
  <player name="chan (U)">chan (U)</player> 
  <player name="Superman (U)">Superman (U)</player> 
  <player name="DummyFriend1">Superman (U)</player> 
  <player name="DummyFriend2">Superman (U)</player> 
  <player name="DummyFriend3">Superman (U)</player> 
  <player name="DummyFriend4">Superman (U)</player> 
  <player name="DummyFriend5">Superman (U)</player> 
  <player name="DummyFriend6">Superman (U)</player> 
  <player name="DummyFriend7">Superman (U)</player> 
  <channel name="Group 1"> 
  <channel name="Group 2"> 
  <channel name="Raid 1 - 10 Man"> 
  <channel name="Raid 2 - 10 Man"> 
  <channel name="25 Man Raid"> 
  </channel>
  <channel name="Brazil Nuts (R)"> 
  </server>
and this is the changed code:

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1

[Variables]
fontName=Trebuchet MS
textSize=8
colorBar=235,170,0,255
colorText=255,255,255,205
myServer=<server name="(.*)">
myChannel=<channel name="(.*)">
mySubchannel=.*<subchannel name="(.*)">.*
myPlayer=(?(?=.*<player name=").*<player name="(.*)">)
myPlayer25=#myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer##myplayer#


; ----------------------------------
; MEASURES return some kind of value
; ----------------------------------

[TSServer]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=file://#CURRENTPATH#server.xml
RegExp="(?siU)#myserver#.*#myChannel#.*#myplayer25#.*#mychannel#"
DynamicVariables=1
UpdateRate=30
Debug=1

[TSServerName]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=1

[TSChannel1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=2

[TSChannel1Player1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=3

[TSChannel1Player2]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=4

[TSChannel1Player3]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=5

[TSChannel1Player4]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=6

[TSChannel1Player5]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=7

[TSChannel1Player6]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=8

[TSChannel1Player7]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=9

[TSChannel2]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=28

; ----------------------------------
; STYLES are used to "centralize" options
; ----------------------------------

[StyleServers]
StringAlign=CENTER
StringCase=UPPER
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=10
AntiAlias=1

[StyleChannels]
StringAlign=Left
StringCase=UPPER
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=10
AntiAlias=1

[StylePlayers]
StringAlign=LEFT
; Meters using styleLeftText will be left-aligned.
StringCase=NONE
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,20
FontColor=#colorText#
FontFace=#fontName#
FontSize=#textSize#
AntiAlias=1

; ----------------------------------
; METERS display images, text, bars, etc.
; ----------------------------------

[meterBackgroundBar]
Meter=Bitmap
MeasureName=TSServer
SolidColor=0,0,0,128
X=0
Y=0
H=35
W=243

[meterBackground]
Meter=Bitmap
MeasureName=TSServer
SolidColor=0,0,0,128
X=0
Y=0
H=300
W=243

[Servername]
Meter=String
MeterStyle=StyleServers
MeasureName=TSServerName
X=120
Y=12
H=18
AntiAlias=0
Text="%1"

[Channel1name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel1
X=10
Y=40
W=300
H=18
AntiAlias=0
Text="%1"

[Channel1Player1name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player1
X=40
Y=60
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player2name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player2
X=40
Y=80
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player3name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player3
X=40
Y=100
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player4name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player4
X=40
Y=120
W=130
H=18
AntiAlias=0
Text="%1"

[Channel1Player5name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player5
X=40
Y=140
W=10
H=18
AntiAlias=0
Text="%1"

[Channel1Player6name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player6
X=r
Y=20r
W=10
H=18
AntiAlias=0
Text="%1"

[Channel1Player7name]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Player7
X=r
Y=20r
W=10
H=18
AntiAlias=0
Text="%1"

[Channel2name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel2
X=10
Y=20r
W=300
H=18
AntiAlias=0
Text="%1"
I used a "look ahead" expression, as others have suggested, and managed to make the parser not break, regardless of how many (if any at all) players are at the first channel. In the code above, I have changed the webparser's URL to the server.xml I have posted above. Try removing <player name> entries, to see if the skin works.

Now, the problem that occurs with so many stringIndexes (if we are talking about 25 players in each channel) is that Webparser doesn't accect so many indexes. I don't know if there is any other way the matching of 25 expressions could be done, so that it only "takes" stringIndexes when it needs them. But if the above is the only way to do it, then I suggest having different skins for each channel. Then, everything should work out.

I hope Regex Guru JSMorley reads this, to give a hand if my expressions are way messier than they could. :P
Inactive, due to life changes. Send me a PM for any question.

Desktop DeviartArt
Image
DHermit2
Posts: 6
Joined: August 31st, 2011, 4:20 am

Re: Need some help getting XML to Parse and Display properly

Post by DHermit2 »

There are no hard feelings at all for the rtfm. The issue was I had but I am not used to the Rainmeter coding style so to speak. Its a bit different and takes a little getting used to so please don't give that a second thought, I was just getting frustrated. Anyway, I just noticed what you were saying about the XML file which is more a problem of how IE displays XML and less how the file was written. I had been doing a copy/paste from an IE window, but working with Rainmeter in how it was actually written in the XML.

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1" ?>
<server name="The Killing Hand TS Server">
	<channel name="The Killing Hand (RSD)">
		<channel name="Group 1">
		</channel>
		<channel name="Group 2">
		</channel>
		<channel name="Raid 1 - 10 Man">
		</channel>
		<channel name="Raid 2 - 10 Man">
		</channel>
		<channel name="25 Man Raid">
		</channel>
	</channel>
	<channel name="Brazil Nuts (R)">
	</channel>
</server>
That should be a little more clear on the XML side of things, now for the players issue, the number of players is 25 total but they can be anywhere in any channel, so I can have 0 to 25 players at a time, so between 8 and 33 variables total I believe 1 server name, 7 channels, and up to 25 players total within the 7 channels. I hope this makes more sense, and I thank you for your help that change to how the player is checked is making life a little better.
User avatar
KreAch3R
Posts: 608
Joined: February 7th, 2011, 7:27 pm
Location: Thessaloniki, GR

Re: Need some help getting XML to Parse and Display properly

Post by KreAch3R »

That should clear things up about XML, indeed. As far as the players are concerned, I must admit I originally thought that there can be up to 25 players to each channel at the same time. But this misunderstanding doesn't change a lot the way we have to treat this skin. You see, the way I suggested for parsing players, requires that there are 25 stringIndexes waiting to parse player names in each channel, regardless of how many players are connected (that means, we know that the players can be 25 in total, but the regular expression doesn't know it; it's waiting for up to 25 players to connect to each channel; and I don't know if it can understand the difference). So, if we plan to use this method, you have to "break" the skin in "channel" skins, so that webparser searches only for 25 players & accepts the volume of the stringindexes. Several skins doesn't mean several skin backgrounds or anything like that. You can make them transparent. The problem is that they cannot be one after the other, because the height of each one will be dynamic (depending on the players connected).

The more I write, the more I think this is not the way to go. Ideally, you would want a regular expression that would search for 0-25 players in each channel, without pre-occupying stringIndexes (that means, it should only give a stringIndex when there's a value). But that would break rainmeter's measures, because of the dynamic stringIndexes (one measure that "has" the name of the channel one moment would "have" the name of a player another moment). I'm pretty sure that can't work in rainmeter.

Maybe someone else has something better to suggest. I am getting more and more confused as I write :? :p

My bottom line suggestion is:
  1. make channel skins
  2. put the one by the other in a horizontal way
  3. make sure you have a lot of screenspace (especially when all 25 are on the same channel).
Inactive, due to life changes. Send me a PM for any question.

Desktop DeviartArt
Image
DHermit2
Posts: 6
Joined: August 31st, 2011, 4:20 am

Re: Need some help getting XML to Parse and Display properly

Post by DHermit2 »

Yeah I came to the same conclusion about 2 hours ago so when I got a moment I started changing the XML a bit to deal with that. Instead of getting each individual player I am putting them in one long list with a | between each as a delimiter. Then using Substitute="|":"#CRLF#" to split the names into a list. This is simple enough and leaves me with 14 variables to deal with. The issue I am facing now is interesting as I can see having a large mess of names or large spaces between channels as an issue (and I did some code cleanup to deal with relative spacing between lines) I am left with a situation. I made the change to the XML as follows:

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1" ?>
<server name="The Killing Hand TS Server">
	<channel name="The Killing Hand (RSD)">
 		<player names="Xervah (R SA)|Superman (U)">2</player>
		<channel name="Group 1">
 		<player names="">0</player>
		</channel>
		<channel name="Group 2">
 		<player names="">0</player>
		</channel>
		<channel name="Raid 1 - 10 Man">
 		<player names="">0</player>
		</channel>
		<channel name="Raid 2 - 10 Man">
 		<player names="">0</player>
		</channel>
		<channel name="25 Man Raid">
 		<player names="">0</player>
		</channel>
	</channel>
	<channel name="Brazil Nuts (R)">
 		<player names="">0</player>
	</channel>
</server>
I am trying now to do something I am not sure will work, or if I am even trying to do it properly. I have it displaying <player names="Xervah (R SA)|Superman (U)">2</player> so I can get the total number of players in a channel, what I want to do is add something like this:

Added the following variables.

Code: Select all

LineHeight=17
myPlayerNum=(?(?=.*</player>).*">(.*)</player>)
Added the following measures

Code: Select all

[TSServer-Nums]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=http://www.killinghand.net/ts-test/rainmeter-app/server.xml
RegExp="(?siU)#myPlayerNum#"
UpdateRate=30

[TSChannel1NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=1
Changed my Meters for player names

Code: Select all

[Channel1PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Players
MeasureName2=TSChannel1NumP
X=40
Y=20r
W=10
H=(#LineHeight#*%2) -- This formula needs to be in the Y not the H for this to work, just caught it myself but the issue of variable tracking seems to remain the same.
AntiAlias=0
Text="%1"
I am unsure of a few things, but if this works it should fix a lot of issues in itself. But for some reason I can't seem to wrap my head around the way Rainmeter handles regular expressions yet, so I keep getting WebParser: [TSServer-Nums] (Index 1) <channel name="The Killing Hand (RSD)"> in my logs and as you can see that is not the variable I want.

If I can get this height issue resolved somehow the end result will turn out rather nicely
Image
DHermit2
Posts: 6
Joined: August 31st, 2011, 4:20 am

Re: Need some help getting XML to Parse and Display properly

Post by DHermit2 »

After much Trial and Error I finally got it working, thanks for all the help.

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1

[Variables]
fontName=Trebuchet MS
textSize=10
LineHeight=18
colorBar=235,170,0,255
colorText=255,255,255,205
myServer=<server name="(.*)">
myChannel=<channel name="(.*)">
mySize=<total space="(.*)">
myPlayer=(?(?=.*<player names=").*<player names="(.*)">)
myPlayerNum=(?(?=.*<players number=").*<players number="(.*)">)


; ----------------------------------
; MEASURES return some kind of value
; ----------------------------------

[TSServer-Read]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=http://www.killinghand.net/ts-test/rainmeter-app/demo.php
RegExp="(?siU)>.*"
UpdateRate=27
;this causes the xml to get updated, I figured I didn't need to have cron running all the time if Rainmeter could tag the page as it just has to load. In order for it to work it has to happen just before all the other UpdatesRates.
Debug=2

[TSServer]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=http://www.killinghand.net/ts-test/rainmeter-app/server.xml
RegExp="(?siU)#myServer#.*#myChannel#.*#myPlayer#.*#myChannel#.*#myPlayer#.*#myChannel#.*#myPlayer#.*#myChannel#.*#myPlayer#.*#myChannel#.*#myPlayer#.*#myChannel#.*#myPlayer#.*#myChannel#.*#myPlayer#.*#mySize#"
DynamicVariables=1
UpdateRate=30
Debug=2

[TSServer-Nums]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=http://www.killinghand.net/ts-test/rainmeter-app/server.xml
RegExp="(?siU)>#myPlayerNum#.*#myPlayerNum#.*#myPlayerNum#.*#myPlayerNum#.*#myPlayerNum#.*#myPlayerNum#.*#myPlayerNum#"
UpdateRate=30
Debug=2

[TSServerName]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=1

[TSChannel1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=2

[TSChannel1NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=1

[TSChannel1Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=3

[TSChannel2]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=4

[TSChannel2NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=2

[TSChannel2Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=5

[TSChannel3]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=6

[TSChannel3NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=3

[TSChannel3Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=7

[TSChannel4]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=8

[TSChannel4NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=4

[TSChannel4Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=9

[TSChannel5]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=10

[TSChannel5NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=5

[TSChannel5Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=11

[TSChannel6]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=12

[TSChannel6NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=6

[TSChannel6Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=13

[TSChannel7]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=14

[TSChannel7NumP]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer-Nums]
StringIndex=7

[TSChannel7Players]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
Substitute="|":"#CRLF#"
StringIndex=15

[SizeIt]
Measure=Plugin
Plugin=Plugins\WebParser.dll
URL=[TSServer]
StringIndex=16

; ----------------------------------
; STYLES are used to "centralize" options
; ----------------------------------

[StyleServers]
StringAlign=CENTER
StringCase=NONE
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=10
AntiAlias=1

[StyleChannels]
StringAlign=Left
StringCase=NONE
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=10
AntiAlias=1

[StylePlayers]
StringAlign=LEFT
; Meters using styleLeftText will be left-aligned.
StringCase=NONE
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,20
FontColor=#colorText#
FontFace=#fontName#
FontSize=#textSize#
AntiAlias=1

; ----------------------------------
; METERS display images, text, bars, etc.
; ----------------------------------
[meterBackground]
Meter=Image
SolidColor=0,0,0,128
DynamicVariables=1
BevelType=2
W=243
H=(18*[SizeIt]+25)

[meterBackgroundBar]
Meter=Image
SolidColor=0,0,0,128
BevelType=2
X=0
Y=0
W=243
H=35

[Servername]
Meter=String
MeterStyle=StyleServers
MeasureName=TSServerName
X=115
Y=10r
H=18
AntiAlias=0
Text="%1"

[Channel1name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel1
X=10
Y=32r
W=100
H=18
AntiAlias=0
Text="%1"

[Channel1PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel1Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel1NumP])
AntiAlias=0
Text="%1"

[Channel2name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel2
X=10
Y=(#LineHeight#*[TSChannel1NumP])r
W=100
H=18
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel2PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel2Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel2NumP])
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel3name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel3
X=10
Y=(#LineHeight#*[TSChannel2NumP])r
W=100
H=18
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel3PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel3Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel3NumP])
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel4name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel4
X=10
Y=(#LineHeight#*[TSChannel3NumP])r
W=100
H=18
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel4PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel4Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel4NumP])
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel5name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel5
X=10
Y=(#LineHeight#*[TSChannel4NumP])r
W=100
H=18
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel5PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel5Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel5NumP])
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel6name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel6
X=10
Y=(#LineHeight#*[TSChannel5NumP])r
W=100
H=18
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel6PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel6Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel6NumP])
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel7name]
Meter=String
MeterStyle=StyleChannels
MeasureName=TSChannel7
X=10
Y=(#LineHeight#*[TSChannel6NumP])r
W=100
H=18
AntiAlias=0
Text="%1"
DynamicVariables=1

[Channel7PlayerNames]
Meter=String
MeterStyle=StylePlayers
MeasureName=TSChannel7Players
X=40
Y=15r
W=10
H=(#LineHeight#*[TSChannel7NumP])
AntiAlias=0
Text="%1"
DynamicVariables=1
Image
Edit: Added a comment in the ini and fixed a timing bug I noticed after a while.
Last edited by DHermit2 on September 2nd, 2011, 3:09 pm, edited 1 time in total.