0.12.0-9 Fix Jobs
This commit is contained in:
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ripster-backend",
|
"name": "ripster-backend",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ripster-backend",
|
"name": "ripster-backend",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"archiver": "^7.0.1",
|
"archiver": "^7.0.1",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ripster-backend",
|
"name": "ripster-backend",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -2968,7 +2968,7 @@ class HistoryService {
|
|||||||
`
|
`
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM jobs
|
FROM jobs
|
||||||
WHERE status IN ('RIPPING', 'ENCODING', 'CD_ANALYZING', 'CD_RIPPING', 'CD_ENCODING')
|
WHERE status IN ('ANALYZING', 'RIPPING', 'ENCODING', 'MEDIAINFO_CHECK', 'READY_TO_ENCODE', 'CD_ANALYZING', 'CD_READY_TO_RIP', 'CD_RIPPING', 'CD_ENCODING')
|
||||||
ORDER BY updated_at ASC, id ASC
|
ORDER BY updated_at ASC, id ASC
|
||||||
`
|
`
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -5065,10 +5065,12 @@ class PipelineService extends EventEmitter {
|
|||||||
'WAITING_FOR_USER_DECISION',
|
'WAITING_FOR_USER_DECISION',
|
||||||
'READY_TO_START',
|
'READY_TO_START',
|
||||||
'MEDIAINFO_CHECK',
|
'MEDIAINFO_CHECK',
|
||||||
'READY_TO_ENCODE',
|
// READY_TO_ENCODE intentionally excluded: user has confirmed encoding,
|
||||||
|
// a new analyze must not silently delete a queued encode job.
|
||||||
'CD_ANALYZING',
|
'CD_ANALYZING',
|
||||||
'CD_METADATA_SELECTION',
|
'CD_METADATA_SELECTION',
|
||||||
'CD_READY_TO_RIP',
|
// CD_READY_TO_RIP intentionally excluded: user has confirmed track
|
||||||
|
// selection, a new analyze must not discard that.
|
||||||
'ERROR',
|
'ERROR',
|
||||||
'CANCELLED'
|
'CANCELLED'
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -28,12 +28,21 @@ function transliterateForFilename(input) {
|
|||||||
|
|
||||||
function sanitizeFileName(input) {
|
function sanitizeFileName(input) {
|
||||||
return transliterateForFilename(String(input || 'untitled'))
|
return transliterateForFilename(String(input || 'untitled'))
|
||||||
.replace(/[\\/:*?"<>|]/g, '_')
|
.replace(/[^a-zA-Z0-9 ()[\]-]/g, '')
|
||||||
.replace(/\s+/g, ' ')
|
.replace(/\s+/g, ' ')
|
||||||
.trim()
|
.trim()
|
||||||
.slice(0, 180);
|
.slice(0, 180);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sanitizeFileNameWithExtension(input) {
|
||||||
|
const str = String(input || 'untitled');
|
||||||
|
const ext = path.extname(str);
|
||||||
|
const base = ext ? str.slice(0, -ext.length) : str;
|
||||||
|
const cleanBase = sanitizeFileName(base);
|
||||||
|
const cleanExt = ext.toLowerCase().replace(/[^a-z0-9.]/g, '');
|
||||||
|
return (cleanBase || 'untitled') + cleanExt;
|
||||||
|
}
|
||||||
|
|
||||||
function renderTemplate(template, values) {
|
function renderTemplate(template, values) {
|
||||||
return String(template || '${title} (${year})').replace(/\$\{([^}]+)\}/g, (_, key) => {
|
return String(template || '${title} (${year})').replace(/\$\{([^}]+)\}/g, (_, key) => {
|
||||||
const val = values[key.trim()];
|
const val = values[key.trim()];
|
||||||
@@ -86,6 +95,7 @@ module.exports = {
|
|||||||
ensureDir,
|
ensureDir,
|
||||||
transliterateForFilename,
|
transliterateForFilename,
|
||||||
sanitizeFileName,
|
sanitizeFileName,
|
||||||
|
sanitizeFileNameWithExtension,
|
||||||
renderTemplate,
|
renderTemplate,
|
||||||
findLargestMediaFile,
|
findLargestMediaFile,
|
||||||
findMediaFiles
|
findMediaFiles
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ripster-frontend",
|
"name": "ripster-frontend",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ripster-frontend",
|
"name": "ripster-frontend",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"primeicons": "^7.0.0",
|
"primeicons": "^7.0.0",
|
||||||
"primereact": "^10.9.2",
|
"primereact": "^10.9.2",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ripster-frontend",
|
"name": "ripster-frontend",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
+2
-2
@@ -868,6 +868,8 @@ Description=Ripster Backend API
|
|||||||
Documentation=https://github.com/your-repo/ripster
|
Documentation=https://github.com/your-repo/ripster
|
||||||
After=network.target
|
After=network.target
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
|
StartLimitIntervalSec=60
|
||||||
|
StartLimitBurst=3
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
@@ -877,8 +879,6 @@ WorkingDirectory=${INSTALL_DIR}/backend
|
|||||||
ExecStart=$(command -v node) src/index.js
|
ExecStart=$(command -v node) src/index.js
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
StartLimitIntervalSec=60
|
|
||||||
StartLimitBurst=3
|
|
||||||
|
|
||||||
# Umgebung
|
# Umgebung
|
||||||
Environment=NODE_ENV=production
|
Environment=NODE_ENV=production
|
||||||
|
|||||||
+2
-2
@@ -664,6 +664,8 @@ cat > /etc/systemd/system/ripster-backend.service <<EOF
|
|||||||
Description=Ripster Backend API
|
Description=Ripster Backend API
|
||||||
After=network.target
|
After=network.target
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
|
StartLimitIntervalSec=60
|
||||||
|
StartLimitBurst=3
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
@@ -673,8 +675,6 @@ WorkingDirectory=${INSTALL_DIR}/backend
|
|||||||
ExecStart=$(command -v node) src/index.js
|
ExecStart=$(command -v node) src/index.js
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
StartLimitIntervalSec=60
|
|
||||||
StartLimitBurst=3
|
|
||||||
|
|
||||||
Environment=NODE_ENV=production
|
Environment=NODE_ENV=production
|
||||||
Environment=HOME=${SERVICE_HOME}
|
Environment=HOME=${SERVICE_HOME}
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ripster",
|
"name": "ripster",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ripster",
|
"name": "ripster",
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"concurrently": "^9.1.2"
|
"concurrently": "^9.1.2"
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ripster",
|
"name": "ripster",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.12.0-8",
|
"version": "0.12.0-9",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"",
|
"dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"",
|
||||||
"dev:backend": "npm run dev --prefix backend",
|
"dev:backend": "npm run dev --prefix backend",
|
||||||
|
|||||||
Reference in New Issue
Block a user