drandreaskrueger / drandreaskrueger/epic-ratings

feature request: for missing data, also download ratings pages for other platforms

Open
#2 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

# feature request:
## for missing data, also download ratings pages for other platforms

### Problem
If my main platform ( /pc/ ) has **not enough reviews (or is missing data completely)**, then the **meta/user-score on another platform** is better than having no data - right?

Random example "prison-architect":
* [pc/prison-architect](https://www.metacritic.com/game/pc/prison-architect) has metascore=83 **but userscore=None**
* [playstation-4/prison-architect](https://www.metacritic.com/game/playstation-4/prison-architect) has (metascore=80 and) userscore=6.8 **with 44 ratings**
* [xbox-one/prison-architect](https://www.metacritic.com/game/xbox-one/prison-architect) has (metascore=75 and) userscore=6.3 **with 12 ratings**

### wish
I would prefer to have `userscore=6.8 with 44 ratings` in my results CSV table, perhaps additional to (or perhaps even _instead of_) the `userscore=None`

### solutions

There are different routes to solve this:

1. BruteForce: Always download everything for all platforms, parse later. Disadvantages: Too much data is not always helpful. Plus, much more traffic load for metacritic. And more waiting time.
1. create a combined `downloadAndParse.py` which parses the downloaded page already, and immediately goes to the next platform if it detects good reasons to do so. The basic code for that is there already, but at the moment it tries the next platform (see `platformsOrdered` in settings.py, and where it is used in `downloader.py`) only if `not page.status_code==200`.
1. create a `downloadPatcher.py` which takes the CSV file that filesparser.py has output, identifies the missing data, and then downloads only the needed files on other platforms.

### open questions

What is with "the other score", i.e. in this example case the "metascore=83" on /pc/ ?
Do I also drop that, i.e. drop all /pc/ data, and instead everywhere use the /playstation-4/ results, i.e. "metascore=80" ?

Opinions please. Thanks.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading settings.py and downloader.py, especially platformsOrdered and the existing status-code fallback, then review filesparser.py and its CSV output. Compare the proposed downloadAndParse.py and downloadPatcher.py approaches, and resolve how platform scores should be selected before implementation. Done means missing or insufficient scores can be filled from other platforms without downloading unnecessary pages.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.