I'm moderator of a group and we have a hard limit that once reached leads to being excluded from the group - if people in question still keep entering giveaways before fixing their bad ratio.
Therefore, when people reach the limit, we have to check every running group giveaway to see if they do enter giveaways. This rarely ever happens but when it does, we have to check for as long as the user hasn't fixed their ratio.
Considering that there's maybe 200 open giveaways, sometimes more and other times less, this gets extremely time consuming since every entry page has to be opened one by one by hand to be checked for all the entries for the specific user.

To make things a lot simpler and faster, I went to look for a script to do the job a while back - but couldn't find one.
I also tried using a browser extension called Web Scraper back then that actually loads in each page completely before it starts reading data and before moving on to the next page - which is about 2 seconds for each page (due to limitations within the extension) and already way faster than doing it by hand. Although I got it somewhat to work I ran into massive issues with pagination and... well, after a day of fiddling around with it I gave up on it. I tried other similar extensions but none came close to what Web Scraper could do.

I'm not a programmer, so I can't code something like this myself. Which brought me here looking for help.

What should the script do, how should it do it?
In short, the script should open the first entries page, read the game title and all names and print that, then repeat both of that for the next giveaway below the previous one until the end of the page.
My thought was that I could load in all pages with still open giveaways, utilizing ESGST and then let the script do its magic by simply checking the entries of all these giveaways that are still displayed.
The script could either be copy-pasted into Chrome's console or be installed into Tampermonkey and then check each "entries" page of every giveaway shown to put out a very basic list (even if also only into console) with the name of each giveaway and all the people who are currently entered into it (and possibly also when they entered, though this is something that can be done easily by hand once we know in which GAs to look).
So even if very basic in it's output I could then copy the data to search if the user is listed and if so, in which giveaway it is.
And it doesn't matter if it takes its time to read out all the information to not put too much load onto the servers at once.

Now the big bummer: I cannot supply any compensation for the time and effort - I'm really sorry. But maybe you are looking for a little practice and would be interested to make it happen for all of us? I would guess that other people could be interested in such a script, too.
Again, I'm sorry but I cannot offer anything in exchange so if that's a killer argument for you, don't bother reading any further, I guess.

(A friend of mine once made a very small script that reads out all the game names and their already revealed keys from one open order page on fanatical, so you don't have to copy each by themselves but can simply copy the list from console and put it e.g. into Excel. Since that's only two blocks of very few lines (maybe 3 in total) that are executed one after another I though that this task I'm looking for help right now would be similarly as simple. Maybe I'm wrong - no idea, I'm just guessing.)

I was told that this should be done in Javascript? Again, I'm not a programmer and there might be better ways to do it.
Either way, I'm looking forward to any helpful reply. Thanks in advance for that!

EDIT: I've removed a part where I was talking about programmers (professional/hobby) I've talked to in the past since this only seems to lead to assumptions regarding their (lack of) knowledge/willingness to help. And I simply don't want any assumptions in regards of someone who's not part of this discussion.

6 years ago*

Comment has been collapsed.

Either way, I'm looking forward to any helpful reply

Your case is too specific to code in a reusable piece of code without heavy modifications. Yes, you could achieve what you want in userscript, but this is not what userscripts are for and it'd still require your attention to run and do its thing, which I assume is not what you want considering you'd still need to look after people and spend time manually entering who is eligible/not eligible and then parse all entries in all giveaways to find non-eligible people inside.

In my group ArchiBoT is in charge of that, as it's fully featured bot which manages the whole group, calculates all points/ratios, detects who is eligible for what, syncs on hourly basis with list of members in the group, detects any anomalies in entries, notifies via Steam people that entered without being eligible for, and in case they don't bother with listening, kicks from the group 1 hour before giveaway ends, while notifying giveaway creator to reroll in case kicked member wins. This is a really complicated solution because it doesn't only integrate fully with SG/Steam but also has whole logic related to calculation of giveaways, entries, winners, points, ratios and everything else. This is what is required to make it work in the first place as fully automated solution which allows me to play a game or sleep and not worry about doing anything manually, especially wasting time tracking who is eligible for what just so I can save a little bit of time on automatic giveaways parsing. That would be also what I'd suggest to you if you truly wanted to save time by automation and not find yourself in this situation, but it's not a project for a few hours, and definitely not for people struggling with basics.

I can't tell anything about whether you actually find somebody stupid kind enough to code all of that for free, but I wouldn't expect that, even in form of a really limited userscript. I don't know what your "programmers" guys are doing, but if they have any basic knowledge about programming then they should know perfectly well that what you want to achieve is possible in any language as server/desktop app, be it C# (like my ArchiBoT), python, ruby, even javascript on top of node.js or more exotic solutions like php/perl if somebody feels better in them. Writing basic proof od concept doesn't require advanced skills but is time-consuming and requires some dedication, a dedication that is unlikely to be found in random SG user who isn't even a member of your group in the first place. If your group members don't care then I wouldn't expect other people to do, as I won't believe that anybody who calls himself programmer is incapable of writing that, he just doesn't want to, for one reason or another.

In any case good luck, personally I didn't see any group besides mine that has any sort of automatic management, which is why I'm sceptical about that in general. If I were you then I'd value my potential time saved on monthly basis, packed it into $$$ and actually compensated one of your group members for his time, which is how he might suddenly change from "I don't know how to do it" into "I might have an idea how". Programmers have enough of job offers as "practice" to never code for free, so the only way to make them code is either to pay them, or make them care about your cause. If somebody cares even a little, he'll likely code for much much less than he'd charge for, I've coded archibot-like submodule for Arise group out of my own free will for pennies compared to my hourly wage, simply because I knew what happened to the guy and wanted to help him, and he also knew that asking me to do all of that for free would be an insult, so we both agreed on something he felt comfortable with as an invidual, and I didn't feel like doing a slave job. Show people that you care, and people will return a favour.

6 years ago*
Permalink

Comment has been collapsed.

well, now OP can close thread, nothing really helpful left to add.

6 years ago
Permalink

Comment has been collapsed.

I'm not looking for a program as you have described it with your own one. Not even something close to it - it would be overkill for what I'm looking for. And yes, I am indeed planing to do everything else by hand - just like I've described it in the original post.
Again, all the script should do is: Open the first entries page, read the game title and all names and print that, then repeat both of that for the next giveaway below the previous one until the end of the page. That's it.
And sure, I might be wrong, but while the other script that I've mentioned is only about three lines long I would not assume that one for this task is more than twice as long, considering that it's a very similar task (reading out two different sets of data) that's only missing a loop to repeat the process for more than one page. So I highly doubt that what you are suggesting with your linked picture would happen in this case, though I can see it be true in other cases.

You have put quite some effort into writing your comment (judging by the length of it). Painting the idea of a script as described black and mocking anyone possibly willing to contribute as "stupid"... I'm not looking for negativity like that - it doesn't help anyone let alone help to further the task. If that's all you've got to contribute and want to keep going, well... go ahead. But I guess a guy with your experience would've written the script in the same amount of time (probably even quicker)... so that's kinda sad.

One last thing: Not everybody is looking for profit when online on a page which they are visiting in their spare time for fun. Considering the nature of Steamgifts I'm pretty sure that there's people here who enjoy helping others/a community for the sake of helping - just like I enjoy helping people with things if my knowledge, experience and time allows it, without expecting anything in return.
And if I'm lucky enough I might actually find someone who is willing to help me (i.e. the group of which I'm part of and possibly others who have use for such a tool) with this task. And if not, well, I guess I'll have to look elsewhere.

6 years ago*
Permalink

Comment has been collapsed.

Wow you are an entitled Eiion. No one is supposed to do anything for you, if he wants to write a comment, it's his time. He just explained it to you, that your thing isn't 10 minutes to do, he might have seen it a bit more complicated than it is. Personally it would take me 20 minutes, with a toilet break :p
But I don't like doing stuff for entitled people.

I could say the same to you. With the time spent writing begging posts and bitching about other people's character, you could have just learned basic Javascript and be done with it already. It's the easiest route for you imho, since you know what exactly you need.

6 years ago
Permalink

Comment has been collapsed.

Insult? Ha ha. Nice one. There are a lot of people that share their knowledge for free in all kinds of voluntary work. Be it specialized law knowledge to help those in need with free advices, people with higher specific education that have lectures or shows in schools to show kids that science can be fun, musicians that after years of training have free shows at some school academy because their friend asked them to etc.

Not everything is converted into money. Sure, some people think they should get paid for everything and won't do anything for free, as their time is too valuable. But there are also those that are willing to do it for free, because they like idea or know they are good in it. So they want to show their capabilities.

I helped in a lot of (not mine) uni projects or people to study for exams just to help them. And I didn't get anything in return. But I know people that wanted to get paid for doing the same. They have full right to do so of course. But they can't say that everyone in their position would act just like them.

6 years ago
Permalink

Comment has been collapsed.

You are better off using sgtools and stopping people who have bad ratios at the moment of entering giveaways. Then create a thread, notify the group to bookmark the thread, and post the giveaways in it.

6 years ago
Permalink

Comment has been collapsed.

We won't ask our members to use SGTools for their giveaways. That's just not a good solution for groups.

6 years ago
Permalink

Comment has been collapsed.

why not ???

6 years ago
Permalink

Comment has been collapsed.

The answer to your question lies within my last comment.
As I've said in the original post, the issue rarely occurs. Also, we can't enforce everybody using SGTools so that would do nothing for those giveaways that don't use them in regards of people who shouldn't enter.

6 years ago
Permalink

Comment has been collapsed.

i mean, why not using sgtool, it is pretty convenient and everyone can use it. many group/user use it. it already do all the thing that you are asking

6 years ago
Permalink

Comment has been collapsed.

I already answered why we wouldn't use it. It's simple better for personal use than for a group. And it doesn't do at all what I'm asking for: It's not about helping people to not break the rules once they already have reached the max limit but about them not breaking the final straw when they have already gotten a warning.

6 years ago
Permalink

Comment has been collapsed.

why not only check if that person wins something?
I mean, if they enter and don't win, nothing wring happend.
If they win and shouldn't, you can kick them
don't know if SG allows reroll in that cases if you specify it in your group rules

6 years ago
Permalink

Comment has been collapsed.

Why not? Because that's how the rules are - I didn't make them but I can understand why they are how they are.
No, SG unfortunately does not allow re-rolls for cases where someone broke the rules of a steam group. You actually have to send in a screenshot from the group history page to prove that someone was kicked already before winning a giveaway.

6 years ago
Permalink

Comment has been collapsed.

I was told that this should be done in Javascript? Again, I'm not a programmer and there might be better ways to do it.

As a web programmer myself, I can vouch for this method. Based on my understanding, you don't really need a full automation, you only need some ways to make life easier (am I right?). It can be done quite easily in Javascript.

But then, this will involve scraping SG website for those info that you need. Without having the website owner's consent (ie. cg's), scraping the site to run automation script like this violates my own personal ethics.

Again, I'm sorry but I cannot offer anything in exchange so if that's a killer argument for you, don't bother reading any further, I guess.

Yeap. Killer argument for me.
:P

I have similar stance with Archi on this one, but not as strong (I think).
Either offer some sort of compensation for the programmer, or contribution to the community (by creating more public GA, or subscribe to Patreon etc), this should make it easier for you to get attention from professional or experienced programmers.

Good luck!

6 years ago
Permalink

Comment has been collapsed.

Yes, you're right. It's should only do what I've said in the original posting. Nothing more than that.

I understand your concern about generating traffic, I also addressed that (somewhat) in my original post. But since you have mentioned Archi: Considering what he described that his group script does, how much bigger his group is and how often his script does what it does (hourly, for each member)... or some functions of ESGST (e.g. the giveaway extractor - think of it being used for the resent community train or its 'continuously load pages' button, or the sent/won giveaway data)...
As said, I'm fine with the script reading only one entries page every two seconds. And that's not crazy fast compared to when done by hand for giveaways with one or two hands full of entries, for a group with less than 40 members and only done once or twice a day for maybe a week, only when someone crosses the line every few months. I would absolutely agree with you if it would be to the extend the other scripts mentioned are, in a scenario as described by me though I'm slightly struggling with that.
I for sure get where you're coming from and if someone made it a strict requirement to help, I guess I would make an effort to talk to cg about it for the sake of it. But again, considering how little traffic this would generate compared to using the other two scripts (i.e. any user could cause way more traffic at any given time with one of the other two scripts mentioned) - and especially since the traffic would be exactly the same as when done by hand, as it's currently done - it would be weird if that suddenly would be a problem.
Also, I've checked the tos before making this post as I didn't want to get anyone into trouble for making something like what I'm asking for help with and there's no mentioning of it being against them.

As for a compensation, yes, I tried to be clear about that in the original post from the get go. That's not to say that someone who is willing to help would not get something out of it at some point in the future - but right now things unfortunately are as they are which is why I have said what I have said. So someone fixated to personal profit out of the little project just won't be the right person to do it, I guess.
And as for contributing more to the community, I think you can tell by looking at my profile that I already am giving back to the community more than I take. I always have made an effort for it to be like that.

I appreciate your differentiated reply. Thanks for confirming the information regarding Javascript.

6 years ago
Permalink

Comment has been collapsed.

Closed 5 years ago by Eiion.