It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
high rated
UPDATE: Adaliabooks has done it! We have a script that works. Still requires some finetuning, but it's fully functional. You can download the script from here (click on "Raw").

=====================================================================================

I have been thinking recently about a tool that could readily improve the GOG experience for many of us. Specifically, the ability to sort game reviews. I know I am hardly the first.

For obvious reasons, I see no point in asking GOG for it, so I am approaching the community with a detailed suggestion. Perhaps someone (you?) would like to take up the glove and develop it. I myself am already rather overloaded with MaGog (consumes 10+ hours of maintenance a week, not including adding new features), so I cannot devote the time needed to writing and maintaining it.

===========================================================================

Here are the details, as I see them, but feel free to change anything you wish:

(1) Overview:
Write a Greasemonkey script to add the ability to read game reviews sorted by date/helpfulness/stars.

(2) Interface:
On every GOG game page, to the right of the words "USER REVIEWS" add two elements:
(a) a drop down selection menu to choose the sorting option
(b) a "read reviews" button

[note: The interface should probably be modified for games with zero reviews, e.g. disabling the button]

(3) Implementation:
When the user clicks on the button:

(a) collect all the reviews for the game into an array, something along the lines of:
<PAGE> = 1;
do
{
read a page of reviews (5 reviews) from http://www.gog.com/reviews/product/&lt;GAMEID&gt;.json?page=&lt;PAGE&gt; ;
collect the json information (title, stars, reviewer name, avatar, review text, helpful votes, total votes, etc.) into an array;
<PAGE>++;
} while (<PAGE> <= total pages);

[note: It would probably be worthwhile to print some progress text (e.g. "reading page # of #") while collecting the data, as it may take a while, especially for games with many reviews (e.g. witcher 3, witcher 2, etc.)]

[note: The median number of reviews for a GOG game is currently 18 (i.e. 4 pages). The average is about 35 (i.e. 7 pages). The maximum is 774 (i.e. 155 pages)].

(b) sort the array based on the drop-down selection

(c) open a new browser window/tab

(e) display all the reviews for the game (regardless of number) in the new browser window/tab (i.e. no next page, previous page. etc.) in a nice readable format (e,g. a table).

(4) Sorting Options:
I recommend at least the three following options:
(a) by descending date (more specifically, first by descending date, second by descending helpfulness, third by descending stars, fourth by reviewer name)
(b) by descending helpfulness (more specifically, first by descending helpfulness, second by descending date, third by descending stars, fourth by reviewer name)
(c) by descending stars (more specifically, first by descending stars, second by descending helpfulness, third by descending date, fourth by reviewer name)

This would require one to develop a metric for determining helpfulness based on the number of helpful votes and the number of total votes. I thought about it briefly and I expect the following metric could work:
helpfuless = ([helpful_votes] * [helpful_votes]) / [total votes]

===========================================================================

That's about it. I believe this could be developed even by someone with no previous Greasemonkey experience.

I will gladly help with design questions throughout.

So, any volunteers?
Post edited September 10, 2015 by mrkgnao
Bump.
It is a good idea. I'll try to remember it on the weekend. But no promises, I have no clue and I am not sure if I have enough time.
Bumper.
high rated
If somebody else wants to code the script, I can certainly make the front end appear as though it's supposed to be there. A good idea, Mr. K.
high rated
avatar
Eli: If somebody else wants to code the script, I can certainly make the front end appear as though it's supposed to be there. A good idea, Mr. K.
That would be great.

adaliabooks and moonshineshadow have expressed some interest so perhaps it will see life soon™ (or at least before temporary® is over).
LMAO

* shakes head *
high rated
avatar
mrkgnao: That would be great.

adaliabooks and moonshineshadow have expressed some interest so perhaps it will see life soon™ (or at least before temporary® is over).
Since no GOG [url=https://www.youtube.com/watch?v=Fdjf4lMmiiI]Men will be involved, I think it's pretty safe to assume that, at the very least, it won't take 2 Weeks™.
Short update from my side... things suddenly piled up here from work, I don't see much free time for a project like this in the next weeks... so if I am going to do it, it is in a Soon™ timeframe *sigh*
Being able to view all reviews (for a given game) on one page is something I have been looking forward to.
I would then be able to use Mozilla Archive Format to save the game page(s) with all reviews included.
http://maf.mozdev.org
I have been saving the game pages (for games I own) for a while now, with only the first page of reviews.
I like having a local copy of the game pages.

Even archive.org appears to only save the first 3 pages of reviews for a given game.
Post edited September 01, 2015 by solar_dome
avatar
HypersomniacLive: Since no GOG [url=https://www.youtube.com/watch?v=Fdjf4lMmiiI]Men will be involved, I think it's pretty safe to assume that, at the very least, it won't take 2 Weeks™.
Wow, thank goodness! XD
high rated
I just want my goram shelf back.

You know, the one with the pretty, sortable boxes? That all fit on one page so I don't have to click 6 or 7 times to scroll forward to find "Xenonauts"?

Bog blast every usability suggestion in the tank until I get my shelf back.
high rated
So, I've done a bit of digging to see what's possible.

Good news is that it's probably possible to use an implementation similar to what I did for my search script to just retrieve all the reviews on a game and then sort through them and display them based on the users requirements. This shouldn't be too difficult.

It would require going through every page and adding the reviews to an array manually, which isn't too bad because it's all done with JS and there would be no AJAX requests required (unlike my forum search script).

But, it may be entirely possible to instead grab the reviews straight from the source and just get the whole array that (presumably) GoG is pulling the pages from in the first place.
This would make the whole sorting and filtering process quicker (or so I imagine anyway) and might allow some other interesting uses (like re-implementing the old shelf or manual sorting, although I think that's far beyond my capabilities).

What I've got so far is that there are two objects which are quite interesting;
one just called gog whose purpose seems to be fairly important but is obscured by minified JS
and one called gogData which holds a variety of information such as what the current language and currency are, how many mixes to display, the recommend games and other games in a series, as well as (for some bizarre reason) the first 15 reviews, but only the first 15 (otherwise I would just grab the whole lot from here)

In the JS there are various calls to some sort of url service where the data seems to be being retrieved from, which is where I think I could grab the reviews from, along with possibly other useful stuff for further site modification in the future, if I could only figure out what object this url function or variable is actually a part of, as that is obscured by a variety of function calls and the minified JS.

None of this may be new to mrkgnao and it's entirely possible he already knows the ins and outs of all this from developing MaGog, but it's certainly been interesting to poke through.

Anyway, the long and short of it is, I should probably be able to do this at some point (probably a few weeks from now when I have more time) and with some luck may even be able to hack together some mods for the account page to make things a bit more usable...


Edit: No. Wait, figured out the url thing. Unfortunately that only seems to have the first 5 reviews stored as JSON too... *sigh* couldn't just make it easy GoG could you?
And there doesn't seem to be any url relating to some nice easy data for the games themselves. But there is a list of games owned, and I'm sure the other info is available so I'll keep redesigning the account system in mind...
Post edited September 03, 2015 by adaliabooks
high rated
So, change of plans. I got bored and it's nearly done.

Just need to implement pagination and the secondary sorting.

Hopefully get it done tonight, but we'll see.
avatar
adaliabooks: So, change of plans. I got bored and it's nearly done.

Just need to implement pagination and the secondary sorting.

Hopefully get it done tonight, but we'll see.
That should make a nice welcome back gift for Mr MaGog.