It is currently September 29th, 2024, 1:26 pm

IP banned from using the Rainmeter Webparser Plugin

General topics related to Rainmeter.
initro
Posts: 8
Joined: June 8th, 2014, 7:42 pm

IP banned from using the Rainmeter Webparser Plugin

Post by initro »

So I felt a little bit of defeat as I worked on this skin for nearly two weeks now,

http://imgur.com/zJsUzIH
http://imgur.com/TSDCiQQ
http://imgur.com/VAFP2Ty

This was based on the status of Steam's server database. The owner of the site, has every right to deny my request of my actions. I am not angry at him for why he has blocked my IP or even the Webparser Plugin, just disappointed that he would be willing to work with me on such of the matter.

Before I started the project, I message him (on reddit) and even emailed him about my forthcoming's on his website. His website is based on a database that he runs that pulls information from Steam's database.

http://steamstat.us/ <== The website
http://xpaw.me/ <== His contact page

Today I finally received an email regarding the manner of the Rainmeter Webparser Plugin, and I was accessing his site to much. He provided a log, with my IP listed and yes, I TOTALLY agree with him that it was requesting too much. I had the Update set the norm 1000, and the UpdateRate=60, to grab data from the site as minimum/maximum as possible.

Not really understanding the severity of this, that every single "Measure" that has an UpdateRate, does not mean that they will simultaneously Update in synchronization. Thus, leaving me with only 1 timestamp on his log. This is what I thought to believe. But further looking into the log vs. the measures, they must pull at random. So, if I have ~40 measures (that's to pull all the stats from the site, and right now 40 is a guess as I am not too happy to look at the code) that fired off at random seconds of the minute, then yes I AM accessing the site too much.

Now I am new to this, or maybe I am right, or I totally "effed" up this project, I don't know. I've just spent way to many hours to not care about how this situation went. This is my first skin, I have only altered skins in the past. So learning Rainmeter was challenge/goal that I set myself out to do. And to this day, I still promote Rainmeter.

I am going to attach to code as-is right now, maybe someone can help me work a solution or even help me discuss with the developer of the site. I don't know legal terms and I do believe he has in every legal right to deny my request's to the site.

One solution that I thought of is to not have an update, but only when you manual updated with a refresh.

Either way here is a pastebin link as the code is 3000 lines long, http://pastebin.com/vyBwisRf

TL;DR : Need help with Webparser plugin, probably a lost project due to much activity. Sad day for me as I worked on this for too many hours to just get flushed.
User avatar
killall-q
Posts: 307
Joined: August 14th, 2009, 8:04 am

Re: IP banned from using the Rainmeter Webparser Plugin

Post by killall-q »

This is a very simple fix.


1. There are 132 matches for "URL=#URL1#". That means you are accessing the website 132 times every update. You should only have 1 parent WebParser downloading data each update. That parent should have a massive regex that captures all the data you need into string indexes.

Code: Select all

[MeasureServers]
Measure=Plugin
Plugin=WebParser
URL=#URL1#
RegExp=#Servers#
UpdateRate=60
Every other WebParser should be a child reading string indexes from that parent.

Code: Select all

[MeasureServerEUStatus]
Measure=Plugin
Plugin=WebParser
URL=[MeasureServers]
StringIndex=2
There is a limit of 99 string indexes per regex. If you have more data than that, split your regex into chunks with StringIndex2, while maintaining only a single WebParser that actually access the internet.


2. You could just as well set Update=60000 in [Rainmeter] and UpdateRate=1 since you aren't animating anything, and are already using [!UpdateMeter ...][!Redraw] properly.


3. You could drastically shorten your code with meter styles.


4. !Execute is depreciated and no longer necessary to fire bangs.


Most novice mistakes are harmless. But this is the one misunderstanding that can unwittingly turn Rainmeter into a DDOS weapon, as seen previously in the AccuWeather debacle. Things may appear to be working, but like all programming, you have to step through and understand the workings of your skin instead of going with whatever looks OK on the surface, and understand the language instead of making assumptions, in order to avoid these kinds of mistakes. Thank heavens you hadn't distributed this skin yet.
initro
Posts: 8
Joined: June 8th, 2014, 7:42 pm

Re: IP banned from using the Rainmeter Webparser Plugin

Post by initro »

killall-q wrote:This is a very simple fix.
Thank you for taking the time to explain this to me, I took a break from it as it frustrated me to the abyss. Now, with this, I will hopefully have a good resolution and soon share the results with you guys.

BTW. It must have been an ISP temp ban, I can access the site again.
MikeG621
Posts: 89
Joined: March 18th, 2013, 1:59 pm

Re: IP banned from using the Rainmeter Webparser Plugin

Post by MikeG621 »

While you are developing it and to prevent accidental hammering of the server, I would suggest downloading a snapshot of the site you're pulling from (be it the .html of a page or the .xml of an RSS, whatever) and use that to test your Regex's instead of constant refreshes. Also, if you add a

Code: Select all

FinishAction=[!Log WebParser updated]
to any object that directly accesses the site (which in your cases is anything that calls #URL1#), you'll get an idea of how often you're really hitting it.