It is currently May 8th, 2024, 2:52 pm

PluginWebView - Make skin using web technology

Share and get help with Plugins and Addons
User avatar
Yincognito
Rainmeter Sage
Posts: 7209
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: PluginWebView - Make skin using web technology

Post by Yincognito »

Kotofanchik wrote: March 31st, 2024, 6:13 pm I couldn’t downgrade webwiev either, I couldn’t find Microsoft Edge WebView2 Runtime to the 100.0.1185.29 at all, I couldn’t install a slightly newer one, it says the computer doesn’t meet the minimum requirements. I deleted both edge and WebView2 with the batch file I found. I had to return the latest versions, they were installed, and webwiev2 was only able to install using the offline installer. web installer reported an error
Yep, I know, this isn't such an easy process, like I said. Let me try and see if the 109 versions are still working properly with the plugin. Hopefully the uninstalling / installing process will go easier this time.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
Kotofanchik
Posts: 99
Joined: March 15th, 2024, 7:30 pm

Re: PluginWebView - Make skin using web technology

Post by Kotofanchik »

Am I doing something wrong again?

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
OnRefreshAction=[!Delay 5000][!UpdateMeasure Page]
---Measures---

[Page]
Measure=Plugin
Plugin=WebView
X=0
Y=0
W=5
H=5
URL=file:///#@#Page.html
UpdateDivider=-1

[Data]
Measure=String
String=
UpdateDivider=-1
RegExpSubstitute=1
Substitute='(?siU)(?:^.*lang=(.*)>.*$|^.*$)':"\1",'\\(?=")':""," ^\\\d+$":""

---Meters---

[Background]
Meter=Shape
Shape=Rectangle 0,0,600,350 | Fill Color 0,0,0,128 | StrokeWidth 0 | Stroke Color 0,0,0,0

[PageData]
Meter=String
X=(600/2)
Y=20
W=600
H=650
FontFace=Consolas
FontSize=12
FontColor=255,255,255,255
FontEffectColor=0,0,0,255
StringEffect=Shadow
StringAlign=CenterCenter
AntiAlias=1
ClipString=2
MeasureName=Data
Text=Language: %1


[mes]
Measure=Plugin
Plugin=WebView
URL=https://www.youtube.com/watch?v=eE9tV1WGTgE
X=20
Y=50



Right?
I added another measure for control and she responds without a delay of 5 seconds. En also does not arise on its own.
User avatar
Yincognito
Rainmeter Sage
Posts: 7209
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: PluginWebView - Make skin using web technology

Post by Yincognito »

Kotofanchik wrote: March 31st, 2024, 7:08 pm I think I'm doing something and it's not right

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
OnRefreshAction=[!Delay 5000][!UpdateMeasure Page]
---Measures---

[Page]
Measure=Plugin
Plugin=WebView
X=0
Y=0
W=5
H=5
URL=file:///#@#Page.html
UpdateDivider=-1

[Data]
Measure=String
String=
UpdateDivider=-1
RegExpSubstitute=1
Substitute='(?siU)(?:^.*lang=(.*)>.*$|^.*$)':"\1",'\\(?=")':""," ^\\\d+$":""

---Meters---

[Background]
Meter=Shape
Shape=Rectangle 0,0,600,350 | Fill Color 0,0,0,128 | StrokeWidth 0 | Stroke Color 0,0,0,0

[PageData]
Meter=String
X=(600/2)
Y=20
W=600
H=650
FontFace=Consolas
FontSize=12
FontColor=255,255,255,255
FontEffectColor=0,0,0,255
StringEffect=Shadow
StringAlign=CenterCenter
AntiAlias=1
ClipString=2
MeasureName=Data
Text=Language: %1


[mes]
Measure=Plugin
Plugin=WebView
URL=https://www.youtube.com/watch?v=eE9tV1WGTgE
X=20
Y=50



Right?
I added another measure for control and she responds without a delay of 5 seconds. En also does not arise on its own.
Your code is correct (albeit the other WebView measure is unnecessary at this point). It's not your fault, it's a compatibility problem between the plugin (WebView.dll) and its dependencies (MS Edge and WebView Runtime). The ways to solve it are either downgrading the dependencies to an older version, or waiting for the plugin developer to update his plugin to a newer version.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
Kotofanchik
Posts: 99
Joined: March 15th, 2024, 7:30 pm

Re: PluginWebView - Make skin using web technology

Post by Kotofanchik »

I checked it for several hours, if it weren’t for the problem of having to manually update the page in webwiev every time, it apparently works. Sometimes there is a long delay after clicking refresh, up to 10 seconds, sometimes right away, but the sites always respond. By the way, there is an inscription about updating - Ctrl R and it does not work.
My problematic site with clodflare has a problem with updating the page, even in a regular browser it asks “Confirm resending the form” and even in a regular browser it will most likely give a 403 error. But if in a regular browser you just copy the address, and then paste and go over, then it will open. But with webwiev I can’t do that now. and apparently I get the 403 stub text from it
User avatar
Yincognito
Rainmeter Sage
Posts: 7209
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: PluginWebView - Make skin using web technology

Post by Yincognito »

Kotofanchik wrote: April 1st, 2024, 8:54 am I checked it for several hours, if it weren’t for the problem of having to manually update the page in webwiev every time, it apparently works. Sometimes there is a long delay after clicking refresh, up to 10 seconds, sometimes right away, but the sites always respond. By the way, there is an inscription about updating - Ctrl R and it does not work.
My problematic site with clodflare has a problem with updating the page, even in a regular browser it asks “Confirm resending the form” and even in a regular browser it will most likely give a 403 error. But if in a regular browser you just copy the address, and then paste and go over, then it will open. But with webwiev I can’t do that now. and apparently I get the 403 stub text from it
Yep, I tested the 109 versions of Edge and WebView Runtime and they work, just like the 100 versions that I use, but a few "hacks" are needed to install the WebView Runtime from the MS catalog link earlier. I'll edit my previous post with proper instructions today. ;-)

As for your problematic site, I don't know if it will work, but I was thinking of bypassing Cloudflare / captcha / resubmitting the form with another WebView measure, then getting the data via the existing WebView measure. This will only work if the (initial) bypassing from one measure reflects on the other existing one. Sort of like having 2 tabs in the browser: one is used to bypass cloudflare a single time per session, the other hopefully opening the address directly once the 1st tab "opened the door" so to speak - if you get the idea. I have no clue if this will work, either in the browser or in the WebView measures, since tabs and measures are generally different "instances".
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
Kotofanchik
Posts: 99
Joined: March 15th, 2024, 7:30 pm

Re: PluginWebView - Make skin using web technology

Post by Kotofanchik »

Okay I will wait. The problematic site even sometimes displays information in the test skin today when you click update. But a regular skin cannot receive data in this case.
User avatar
Yincognito
Rainmeter Sage
Posts: 7209
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: PluginWebView - Make skin using web technology

Post by Yincognito »

Yincognito wrote: April 1st, 2024, 12:56 pm Yep, I tested the 109 versions of Edge and WebView Runtime and they work, just like the 100 versions that I use, but a few "hacks" are needed to install the WebView Runtime from the MS catalog link earlier. I'll edit my previous post with proper instructions today. ;-)
Kotofanchik wrote: April 1st, 2024, 1:07 pm Okay I will wait.
Alright, got some time and edited the post where I mentioned the solutions to the Rainmeter API and probably the page reload issue(s). Check it out here. If you succeed, then you can look for ways to get around the problematic Clouflare site knowing that everything else works as expected in the WebView plugin / measure.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
Kotofanchik
Posts: 99
Joined: March 15th, 2024, 7:30 pm

Re: PluginWebView - Make skin using web technology

Post by Kotofanchik »

It was not possible to remove Edge according to the instructions. When I tried to install it, it said that it was already installed. But I previously found the Edge_Removal.bat file and it helped. I had previously tried to remove it and was unable to install webwiev using the installer. Unknown error. But the instructions helped to install by unpacking the exe as an archive.
Now everything works correctly.
One question. how to get complete information from
[Data]
Measure=String

For further processing in eg regexp? Yesterday I couldn’t convey anything further.
Or how to get a lot of string in regexpsubstitute?
Maybe I should still save the full snapshot of the page to a file and process it? I tried to understand the lua script output file but I couldn't either.
User avatar
Yincognito
Rainmeter Sage
Posts: 7209
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: PluginWebView - Make skin using web technology

Post by Yincognito »

Kotofanchik wrote: April 1st, 2024, 7:31 pm It was not possible to remove Edge according to the instructions. When I tried to install it, it said that it was already installed. But I previously found the Edge_Removal.bat file and it helped. I had previously tried to remove it and was unable to install webwiev using the installer. Unknown error. But the instructions helped to install by unpacking the exe as an archive.
Now everything works correctly.
One question. how to get complete information from
[Data]
Measure=String

For further processing in eg regexp? Yesterday I couldn’t convey anything further.
Or how to get a lot of string in regexpsubstitute?
Maybe I should still save the full snapshot of the page to a file and process it? I tried to understand the lua script output file but I couldn't either.
Well, you didn't need the Edge_Removal.bat to uninstall it, you just needed to skip step 2) and proceed with the steps 3), 5) and 6) from that guide - I'm pretty sure your batch file does more or less the same. Anyway, it's good that you managed to make it work correctly afterwards.

As for the Data measure: String measures don't have a RegExp option, and it's the Substitute option that performs the substitution, the RegExpSubstitute option only enables using regex patterns in the Substitute option. To have the entire string in Data, just comment out or remove the RegExpSubstitute and Substitute options. If you don't want the entire String in Data, just a more substantial part of it, you'll need to adjust the regex patterns or the substitution parts in the Substitute option accordingly. Since you didn't specify what exactly you meant by "a lot of string", I can't tell what such patterns or parts should be.

Lua scripting has nothing to do with this. Sure, you can parse a text file in Lua too, but you have to retrieve and save that file first (preferably, in an automatic manner) and that's something Lua cannot do, but WebParser or WebView can - with some limits, as you could already see. To test whether a Cloudflare protected site can be queried for data by the above WebView technique, an example of such site would be needed (it doesn't even have to be the one you want to grab the weather info from, any Cloudflare protected address would do).
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
Kotofanchik
Posts: 99
Joined: March 15th, 2024, 7:30 pm

Re: PluginWebView - Make skin using web technology

Post by Kotofanchik »

Yincognito wrote: April 1st, 2024, 8:20 pm To have the entire string in Data, just comment out or remove the RegExpSubstitute and Substitute options.
I can't do it. I don't get anything. I see the information in the skin and see that it is there. But she doesn't go any further. I can't pass this string to another measure. Do not understand why. Which quotation marks and brackets should be used. I again go through random options, try to do what I find in other skins and nothing.
Yes, I commented on regexpsubstitute and substitute and tried to do for example

Code: Select all

[Data1]
Measure =Plugin
Plugin=WebParser
Url=[Data]
RegExp=.....
But nothing works out.