Giter Club home page Giter Club logo

vitrine's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vitrine's Issues

Upgrade to Electron 2.0.0

As among others packages, Electron has been updated to a new version, 2.0.0.
This update comes with some breaking changes since it's a major release.

Therefore, this new version should be adopted, along with the others dependencies (listed here).

Consider switching to Styled Components

Styled Components is shaped for React, offers a better layer of abstraction than Aphrodite does. It will allows us to use keyframes properly, to get rid of css-verbose and also to use props and state to dynamically change styling.

Considering release notes generator

The actual direction Vitrine development is to open it to the open-source community. This is being achieved by code linter, precommits tasks, updating documentation, etc.

The next step is to provided meaningful release notes.

Steam games cannot be monitored on Linux

Using the regWatcher native Node module to monitor Steam games is only working on Windows, because it's using the registry keys. As Steam Linux using basic filesystem to update games monitoring, a cross-platform version of this module should be created in order to monitor Steam games.

application crash when steam folder is selected

When I select my steam folder, the app crash?
And if I re-launch it, it crash again

Error: ENOENT: no such file or directory, open 'S:\STEAM\steamapps\config\loginusers.vdf'
    at Object.fs.openSync (fs.js:646:18)
    at Object.module.(anonymous function) [as openSync] (ELECTRON_ASAR.js:166:20)
    at Object.fs.readFileSync (fs.js:551:33)
    at Object.fs.readFileSync (ELECTRON_ASAR.js:538:29)
    at new e (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\sources\server\api\AcfParser.ts:15:15)
    at e.setSteamConfig (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\sources\server\api\SteamUserFinder.ts:14:25)
    at C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\sources\server\api\SteamUserFinder.ts:44:19
    at new Promise (<anonymous>)
    at Object.t.findSteamUser (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\sources\server\api\SteamUserFinder.ts:43:9)
    at e.<anonymous> (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\sources\server\Server.ts:104:35)
    at C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\node_modules\bluebird\js\release\promise.js:773:1
    at Object.next (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\node_modules\bluebird\js\release\promise.js:773:1)
    at C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\node_modules\bluebird\js\release\promise.js:773:1
    at new Promise (<anonymous>)
    at r (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\node_modules\bluebird\js\release\promise.js:773:1)
    at e.clientSettingsAsked (C:\Users\guigur\AppData\Local\Programs\Vitrine\resources\app.asar\public\webpack:\sources\server\Server.ts:95:2)

Adding stats graphs

It would be interresting (not necessarily soon) to add a stats features to display graphs about the time spend on games (which games, from which developer/publisher, which genre, ...)

Update overall app design

Semantic UI is a great toolkit, but it would be better to improve it to make it smoother and to have a really unique UI

Add every game at once doesn't fully work

When I add every game at one time:

  • the progress bar doesn't really progress
  • the release date for the games are invalid
  • the background picture is never downloaded

Language change doesn't work

When changing language, application reboot is necessary. However, when Vitrine reboot, the language doesn't change.
vitrine_config.json gives the correct key, however the settings modal still display the first language.

Upgrade to Electron 3.0.0

Electron 3.0.0 just came out, switching to Node.js 10 and fixing some security breaches. That would be an interesting idea to upgrade, as well as the rest of the dependencies.

Allow user to sort his games

The whole point of Vitrine is to centralize every game on the user computer. The main argument of this kind of softwares is that the games can be sorted thanks to different parameters (release date, note, genre, developper, etc.), previously fetched on IGDB.

The first step before sorting the games on the client (probably using Redux) is to use games genres as actual data and not just strings. Maybe a genres array could be added to modules_config.json and every game's config.json could just refer to one of multiple IDs pointing to this array.

Steam game renamed is still marked as potential

When Vitrine scans for Steam games and add them as PotentialGames, renaming before adding it will result in the game still mentionned as a PotentialGame, although being already added.

This can be surely solved in the SteamGamesCrawler by comparing Steam app ID.

Controls are still active on gamepad when Vitrine is not focused

Upon using Vitrine with a gamepad (Xbox 360 controller in this case), the software can still be used althought the window is not focused. This is particularly problematical when playing to a game when a controller and Vitrine still fires events 3 times per second because of inputs.

Make native addons built cross-platform

The goal of Vitrine is to be cross-platform. As we can say it's definitely not the case for the moment (as every module was developped for and on Windows), the first step in the process is to allow the built of the native Node.js C++ addons.

The build system is using node-gyp which is cross-platform, so the only difficulty is to create an execution script that works regardless of the platform (Batch file, Bash script...).

shelljs seems to be a good compromise to execute Bash scripts on Windows.

Need to handle IGDB API timeouts

IGDB API seems to suffers from lags, maintenances or other timeouts.

These timeouts should be handled in Vitrine to prevent infinite loadings which prevent the UI from being updated.

One good way to do that should be to use Promise.race between the IGDB client method and setTimeout.

Make data for potential games crawlers static

Every class extending PotentialGamesCrawler needs some arbitrary data that is assumed static (configFilePath for Battle.net, launchCommand and gamesFolders for Steam, etc.).

For the moment, these informations are directly set inside Server and are re-evaluated and re-outputted everytime the user updates his modules. A way should be found in order to store this data in static files (JSON probably) for them to be requested in time and not re-writted everytime.

impossible de lancer vitrine après la dernière mise a jour

Vitrine s'est mis a jour vers 0.9.3
le soft a redémarrer mais ne s'est pas utilisable. il tourne en background et même en le kill la fenêtre n’apparaît pas.
j'ai supprimer appdata vitrine mais ça ne change rien

Les logs sont vides Vitrine log [ 03/10 07:41:27 ] Starting logging.

API keys shouldn't be stored in public

Vitrine is using different API keys (Discord, Steam, IGDB, ...).
Currently their are stored in a C++ header file used to build the keysProvider native addon.
This is made this way so people using Vitrine production built don't have access to plain keys.
However, keys shouldn't be accessed by anyone on a GitHub repo, but are still needed by CI to build production artifacts.

A solution should be found (probably using an env variable) to store encrypted variables on the repo and to decipher them at build process.

Add every potential game at one time

When having 20+ potential games found, it can be very boring to add them one after the other.
A feature should be provided to add every potential game at once.

Crash upon finding Steam playtime for the first time

Whenever a Steam game is added for the first time, Vitrine will crash if Steam module was turned on during the session.

A way to fix that would be to check for Steam user ID whenever a Steam config is uploaded to server.

Steam games are not synced up

Upon adding a game from Steam, its time played will established from Steam API. However, if the game is played on another computer, the time played will never be updated.
A solution will be to add an automated task at Vitrine launch to refresh Steam games play times.

Vitrine crashes when launching game asking for admin rights

When Steam for example, or any other software that requires an admin elevation to be executed is being run through Vitrine it crashes.

I believe it comes from the gameLauncher native module, which is using the CreateProcess function from the C++ WINAPI.
It should be changed to another shell function in order to handle games that needs admin elevation.

Improve the pipeline of potential games

Every time a potential game is found, a new request is done on IGDB API to get the game name and cover picture. This system is really expensive in both terms of IGDB API requests number (since they are capped) and performance (each request lasts multiple ms).
Plus, everytime a potential game is added, the rest of the potential games are once again found on the computer and sent to IGDB API, which can lead to 100+ requests in 10 seconds.

A solution to solve that would be to "cache" the potential games using a file.

Handle offline clients

Right now, Vitrine logic assumes that the Internet connection is always valid in order to perform requests (into IGDB API, Steam Web or Google Translate).

This should be changed in order to:

  • let the user know when Vitrine is offline
  • not let the API requests lose themselves into the void of unresolved promises

app launching forever

I'm using windows I have just installed it but when I run it says looking for updates and then starts launching for ever.

I don't know if this will be of any help, but if I run the app again after closing it with alt+f4 or while still opened it opens a window with just a grey background.

I would really like to test and use the app, is there anything I should try to make it work on my side or shuold I just wait for a fix?

Error: Module did not register

Whenever Vitrine is launching on Windows, an error occur: steamMonitor: module did not register. It appears to be linked to native C++ addons which are cross-platform now, since they work perfectly on Linux.

Replace all Promises with async/await

ES7 async/await is a great way to provide a clean code while use asynchronous promises.
As TypeScript is compatible with this feature, the whole source code of Vitrine should be adopting this code style in order to be much cleaner.

Update to React 16.3

React 16.3 came out last week, with branding Context API but most of all the deprecation of componentWillMount, componentWillReceiveProps and componentWillUpdate.

Vitrine should be updated to use React 16.3 and embrase the new components lifecycle .

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.