refactor: improve display name sanitization in tag creation

This commit is contained in:
fallenbagel
2025-12-17 01:38:19 +08:00
parent c0ccd90468
commit c50b45592e
2 changed files with 20 additions and 22 deletions

View File

@@ -47,7 +47,9 @@ const migrationArrTags = async (settings: any): Promise<AllSettings> => {
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, ''),
.replace(/[^a-z0-9-]/gi, '')
.replace(/-+/g, '-')
.replace(/^-|-$/g, ''),
});
}
} catch (error) {
@@ -87,7 +89,9 @@ const migrationArrTags = async (settings: any): Promise<AllSettings> => {
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, ''),
.replace(/[^a-z0-9-]/gi, '')
.replace(/-+/g, '-')
.replace(/^-|-$/g, ''),
});
}
} catch (error) {

View File

@@ -29,6 +29,16 @@ import type {
} from 'typeorm';
import { EventSubscriber } from 'typeorm';
const sanitizeDisplayName = (displayName: string): string => {
return displayName
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, '')
.replace(/-+/g, '-')
.replace(/^-|-$/g, '');
};
@EventSubscriber()
export class MediaRequestSubscriber
implements EntitySubscriberInterface<MediaRequest>
@@ -312,21 +322,13 @@ export class MediaRequestSubscriber
newTag:
entity.requestedBy.id +
'-' +
entity.requestedBy.displayName
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, ''),
sanitizeDisplayName(entity.requestedBy.displayName),
});
userTag = await radarr.createTag({
label:
entity.requestedBy.id +
'-' +
entity.requestedBy.displayName
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, ''),
sanitizeDisplayName(entity.requestedBy.displayName),
});
}
if (userTag.id) {
@@ -645,21 +647,13 @@ export class MediaRequestSubscriber
newTag:
entity.requestedBy.id +
'-' +
entity.requestedBy.displayName
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, ''),
sanitizeDisplayName(entity.requestedBy.displayName),
});
userTag = await sonarr.createTag({
label:
entity.requestedBy.id +
'-' +
entity.requestedBy.displayName
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/gi, ''),
sanitizeDisplayName(entity.requestedBy.displayName),
});
}
if (userTag.id) {