Skip to content

Commit

Permalink
Showing 5 changed files with 35 additions and 34 deletions.
3 changes: 2 additions & 1 deletion src/lang/en-US/langStrings.json
Original file line number Diff line number Diff line change
@@ -457,7 +457,8 @@
"savingConfiguration": "Error encountered while saving user configurations!",
"readingConfiguration": "Error encountered while reading user configurations!",
"parserTypeMissing": "Cannot save without specifying parser type",
"corruptedConfiguration__i": "One or more saved parser configurations are invalid!\r\nPermanent configuration saving is disabled until this issue is resolved.\r\nTry to manually fix errors yourself (file - ${file})\r\nor seek help on github or our official discord channel: ${error}"
"corruptedConfiguration__i": "One or more saved parser configurations are invalid!\r\nPermanent configuration saving is disabled until this issue is resolved.\r\nTry to manually fix errors yourself (file - ${file})\r\nor seek help on github or our official discord channel: ${error}",
"fetcingTemplates": "Error encountered while fetching controllers templates!"
},
"validationErrors": {
"parserType__md": "> Incorrect parser type!",
52 changes: 23 additions & 29 deletions src/lib/controller-manager.ts
Original file line number Diff line number Diff line change
@@ -57,32 +57,30 @@ export class ControllerManager {
}

// TODO
// 1) Convert to AppIDs [doesn't seem possible sadly]
// 1) Convert key to appIDs [doesn't seem possible sadly]
// 2) Make titlemap not a class variable

static readTemplates(steamDirectory: string, controllerType: string) {
try {
let templateDirUser = path.join(steamDirectory, 'steamapps', 'workshop', 'content', '241100')
let filesUser = glob.sync('*/*', { silent: true, dot: true, cwd: templateDirUser, absolute: true });
let parsedTemplatesUser: any[] = filesUser.map((f: string) => Object.assign({ mappingId: f.split('/').slice(-2)[0] }, genericParser.parse(fs.readFileSync(f, 'utf-8'))))
.filter((x: any) => !!x['controller_mappings']
&& !!x['controller_mappings']['title']
&& !!x['controller_mappings']['controller_type']
)
.filter(x=> x.controller_mappings.controller_type === 'controller_'+controllerType)
.filter(x=> x.controller_mappings.title.slice(-match.length) === match)
.map(x=>Object.assign({},{
title: x.controller_mappings.title,
mappingId: x.mappingId,
profileType: "workshop"
}));

let templateDirUser = path.join(steamDirectory, 'steamapps', 'workshop', 'content', '241100')
let filesUser = glob.sync('*/*', { silent: true, dot: true, cwd: templateDirUser, absolute: true });
let parsedTemplatesUser: any[] = filesUser.map((f: string) => Object.assign({ mappingId: f.split('/').slice(-2)[0] }, genericParser.parse(fs.readFileSync(f, 'utf-8'))))
.filter((x: any) => !!x['controller_mappings']
&& !!x['controller_mappings']['title']
&& !!x['controller_mappings']['controller_type']
)
.filter(x=> x.controller_mappings.controller_type === 'controller_'+controllerType)
.filter(x=> x.controller_mappings.title.slice(-match.length) === match)
.map(x=>Object.assign({},{
title: x.controller_mappings.title,
mappingId: x.mappingId,
profileType: "workshop"
}));

let templateDirValve = path.join(steamDirectory, 'controller_base', 'templates')
let filesValve = glob.sync('*.vdf', { silent: true, dot: true, cwd: templateDirValve, absolute: true });
let parsedTemplatesValve: any[] = filesValve.map((f: string) => Object.assign({ mappingId: path.basename(f) }, genericParser.parse(fs.readFileSync(f, 'utf-8'))))
.filter((x: any) => !!x['controller_mappings']
&& !!x['controller_mappings']['title']
let templateDirValve = path.join(steamDirectory, 'controller_base', 'templates')
let filesValve = glob.sync('*.vdf', { silent: true, dot: true, cwd: templateDirValve, absolute: true });
let parsedTemplatesValve: any[] = filesValve.map((f: string) => Object.assign({ mappingId: path.basename(f) }, genericParser.parse(fs.readFileSync(f, 'utf-8'))))
.filter((x: any) => !!x['controller_mappings']
&& !!x['controller_mappings']['title']
&& !!x['controller_mappings']['controller_type']
)
.filter(x=> x.controller_mappings.controller_type === 'controller_'+controllerType)
@@ -91,15 +89,11 @@ export class ControllerManager {
mappingId: x.mappingId,
profileType: "template"
}));
parsedTemplatesValve = _.uniqBy(parsedTemplatesValve,'title');
parsedTemplatesValve = _.uniqBy(parsedTemplatesValve,'title');

let parsedTemplates = parsedTemplatesUser.concat(parsedTemplatesValve);
let parsedTemplates = parsedTemplatesUser.concat(parsedTemplatesValve);

return parsedTemplates
} catch(e) {
console.log(`Error getting Controller Templates:\n ${e}`)
return [];
}
return parsedTemplates
}

static transformTitle(gameTitle: string) {
3 changes: 2 additions & 1 deletion src/models/language.model.ts
Original file line number Diff line number Diff line change
@@ -541,7 +541,8 @@ export interface languageStruct {
savingConfiguration: string,
readingConfiguration: string,
parserTypeMissing: string,
corruptedConfiguration__i: string//${file}, ${error}
corruptedConfiguration__i: string,//${file}, ${error}
fetchingTemplates: string
},
validationErrors: {
parserType__md: string,
4 changes: 2 additions & 2 deletions src/renderer/components/parsers.component.ts
Original file line number Diff line number Diff line change
@@ -604,13 +604,13 @@ export class ParsersComponent implements AfterViewInit, OnDestroy {
this.parsersService.saveControllerTemplates(this.controllerTemplates);
} else {
for(let controllerType of Object.keys(this.controllerTemplates[steamDir])) {
((this.nestedGroup.children.controllers as NestedFormElement.Group).children[controllerType] as NestedFormElement.Select).values = this.controllerTemplates[steamDir][controllerType].map(template=>{
((this.nestedGroup.children.controllers as NestedFormElement.Group).children[controllerType] as NestedFormElement.Select).values = this.controllerTemplates[steamDir][controllerType].map(template => {
return { displayValue: template.title, value: template }
});
}
}
if(force) {
this.loggerService.success(this.lang.success.fetchedTemplates, {invokeAlert: true, alertTimeout: 3000})
this.loggerService.success(this.lang.success.fetchedTemplates, { invokeAlert: true, alertTimeout: 3000 })
}
} else if(force) {
this.loggerService.error(this.lang.error.cannotFetchTemplates, { invokeAlert: true, alertTimeout: 3000 });
7 changes: 6 additions & 1 deletion src/renderer/services/parsers.service.ts
Original file line number Diff line number Diff line change
@@ -74,7 +74,12 @@ export class ParsersService {
}

getControllerTemplates(steamDir: string, controllerType: string): any[] {
return ControllerManager.readTemplates(steamDir, controllerType);
try {
return ControllerManager.readTemplates(steamDir, controllerType);
} catch (error) {
this.loggerService.error(this.lang.error.fetchingTemplates, {invokeAlert: true, alertTimeout: 3000});
this.loggerService.error(error);
}
}

removeControllers(steamDir: string, userId: string, parserId?: string) {

0 comments on commit e7cd06d

Please sign in to comment.