Fix disc renaming function.

This commit is contained in:
Stefano Brilli 2020-05-08 00:25:24 +02:00
parent a6d0e99b42
commit b5ad2917d4
1 changed files with 21 additions and 2 deletions

View File

@ -91,9 +91,28 @@ export class NetMDUSBService implements NetMDService {
}
async renameDisc(newName: string) {
// TODO: This whole function should be moved in netmd-js
const oldName = await this.netmdInterface!.getDiscTitle();
let newNameWithGroups = await this.netmdInterface!._getDiscTitle();
newNameWithGroups = newNameWithGroups.replace(oldName, newName);
const oldRawName = await this.netmdInterface!._getDiscTitle();
const hasGroups = oldRawName.indexOf('//') >= 0;
const hasGroupsAndTitle = oldRawName.startsWith('0;');
if (newName === oldName) {
return;
}
let newNameWithGroups;
if (hasGroups) {
if (hasGroupsAndTitle) {
newNameWithGroups = oldRawName.replace(/^0;.*?\/\//, newName !== '' ? `0;${newName}//` : ``); // Replace or delete the old title
} else {
newNameWithGroups = `0;${newName}//${oldRawName}`; // Add the new title
}
} else {
newNameWithGroups = newName;
}
await this.netmdInterface!.cacheTOC();
await this.netmdInterface!.setDiscTitle(newNameWithGroups);
await this.netmdInterface!.syncTOC();