Posted August 17, 2015
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/<GAMEID>.json?page=<PAGE> ;
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?
=====================================================================================
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/<GAMEID>.json?page=<PAGE> ;
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