It is currently April 26th, 2024, 7:44 am

Unicode characters and Substitute

Get help with creating, editing & fixing problems with skins
Tossox
Posts: 3
Joined: November 4th, 2017, 11:53 pm

Unicode characters and Substitute

Post by Tossox »

I have problem with put word in square brackets. My skin output \u2588\u25ac\u25ba Voice Channels instead █▬►Voice Channels. I know the problem is in Unicode formatting. I want to work around it using Substitute with replace \u to \x and put characters into square brackets to work but I do not know how i put this into square brackets.

Code: Select all

	[MeasureVoicePosition0]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 0, "id": ".*", "name": "(.*)"}
		RegExpSubstitute=1
		Substitute="\u":"\x"
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		Group=ServerID
		FinishAction=[!ShowMeter MeterVoicePositionPic0][!UpdateMeasure MeasureChannelIDofUser1]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic0]
User avatar
jsmorley
Developer
Posts: 22630
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Unicode characters and Substitute

Post by jsmorley »

Tossox wrote:I have problem with put word in square brackets. My skin output \u2588\u25ac\u25ba Voice Channels instead █▬►Voice Channels. I know the problem is in Unicode formatting. I want to work around it using Substitute with replace \u to \x and put characters into square brackets to work but I do not know how i put this into square brackets.

Code: Select all

	[MeasureVoicePosition0]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 0, "id": ".*", "name": "(.*)"}
		RegExpSubstitute=1
		Substitute="\u":"\x"
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		Group=ServerID
		FinishAction=[!ShowMeter MeterVoicePositionPic0][!UpdateMeasure MeasureChannelIDofUser1]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic0]

Code: Select all

[MeasureString]
Measure=String
String=\u2588\u25ac\u25ba Voice Channels
RegExpSubstitute=1
Substitute="\\u([\w]{4})":"[\x\1]"

[MeterOne]
Meter=String
FontSize=20
FontWeight=400
FontColor=255,255,255,255
SolidColor=0,0,0,1
AntiAlias=1
DynamicVariables=1
Text=[&MeasureString]
1.jpg
Basically, you want to turn:
\u2588\u25ac\u25ba Voice Channels

into:
[\x2588][\x25ac][\x25ba] Voice Channels

And then those Character Reference Variables will be displayed as the Unicode characters if you use the string value of the measure as a [&SectionVariable].

Do remember that on the "search" side of the "search":"replace" components of a regular expression Substitute, you need to escape any reserved characters in regular expression, in this case the \ in the string you are searching in must be escaped as \\ to use it as a literal.

Also note that this entire thing requires Rainmeter 4.1, the latest is the RC2 at http://www.rainmeter.net.
You do not have the required permissions to view the files attached to this post.
Tossox
Posts: 3
Joined: November 4th, 2017, 11:53 pm

Re: Unicode characters and Substitute

Post by Tossox »

Thank you for reply. This work but not as i want. Yes, i want unicode characters. I want to take server name from json and display in widget with special characters. I have 4.1 version.
Image

Code: Select all

[MeasureDiscordVoiceComs]
	Measure=Plugin
	Plugin=WebParser.dll
	URL=https://discordapp.com/api/servers/221725648350085122/widget.json
	RegExp=(?siU)"channels": \[(.*)\], 
	StringIndex=1
	UpdateRate=30
	Group=ServerID
	DynamicVariables=1
	
	[MeasureVoicePosition0]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 0, "id": ".*", "name": "(.*)"}
		RegExpSubstitute=1
		Substitute="\\u([\w]{4})":"[\x\1]"
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		Group=ServerID
		FinishAction=[!ShowMeter MeterVoicePositionPic0][!UpdateMeasure MeasureChannelIDofUser1]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic0]
		
	[MeasureVoicePosition1]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 1, "id": ".*", "name": "(.*)"}
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic1]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic1]
		
	[MeasureVoicePosition2]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 2, "id": ".*", "name": "(.*)"}
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic2]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic2]
		
	[MeasureVoicePosition3]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 3, "id": ".*", "name": "(.*)"}
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic3]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic3]
		
	[MeasureVoicePosition4]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 4, "id": ".*", "name": "(.*)"}
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic4]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic4]
		
	[MeasureVoicePosition5]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 5, "id": ".*", "name": "(.*)"}
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic5]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic5]
		
	[MeasureVoicePosition6]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 6, "id": ".*", "name": "(.*)"}
		StringIndex=1
		StringIndex2=1
		UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic6]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic6]

;Meters for Voice Channel 0
		
	[MeterVoicePosition0]
		Meter=String
		MeasureName=MeasureVoicePosition0
		x=(22.5*#Scale#)
		y=((131+#Scroll#)*#Scale#)
		w=(125*#Scale#)
		Clipstring=0
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		StringStyle=Normal
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=WhitneyHTF-BookSC
		Group=ServerID | MeterVC
		AntiAlias=1
		DynamicVariables=1
		
	[MeterVoicePositionPic0]
		Meter=Image
		x=(-17.5*#Scale#)r
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
		
;Meters for Voice Channel 1
		
	[MeterVoicePosition1]
		Meter=String
		MeasureName=MeasureVoicePosition1
		x=(22.5*#Scale#)
		y=((33+([MeasureNumInVC0]*20))*#Scale#)r
		w=(125*#Scale#)
		Clipstring=1
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		StringStyle=Normal
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=ElliotSans-Regular
		DynamicVariables=1
		Group=MeterVC
		
	[MeterVoicePositionPic1]
		Meter=Image
		x=(5*#Scale#)
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
		
;Meters for Voice Channel 2
		
	[MeterVoicePosition2]
		Meter=String
		MeasureName=MeasureVoicePosition2
		x=(22.5*#Scale#)
		y=((33+([MeasureNumInVC1]*20))*#Scale#)r
		w=(125*#Scale#)
		Clipstring=1
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		StringStyle=Normal
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=ElliotSans-Regular
		DynamicVariables=1
		Group=MeterVC
	
	[MeterVoicePositionPic2]
		Meter=Image
		x=(-17.5*#Scale#)r
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
		
;Meters for Voice Channel 3
		
	[MeterVoicePosition3]
		Meter=String
		MeasureName=MeasureVoicePosition3
		x=(22.5*#Scale#)
		y=((33+([MeasureNumInVC2]*20))*#Scale#)r
		w=(125*#Scale#)
		Clipstring=1
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		StringStyle=Normal
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=ElliotSans-Regular
		DynamicVariables=1
		Group=MeterVC
		
	[MeterVoicePositionPic3]
		Meter=Image
		x=(-17.5*#Scale#)r
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
		
;Meters for Voice Channel 4

	[MeterVoicePosition4]
		Meter=String
		MeasureName=MeasureVoicePosition4
		x=(22.5*#Scale#)
		y=((33+([MeasureNumInVC3]*20))*#Scale#)r
		w=(125*#Scale#)
		Clipstring=1
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		StringStyle=Normal
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=ElliotSans-Regular
		DynamicVariables=1
		Group=MeterVC
		
	[MeterVoicePositionPic4]
		Meter=Image
		x=(-17.5*#Scale#)r
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
		
;Meters for Voice Channel 5
		
	[MeterVoicePosition5]
		Meter=String
		MeasureName=MeasureVoicePosition5
		x=(22.5*#Scale#)
		y=((33+([MeasureNumInVC4]*20))*#Scale#)r
		w=(125*#Scale#)
		Clipstring=1
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		StringStyle=Normal
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=ElliotSans-Regular
		DynamicVariables=1
		Group=MeterVC
	
	[MeterVoicePositionPic5]
		Meter=Image
		x=(-17.5*#Scale#)r
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
		
;Meters for Voice Channel 6
		
	[MeterVoicePosition6]
		Meter=String
		MeasureName=MeasureVoicePosition6
		x=(22.5*#Scale#)
		y=((33+([MeasureNumInVC5]*20))*#Scale#)r
		w=(125*#Scale#)
		Clipstring=1
		StringAlign=LeftCenter
		Text=%1
		StringCase=None
		StringStyle=Bold
		FontSize=(12*#Scale#)
		FontColor=#fff
		FontFace=ElliotSans-Regular
		DynamicVariables=1
		Group=MeterVC
	
	[MeterVoicePositionPic6]
		Meter=Image
		x=(-17.5*#Scale#)r
		y=((-3)*#Scale#)r
		h=(12*#Scale#)
		ImageName=#@#images\Voice.png
		hidden=1
	
;Channel ids

	[MeasureVoiceID0]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 0, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic0]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic0]
		FinishAction=[!UpdateMeasure MeasureChannelIDofUser1]
		
	[MeasureVoiceID1]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 1, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic1]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic1]
		
	[MeasureVoiceID2]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 2, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic2]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic2]
		
	[MeasureVoiceID3]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 3, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic3]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic3]
		
	[MeasureVoiceID4]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 4, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic4]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic4]
		
	[MeasureVoiceID5]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 5, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic5]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic5]
		
	[MeasureVoiceID6]
		Measure=Plugin
		Plugin=WebParser.dll
		URL=[MeasureDiscordVoiceComs]
		RegExp=(?siU){"position": 6, "id": "(.*)", "name": ".*"}
		StringIndex=1
		StringIndex2=1
	UpdateRate=30
		FinishAction=[!ShowMeter MeterVoicePositionPic6]
		OnRegExpErrorAction=[!HideMeter MeterVoicePositionPic6]
User avatar
jsmorley
Developer
Posts: 22630
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Unicode characters and Substitute

Post by jsmorley »

I'm not following what you are looking for.