Skip to content

Commit d3af651

Browse files
committed
fixed url encoding bug
1 parent 8f91e2b commit d3af651

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

src/renderer/lib/image-providers/retrogaming.cloud.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
import { GenericImageProvider, ImageContent, ProviderEvent, AppSettings } from "../../models";
22
import { LoggerService, SettingsService } from "../../services";
3-
import { Http, Headers, URLSearchParams, Response } from '@angular/http';
3+
import { Http, Headers, URLSearchParams, Response, QueryEncoder } from '@angular/http';
44
import { Observable } from "rxjs";
55
import { queue } from 'async';
66
import { FuzzyMatcher } from "../fuzzy-matcher";
77

8+
class CustomUrlEncoder extends QueryEncoder {
9+
encodeKey(key: string): string {
10+
return encodeURIComponent(key);
11+
}
12+
13+
encodeValue(value: string): string {
14+
return encodeURIComponent(value);
15+
}
16+
}
17+
818
export class RetroGamingCloudProvider implements GenericImageProvider {
919
private timeoutQueue: AsyncQueue<{ timeout: number, eventCallback: () => void }>;
1020
private timeoutTimer: any;
@@ -110,7 +120,7 @@ export class RetroGamingCloudProvider implements GenericImageProvider {
110120
}
111121

112122
private retrieveImageList(title: string, eventCallback: (event: ProviderEvent, data: any) => void) {
113-
let params = new URLSearchParams();
123+
let params = new URLSearchParams('', new CustomUrlEncoder());
114124
params.append('name', title);
115125

116126
return new Promise<any[]>((resolve, reject) => {

src/renderer/lib/image-providers/steamgriddb.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
import { GenericImageProvider, ImageContent, ProviderEvent } from "../../models";
22
import { LoggerService, SettingsService } from "../../services";
3-
import { Http, Headers, URLSearchParams } from '@angular/http';
3+
import { Http, Headers, URLSearchParams, QueryEncoder } from '@angular/http';
44
import { Observable } from "rxjs";
55

6+
class CustomUrlEncoder extends QueryEncoder {
7+
encodeKey(key: string): string {
8+
return encodeURIComponent(key);
9+
}
10+
11+
encodeValue(value: string): string {
12+
return encodeURIComponent(value);
13+
}
14+
}
15+
616
export class SteamGridDbProvider implements GenericImageProvider {
717
constructor(private http: Http, private loggerService: LoggerService, private settingsService: SettingsService, private downloadInterrupt: Observable<any>, private timeout: number = 40000, private retryCount: number = 3) { }
818

@@ -11,7 +21,7 @@ export class SteamGridDbProvider implements GenericImageProvider {
1121
}
1222

1323
retrieveUrls(title: string, eventCallback: (event: ProviderEvent, data: any) => void, doneCallback: (title: string) => void) {
14-
let params = new URLSearchParams();
24+
let params = new URLSearchParams('', new CustomUrlEncoder());
1525
params.append('game', title);
1626
params.append('fields', ['author', 'grid_url'].toString());
1727

0 commit comments

Comments
 (0)