Compare commits

..

1 Commits

Author SHA1 Message Date
Tzahi12345
9e481bbd5f Fixed issue where twitch chat downloader could not be found in docker 2023-05-11 02:27:35 -04:00
134 changed files with 160 additions and 149 deletions

View File

@@ -2742,7 +2742,7 @@ components:
error: error:
type: string type: string
schedule: schedule:
$ref: '#/components/schemas/Schedule' type: object
options: options:
type: object type: object
Schedule: Schedule:
@@ -2877,7 +2877,6 @@ components:
- sharing - sharing
- advanced_download - advanced_download
- downloads_manager - downloads_manager
- tasks_manager
YesNo: YesNo:
type: string type: string
enum: enum:

View File

@@ -68,7 +68,15 @@ exports.initialize = function () {
const setupRoles = async () => { const setupRoles = async () => {
const required_roles = { const required_roles = {
admin: { admin: {
permissions: consts.AVAILABLE_PERMISSIONS permissions: [
'filemanager',
'settings',
'subscriptions',
'sharing',
'advanced_download',
'downloads_manager',
'tasks_manager'
]
}, },
user: { user: {
permissions: [ permissions: [

View File

@@ -769,6 +769,11 @@
"delayed-stream": "~1.0.0" "delayed-stream": "~1.0.0"
} }
}, },
"command-exists": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
"integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
},
"compress-commons": { "compress-commons": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",

View File

@@ -30,6 +30,7 @@
"async-mutex": "^0.4.0", "async-mutex": "^0.4.0",
"axios": "^0.21.2", "axios": "^0.21.2",
"bcryptjs": "^2.4.0", "bcryptjs": "^2.4.0",
"command-exists": "^1.2.9",
"compression": "^1.7.4", "compression": "^1.7.4",
"config": "^3.2.3", "config": "^3.2.3",
"express": "^4.18.2", "express": "^4.18.2",

View File

@@ -6,6 +6,7 @@ const fs = require('fs-extra')
const path = require('path'); const path = require('path');
const { promisify } = require('util'); const { promisify } = require('util');
const child_process = require('child_process'); const child_process = require('child_process');
const commandExistsSync = require('command-exists').sync;
async function getCommentsForVOD(vodId) { async function getCommentsForVOD(vodId) {
const exec = promisify(child_process.exec); const exec = promisify(child_process.exec);
@@ -20,7 +21,7 @@ async function getCommentsForVOD(vodId) {
const cliExt = is_windows ? '.exe' : '' const cliExt = is_windows ? '.exe' : ''
const cliPath = `TwitchDownloaderCLI${cliExt}` const cliPath = `TwitchDownloaderCLI${cliExt}`
if (!fs.existsSync(cliPath)) { if (!commandExistsSync(cliPath)) {
logger.error(`${cliPath} does not exist. Twitch chat download failed! Get it here: https://github.com/lay295/TwitchDownloader`); logger.error(`${cliPath} does not exist. Twitch chat download failed! Get it here: https://github.com/lay295/TwitchDownloader`);
return null; return null;
} }

View File

@@ -3,5 +3,5 @@
/* eslint-disable */ /* eslint-disable */
export type Config = { export type Config = {
YoutubeDLMaterial: Record<string, any>; YoutubeDLMaterial: any;
}; };

View File

@@ -26,5 +26,5 @@ export type Download = {
user_uid?: string; user_uid?: string;
sub_id?: string; sub_id?: string;
sub_name?: string; sub_name?: string;
prefetched_info?: Record<string, any>; prefetched_info?: any;
}; };

View File

@@ -5,6 +5,6 @@
export type GetFileFormatsResponse = { export type GetFileFormatsResponse = {
success: boolean; success: boolean;
result: { result: {
formats?: Array<Record<string, any>>; formats?: Array<any>;
}; };
}; };

View File

@@ -6,5 +6,5 @@ import type { Subscription } from './Subscription';
export type GetSubscriptionResponse = { export type GetSubscriptionResponse = {
subscription: Subscription; subscription: Subscription;
files: Array<Record<string, any>>; files: Array<any>;
}; };

View File

@@ -11,6 +11,6 @@ export type Notification = {
user_uid?: string; user_uid?: string;
action?: Array<NotificationAction>; action?: Array<NotificationAction>;
read: boolean; read: boolean;
data?: Record<string, any>; data?: any;
timestamp: number; timestamp: number;
}; };

View File

@@ -15,5 +15,5 @@ export type Subscription = {
timerange?: string; timerange?: string;
custom_args?: string; custom_args?: string;
custom_output?: string; custom_output?: string;
videos: Array<Record<string, any>>; videos: Array<any>;
}; };

View File

@@ -2,8 +2,6 @@
/* tslint:disable */ /* tslint:disable */
/* eslint-disable */ /* eslint-disable */
import type { Schedule } from './Schedule';
export type Task = { export type Task = {
key: string; key: string;
title?: string; title?: string;
@@ -11,8 +9,8 @@ export type Task = {
last_confirmed: number; last_confirmed: number;
running: boolean; running: boolean;
confirming: boolean; confirming: boolean;
data: Record<string, any>; data: any;
error: string; error: string;
schedule: Schedule; schedule: any;
options?: Record<string, any>; options?: any;
}; };

View File

@@ -10,5 +10,5 @@ export type UpdateFileRequest = {
/** /**
* Object with fields to update as keys and their new values * Object with fields to update as keys and their new values
*/ */
change_obj: Record<string, any>; change_obj: any;
}; };

View File

@@ -4,5 +4,5 @@
export type UpdateTaskDataRequest = { export type UpdateTaskDataRequest = {
task_key: string; task_key: string;
new_data: Record<string, any>; new_data: any;
}; };

View File

@@ -4,5 +4,5 @@
export type UpdateTaskOptionsRequest = { export type UpdateTaskOptionsRequest = {
task_key: string; task_key: string;
new_options: Record<string, any>; new_options: any;
}; };

View File

@@ -9,5 +9,4 @@ export enum UserPermission {
SHARING = 'sharing', SHARING = 'sharing',
ADVANCED_DOWNLOAD = 'advanced_download', ADVANCED_DOWNLOAD = 'advanced_download',
DOWNLOADS_MANAGER = 'downloads_manager', DOWNLOADS_MANAGER = 'downloads_manager',
TASKS_MANAGER = 'tasks_manager',
} }

View File

@@ -84,8 +84,8 @@ export class AppComponent implements OnInit, AfterViewInit {
this.postsService.open_create_default_admin_dialog.subscribe(open => { this.postsService.open_create_default_admin_dialog.subscribe(open => {
if (open) { if (open) {
const dialogRef = this.dialog.open(SetDefaultAdminDialogComponent); const dialogRef = this.dialog.open(SetDefaultAdminDialogComponent);
dialogRef.afterClosed().subscribe(res => { dialogRef.afterClosed().subscribe(success => {
if (!res || !res['user']) { if (success) {
if (this.router.url !== '/login') { this.router.navigate(['/login']); } if (this.router.url !== '/login') { this.router.navigate(['/login']); }
} else { } else {
console.error('Failed to create default admin account. See logs for details.'); console.error('Failed to create default admin account. See logs for details.');

View File

@@ -734,7 +734,7 @@ export class PostsService implements CanActivate {
this.afterLogin(res['user'], res['token'], res['permissions'], res['available_permissions']); this.afterLogin(res['user'], res['token'], res['permissions'], res['available_permissions']);
} }
}, err => { }, err => {
if (err === 'Unauthorized') { if (err.status === 401) {
this.sendToLogin(); this.sendToLogin();
this.token = null; this.token = null;
this.resetHttpParams(); this.resetHttpParams();