Files
usenet-indexer/database/migrations/1768620764940_name_stem_subtitles.ts
T

18 lines
657 B
TypeScript

import { BaseSchema } from '@adonisjs/lucid/schema'
/** name_stem(): also strip subtitle extensions, as lib/release fileStem does. */
export default class extends BaseSchema {
async up() {
this.defer(async (db) => {
await db.rawQuery(`
CREATE OR REPLACE FUNCTION name_stem(name text) RETURNS text IMMUTABLE LANGUAGE sql AS $$
SELECT regexp_replace(name,
'(\\.(part\\d+\\.rar|r\\d{2,3}|rar|vol\\d+[+-]\\d+\\.par2|par2|7z(\\.\\d{3})?|zip|\\d{3}|nfo|sfv|nzb|tar|zst|gz|xz|mkv|mp4|avi|m4v|ts|iso|img|flac|mp3|epub|pdf|jpg|png|srt|sub|idx|ass|ssa))+$',
'', 'i')
$$`)
})
}
async down() {}
}