Giter VIP home page Giter VIP logo

mygamecollection's People

Contributors

mrbellek avatar

Watchers

 avatar  avatar  avatar

mygamecollection's Issues

Scrape game genres

This info isn't in the gamecollection csv, but I want to have it available in MGC.

This info doesnt seem to be fetch by Ajax on TA, it's on the main page. However, the info is very unlikely to change after being set.

Update scraper to get game id from somewhere else

IMPORTANT BUG NEEDS FIXING
It looks like the TA website was updated so we can't get a game's ID from the platform icon anymore. Now we need to get it from somewhere else. A quick look shows that the 'edit' button in the Game Collection list view page still has the game id in it, maybe we can get it from there.

Until this bug is fixed, newly scraped/imported games will have negative (placeholder) ids.

Properly handle renamed games

When a game changes names on TrueAchievements, the import fails to properly update this game, and tries to insert a new record with the same game id. This fails, resulting in games with the temp (negative) ids (and showing the button 'games without TA id').

The reason for this, and solution to fix it, is completely unclear to the user. Either this has to be shown to the user with a solution (merge the two records by updating the game name on the existing record), or be fixed automatically by the import itself. Possibly the TA url for a game can be used to find the record with the old name, though I've seen the game URL change as well in the past.

Examples:

  • a remaster of a game is released, and TA needs to make a distinction between the old and new game (they have the same name, but different platforms/console generation). Usually they suffix 'Xbox 360' to the old game's name. This is the most common reason for this bug. Examples: Bayonetta, Vanquish.
  • a new game is released with the same name as an old game. The old game's name is changed in a different way: in the case of Saints Row 1, the old 360 game was renamed to 'Saints Row (2006)' on TA.

Importing games from csv that have been renamed, inserts them as new games

Bayonetta, Vanquish have been remasted and an XB1 version has been released. This caused the old 360 games to be renamed, appending ' (Xbox 360)' to their name. This messes up any new import, even though I've already renamed them in the database.

Maybe update names when importing the prices json?

Implement form password for editing games

We want to be able to define a FORM_PASSWORD constant and have the main page use this as validation on editing/deleting game info. If someone would not want to have no password for this (for whatever reason), this should be made optional.

Importing price info / csv wipes custom game info

Updating your game collection from either the price info json or the TA export csv (not sure which one, I just noticed it after doing both) will wipe the custom game data you entered. Fields backcompat, kinect_required, peripheral_required and online_multiplayer are now blank everywhere.

Clarify 'Shortlist' feature better

The 'shortlist' feature (games you want to earmark for starting/playing soon) isn't very clear. Either clarify this on the main screen, or on an empty shortlist screen.

Automatically get game ids from TA with game collection csv import

The price tracker needs all games to have the TA game id as the id in the database too, otherwise it won't know which price belongs to which game. For new users entering hundreds of ids for all of their games is not fun. We need to get this automatically, but it's not included in the .csv.

Properly detect and process Reddit galleries

Reddit allow users to post multiple images in a post. This results in the media link to be something like 'reddit.com/gallery/tvptpt', but the media module displays this as 'crosslink' and will not attach the pictures. The module must be updated to properly detect a gallery, pick up to 4 random pictures from it, and attach those to the tweet.

This was implemented earlier for posts that linked to Imgur galleries, but since Reddit has implemented their own version of galleries, those aren't used anymore.

Show if game DLC is also completed

The TA game collection csv also includes info on DLC achievements present/completed which we don't use yet. We could do this, and show if DLC for a game is completed or not.
There's no real way (yet) to know if this DLC is also purchased, so for now we should only assume it is, if there's completed DLC achievements.

Remember search query after editing game

When returning from the edit screen, any search query that was performed before entering that screen, is lost. Change the screen to receive the search query, and afterwards redirect back with the search query in the querystring.

Add a new field to put in notes about game

My game collection is very large. I want to be able to add notes to certain games, to remember why I should or should not play them, how to do x in-game, who to play with, and reminders to myself.

This will require a new database table field, a form field in the edit dialogue, handling of that field reading/writing to the database, and possibly displaying it somewhere in the games list without taking up too much screen real estate. Maybe another icon behind the game name, like for the walkthrough icon.

Update logger page

The logger page has zero documentation, and throws an unclear error when you open it without setting an .inc file for database access. It should show a clear message indicating the user what to do, and the Github documentation should include a section on what the page does and how it works.

Page crash when importing new games when there's already newly imported games.

New games are automatically assigned negative id values (starting with -1) until you manually give them the correct TA game id. If there's newly imported games present when importing more new games, there's a 'duplicate id' error. We need to automatically get the first available negative id during an import and use that, instead of hardcoding -1.

Filters/sorting for easy-hard games

Since we have the total gamerscore as well as TrueAchievement score for games, we can calculate which games are easy (low ratio of ta/gs) or hard (high ratio of ta/gs). Ratios below 2 are probably easy games, ratios over 5 are probably hard games.

This can be shown as a new column 'difficulty' with a ratio and color:

  • 1-2: very easy - light green
  • 2-3: easy - dark green
  • 3-4: normal - yellow
  • 4-5: hard: orange
  • 5+: very hard

Proper classes, namespaces, autoloader

There's multiple classes inside the main script file right now, and loading other classes is hard-coded with require for now. It's best to separate the classes out to their own files (probably in the lib folder), give them a proper namespace, and write an autoloader.

Price import should show newly added games

The .csv import shows new games added, but since we no longer want the user to do that (import prices first), the price import should show more prominently when new games are added to the library. Right now, they're just in the 'newly discounted' list, which can be pretty large.

Make iInitial setup flow

While my current setup works well, there is almost no guide/flow for new users to get this working. We need:

  • database and/or table setup
  • first import of game collection and prices (also see #1)
  • instructions on updating game collection after adding something new to your collection

Also better error handling if any of the above fails for some reason, but that's probably a separate isssue.

Refactor into classes and function files

Currently, almost all the code is in a single 1400+ loc file, that includes loose functions, loose classes, html, logic and even more.

Separate into:

  • classes for Game, Database, Logger, Request this is already done in #8
  • class for CollectionImporter and PriceImportere, GamePrice
  • function files for helper functions int2glyph, priceFormat

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.