Giter VIP home page Giter VIP logo

epic-ratings's Introduction

epic-ratings

Lookup (e.g. metacritic-) ratings for all (most of) my epicgames licenses.

(Thank you so much, Epicgames, for all the freebies, but less is more - and this is my attempt to sort the mess in my library)

quickstart

python3 downloader.py
python3 filesparser.py
open metacritic/MyEpicGamesOnMetacritic-*.csv

N.B.: see external packages below.

  1. Run with the included example file, to see what it does: example output
  2. Read the settings.py to understand how the tweaking works.

individualize

  1. Use your own PurchaseHistory_plaintext.txt file.
  2. Extend the exceptions in settings.py if needed (and possibly submit a pull-request to this repo)

external packages

pip3 install -r requirements.txt

but better do all this in a venv, to keep your host system unaffected.

example result

output/metacritic-example-table.png

Running 'quickstart' with the included PurchaseHistory_plaintext.txt example, the resulting CSV file can be sorted and formatted like ^ this, e.g. with the example file and the free and opensource LibreOffice Calc.

Thank you very much, ...

... metacritic. You are an amazing website (I have actually begun using you like IMDb for all my movie ratings). Please see this "niceness" idea to keep the drain on your server resources minimal. Is 1.0 seconds delay good enough?

epic-ratings's People

Contributors

drandreaskrueger avatar

Watchers

 avatar

Forkers

wyscott123

epic-ratings's Issues

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

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":

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.
  2. 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.
  3. 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.

Clustering genres (good first issue)

Good first issue: Clustering genres

Idea: Imagine ...

a table where you can sort/select by e.g. "strategy" or "ego shooter" or "racing".

Super easy to implement, by just adding 1 more column for each 1 genre, and filling in yes / no, per game. However:

Right now, the current number of genres is too big for that (28 genres already with the 14 example games; and 75 genres with many more games). See this long list of genres (and please pull-request a longer list if you have one).

Suggestions:

  • if you are a gamer not a coder, then what about helping by:
    • making a table with 75 rows ("metacritic genres), and 6-10 columns ("clustering genres"),
    • and telling us which metacritic genre (one of the 75)
    • can be sorted into your (6-10) clustering genres
  • if you are a coder, you then read in that ^ table, and output a new CSV with all the results.

See this code comment = that's when I gave up on that idea myself. I don't need it too urgently. But it would be a nice to have functionality, and it would be a ...

... good first issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.