Skip to content

Commit f2879e3

Browse files
authored
Merge pull request #15 from FrogTheFrog/v2.0.0
V2.0.0
2 parents 17e5ca0 + 565ada5 commit f2879e3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2800
-1520
lines changed

.dockerignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
node_modules/
2+
dist/
3+
src/renderer/styles/oldThemes/
4+
release/
5+
npm-debug.log*
6+
.debug/

.vscode/launch.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"version": "0.2.0",
33
"configurations": [
44
{
5-
"name": "Debug Main Process",
5+
"name": "Debug Main",
66
"type": "node",
77
"request": "launch",
88
"cwd": "${workspaceRoot}/dist",
@@ -20,7 +20,7 @@
2020
]
2121
},
2222
{
23-
"name": "Debug Renderer Process",
23+
"name": "Debug Renderer",
2424
"type": "chrome",
2525
"request": "attach",
2626
"port": 9222,
@@ -31,8 +31,8 @@
3131
{
3232
"name": "Debug Electron",
3333
"configurations": [
34-
"Debug Main Process",
35-
"Debug Renderer Process"
34+
"Debug Main",
35+
"Debug Renderer"
3636
]
3737
}
3838
]

CHANGELOG.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,35 @@
11
# Change Log
22
All notable changes to this project will be documented in this file.
33

4-
## 1.2.0 - 2017-05-06
5-
### Fixed
6-
* Completely rewritten `vdf` file parser (both mine and [shortcuts.vdf](https://github.com/tirish/steam-shortcut-editor)) solves #2 and should solve #6 (not confirmed yet)
7-
* Fixed #7
8-
4+
## 2.0.0 - 2017-06-11
95
### Added
10-
* Generated entries can now be removed
11-
* All added entries can be removed (which are added since this release)
12-
* New image provider - `retrogaming.cloud`
6+
* 2 new options for fuzzy matcher.
7+
* Online image query option allows to specify search string for images.
8+
* Image urls can now be redownloaded per game only (without regenerating a list).
9+
* Specific account support added. This allows to make different configuration for different accounts.
10+
* New settings windows has been added.
11+
* Images can now be preloaded as soon as they are retrieved.
12+
* Images can now be filtered for non-related images (select this option in settings window).
13+
* Fuzzy matcher has it's own Event log option now. This will reduce the clutter.
14+
* Timeout support added for `retrogaming.cloud`. After requested timeout, images will continue to download.
15+
* New nagging message will now announce when all downloads are complete.
16+
* User configurations and user settings (new in this release) will now be validated. Incorrect structure types will be replaced with default values (it will add missing options for new APP versions).
1317

1418
### Changed
15-
* `Glob-regex` now supports `leftovers`, thus allowing `${regex}.ext`. It will now remove `.ext` and pass remaining string to regex parser.
16-
* `Glob` and `Glob-regex` now properly replace `${title}` and `${regex}` with star (`*`). Earlier `dir\*\${title}.ext` would become `dir\*\*`. Not it will be replaced like this - `dir\*\*.ext`. This will eliminate a lot of "failed matches" messages and should increase `node-glob` performance.
17-
* All image providers now have 40 seconds timeout and 3 retries. This should address #3
19+
* Parser no longer needs executable location. If left empty, a file, returned by parser, will be used as executable. This allows to use custom batch files that do not require executable. Technically, any non-steam game can be added now.
20+
* Title prefix and suffix fields replaced by one `Title modifier` field.
21+
* Changed list data merging from `title` to `appID`. This means that games may now have the same titles, BUT they must have different executable path (case sensitive).
22+
* Image retrieve logic. Images are now retrieved in background, allowing user to view currently available images.
23+
* Internal data structure has changed to allow unique configurations for multiple apps per multiple user accounts per multiple directories.
24+
* Using the new API for `SteamGridDB`.
25+
26+
### Fixed
27+
* Properly show image url retrieve errors.
28+
29+
### Removed
30+
* Prefered image list is removed as it is impossible to implement with background image downloader.
31+
* ConsoleGrid support, because it's dead.
32+
* Greedy mode option.
1833

1934
## 1.1.4 - 2017-05-02
2035
### Fixed

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM electronuserland/electron-builder:base
2+
WORKDIR /app
3+
RUN curl -sL https://deb.nodesource.com/setup_7.x | bash - && apt-get install -y nodejs && curl -L https://npmjs.org/install.sh | sh && npm cache clean && npm config set unsafe-perm true && npm completion >> ~/.bashrc && apt-get clean && rm -rf /var/lib/apt/lists/*

package.json

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "steam-rom-manager",
3-
"version": "1.2.1",
3+
"version": "2.0.0",
44
"license": "GPL-3.0",
55
"description": "An app for managing ROMs in Steam",
66
"author": {
@@ -41,13 +41,17 @@
4141
"scripts": {
4242
"build:main": "cross-env NODE_ENV=production webpack --config ./webpack/main.js",
4343
"build:renderer": "cross-env NODE_ENV=production webpack --config ./webpack/renderer.js",
44-
"build:win": "rimraf release && npm run build && build --win --ia32 --x64",
45-
"build:linux": "rimraf release && npm run build && build --linux --ia32 --x64",
46-
"build": "rimraf dist && npm run build:main && npm run build:renderer",
44+
"build:dist": "rimraf dist && npm run build:main && npm run build:renderer",
45+
"build:win": "npm run build:dist && build --win --ia32 --x64",
46+
"build:linux": "npm run build:dist && build --linux --ia32 --x64",
47+
"build:all:forWin": "npm run build:win && npm run docker:build:linux",
4748
"watch:main": "webpack --watch --config ./webpack/main.js",
4849
"watch:renderer": "webpack --watch --config ./webpack/renderer.js",
4950
"start": "./node_modules/.bin/electron ./dist/main.bundle.js",
50-
"clean": "rimraf dist release"
51+
"clean": "rimraf dist release",
52+
"docker:create": "docker build -t srm-linux .",
53+
"docker:install-dependencies": "docker run -v %cd%:/app -v node_modules:/app/node_modules srm-linux npm install",
54+
"docker:build:linux": "docker run -v %cd%:/app -v node_modules:/app/node_modules srm-linux npm run build:linux"
5155
},
5256
"dependencies": {
5357
"@angular/animations": "^4.0.3",
@@ -59,6 +63,7 @@
5963
"@angular/platform-browser": "^4.0.3",
6064
"@angular/platform-browser-dynamic": "^4.0.3",
6165
"@angular/router": "^4.0.3",
66+
"async": "^2.4.1",
6267
"blob-to-buffer": "^1.2.6",
6368
"colornames": "^1.1.1",
6469
"crc": "^3.4.4",
@@ -78,6 +83,7 @@
7883
"zone.js": "^0.8.5"
7984
},
8085
"devDependencies": {
86+
"@types/async": "^2.0.40",
8187
"@types/crc": "^3.4.0",
8288
"@types/electron": "^1.4.37",
8389
"@types/fs-extra": "^2.1.0",
@@ -89,10 +95,10 @@
8995
"awesome-typescript-loader": "^3.1.2",
9096
"cross-env": "^4.0.0",
9197
"css-loader": "^0.28.0",
92-
"extract-zip": "=1.6.0",
9398
"electron": "^1.6.7",
9499
"electron-builder": "^17.0.1",
95100
"extract-text-webpack-plugin": "^2.1.0",
101+
"extract-zip": "=1.6.0",
96102
"file-loader": "^0.11.1",
97103
"html-loader": "^0.4.5",
98104
"html-webpack-plugin": "^2.28.0",

src/renderer/app.routing.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ModuleWithProviders } from '@angular/core';
22
import { Routes, RouterModule } from '@angular/router';
33

4-
import { PreviewComponent, LoggerComponent, ParsersComponent, HacksComponent } from './components';
4+
import { PreviewComponent, LoggerComponent, ParsersComponent, SettingsComponent } from './components';
55

66
const AppRouter: Routes = [
77
{
@@ -17,17 +17,13 @@ const AppRouter: Routes = [
1717
component: LoggerComponent
1818
},
1919
{
20-
path: 'hacks',
21-
component: HacksComponent
20+
path: 'settings',
21+
component: SettingsComponent
2222
},
2323
{
2424
path: 'parsers/:index',
2525
component: ParsersComponent
26-
},
27-
{
28-
path: '**',
29-
component: PreviewComponent
30-
},
26+
}
3127
];
3228

33-
export const AppRoutes: ModuleWithProviders = RouterModule.forRoot(AppRouter, { useHash: true });
29+
export const AppRoutes: ModuleWithProviders = RouterModule.forRoot(AppRouter, { useHash: true, initialNavigation: false });
Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,43 @@
1-
import { Component, ChangeDetectionStrategy } from '@angular/core';
1+
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';
2+
import { SettingsService } from "../services";
3+
import { Router } from "@angular/router";
4+
import { Subscription } from 'rxjs';
25

36
@Component({
47
selector: 'app',
58
template: `
6-
<titlebar></titlebar>
7-
<section>
8-
<nav></nav>
9-
<router-outlet></router-outlet>
10-
</section>
11-
<theme></theme>
12-
<alert></alert>
9+
<ng-container *ngIf="setttingsLoaded; else stillLoading">
10+
<titlebar></titlebar>
11+
<section>
12+
<nav></nav>
13+
<router-outlet></router-outlet>
14+
</section>
15+
<theme></theme>
16+
<alert></alert>
17+
</ng-container>
18+
<ng-template #stillLoading>
19+
<div class="appLoading loadingSettings"></div>
20+
</ng-template>
1321
`,
1422
styleUrls: ['../styles/app.component.scss'],
1523
changeDetection: ChangeDetectionStrategy.OnPush
1624
})
17-
export class AppComponent { }
25+
export class AppComponent implements OnDestroy {
26+
private setttingsLoaded: boolean = false;
27+
private subscriptions: Subscription = new Subscription();
28+
29+
constructor(private settingsService: SettingsService, private router: Router, private changeDetectionRef: ChangeDetectorRef) {
30+
this.subscriptions.add(this.settingsService.getLoadStatusObservable().subscribe((loaded) => {
31+
if (loaded) {
32+
this.setttingsLoaded = loaded;
33+
this.router.initialNavigation();
34+
this.changeDetectionRef.detectChanges();
35+
this.subscriptions.unsubscribe();
36+
}
37+
}));
38+
}
39+
40+
ngOnDestroy() {
41+
this.subscriptions.unsubscribe();
42+
}
43+
}

src/renderer/components/hacks.component.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/renderer/components/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ export * from './nav-expand.component';
1010
export * from './theme.component';
1111
export * from './ng-select.component';
1212
export * from './ng-option.component';
13-
export * from './ng-button.component';
14-
export * from './hacks.component';
13+
export * from './ng-var.component';
14+
export * from './ng-toggle-button.component';
15+
export * from './settings.component';

src/renderer/components/logger.component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { Observable } from 'rxjs';
2424
<div class="error" [class.active]="settings.showErrors" (click)="settings.showErrors = !settings.showErrors">ERROR</div>
2525
<div class="info" [class.active]="settings.showInfo" (click)="settings.showInfo = !settings.showInfo">INFO</div>
2626
<div class="success" [class.active]="settings.showSuccesses" (click)="settings.showSuccesses = !settings.showSuccesses">SUCCESS</div>
27+
<div class="fuzzy" [class.active]="settings.showFuzzy" (click)="settings.showFuzzy = !settings.showFuzzy">FUZZY</div>
2728
<div class="timestamp" [class.active]="settings.timestamp" (click)="settings.timestamp = !settings.timestamp">TIMESTAMP</div>
2829
<div class="textWrap" [class.active]="settings.textWrap" (click)="settings.textWrap = !settings.textWrap">TEXT-WRAP</div>
2930
<div class="autoscroll" [class.active]="settings.autoscroll" (click)="settings.autoscroll = !settings.autoscroll">AUTOSCROLL</div>
@@ -67,6 +68,8 @@ export class LoggerComponent {
6768
return this.settings.showInfo;
6869
case 'success':
6970
return this.settings.showSuccesses;
71+
case 'fuzzy':
72+
return this.settings.showFuzzy;
7073
default:
7174
return false;
7275
}

0 commit comments

Comments
 (0)