mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-03-07 12:00:01 +03:00
Added missing routes to API
Changed getDBInfo from post to get request
This commit is contained in:
@@ -33,6 +33,27 @@ paths:
|
||||
description: Server download error
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/generateArgs:
|
||||
post:
|
||||
tags:
|
||||
- downloader
|
||||
summary: Download video file
|
||||
description: Generates args, used for checking what args would run if you ran downloadFile
|
||||
operationId: post-generateArgs
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DownloadRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GenerateArgsResponse'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/getMp3s:
|
||||
get:
|
||||
tags:
|
||||
@@ -148,6 +169,27 @@ paths:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/incrementViewCount:
|
||||
post:
|
||||
summary: Increments a file's view count
|
||||
tags:
|
||||
- files
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/IncrementViewCountRequest'
|
||||
operationId: post-api-incrementViewCount
|
||||
description: Increments a file's view count
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/subscribe:
|
||||
post:
|
||||
tags:
|
||||
@@ -359,6 +401,27 @@ paths:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/addFileToPlaylist:
|
||||
post:
|
||||
tags:
|
||||
- playlists
|
||||
summary: Adds a file to a playlist
|
||||
description: Adds a file to a playlist
|
||||
operationId: post-api-addFileToPlaylist
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/AddFileToPlaylistRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/deleteMp4:
|
||||
post:
|
||||
tags:
|
||||
@@ -487,48 +550,6 @@ paths:
|
||||
$ref: '#/components/schemas/inline_response_200_15'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/checkPin:
|
||||
post:
|
||||
tags:
|
||||
- security
|
||||
summary: Check if pin is correct
|
||||
description: Checks the pin against an inputted one. Will return true if they match
|
||||
operationId: post-api-checkPin
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/body_19'
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/setPin:
|
||||
post:
|
||||
tags:
|
||||
- security
|
||||
summary: Set pin
|
||||
operationId: post-api-setPin
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/body_20'
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
description: ''
|
||||
/api/generateNewAPIKey:
|
||||
post:
|
||||
tags:
|
||||
@@ -604,7 +625,7 @@ paths:
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/downloads:
|
||||
get:
|
||||
post:
|
||||
summary: Get info for all downloads
|
||||
tags:
|
||||
- downloader
|
||||
@@ -615,7 +636,12 @@ paths:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetAllDownloadsResponse'
|
||||
operationId: get-api-downloads
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetAllDownloadsRequest'
|
||||
operationId: post-api-downloads
|
||||
description: Retrieves all downloads recorded by the server and their status.
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
@@ -799,6 +825,299 @@ paths:
|
||||
- Auth query parameter: []
|
||||
tags:
|
||||
- multi-user mode
|
||||
/api/versionInfo:
|
||||
get:
|
||||
tags:
|
||||
- server
|
||||
summary: Gets server version info
|
||||
operationId: get-api-versionInfo
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/VersionInfoResponse'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/getLogs:
|
||||
post:
|
||||
summary: Gets logs from server
|
||||
tags:
|
||||
- server
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetLogsResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetLogsRequest'
|
||||
operationId: post-api-getLogs
|
||||
description: Gets logs from server
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/clearAllLogs:
|
||||
post:
|
||||
summary: Clears the log file
|
||||
tags:
|
||||
- server
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
operationId: post-api-clearAllLogs
|
||||
description: Clears the log file
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/getDBInfo:
|
||||
get:
|
||||
tags:
|
||||
- db
|
||||
summary: Gets information on the DB
|
||||
operationId: get-api-getDBInfo
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DBInfoResponse'
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/transferDB:
|
||||
post:
|
||||
summary: Transfers DB between Local and MongoDB
|
||||
tags:
|
||||
- db
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TransferDBResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TransferDBRequest'
|
||||
operationId: post-api-transferDB
|
||||
description: Initiates a transfer between Local and MongoDB. Connection string must be set.
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/testConnectionString:
|
||||
post:
|
||||
summary: Tests a MongoDB connection string
|
||||
tags:
|
||||
- db
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TestConnectionStringResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TestConnectionStringRequest'
|
||||
operationId: post-api-testConnectionString
|
||||
description: Tests a MongoDB connection string and returns an error if one exists.
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/getFullTwitchChat:
|
||||
post:
|
||||
summary: Gets the downloaded Twitch Chat (VODs only)
|
||||
tags:
|
||||
- twitch
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetFullTwitchChatResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetFullTwitchChatRequest'
|
||||
operationId: post-api-getFullTwitchChat
|
||||
description: Gets the downloaded Twitch Chat (VODs only)
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/downloadTwitchChatByVODID:
|
||||
post:
|
||||
summary: Downloads Twitch Chat for a VOD
|
||||
tags:
|
||||
- twitch
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DownloadTwitchChatByVODIDResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DownloadTwitchChatByVODIDRequest'
|
||||
operationId: post-api-downloadTwitchChatByVODID
|
||||
description: Downloads Twitch Chat for a VOD
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/checkConcurrentStream:
|
||||
post:
|
||||
summary: Checks status of a concurrent stream
|
||||
tags:
|
||||
- player
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CheckConcurrentStreamResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CheckConcurrentStreamRequest'
|
||||
operationId: post-api-checkConcurrentStream
|
||||
description: Checks status of a concurrent stream
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/updateConcurrentStream:
|
||||
post:
|
||||
summary: Updates a concurrent stream
|
||||
tags:
|
||||
- player
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateConcurrentStreamResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateConcurrentStreamRequest'
|
||||
operationId: post-api-updateConcurrentStream
|
||||
description: Updates a concurrent stream
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/getAllCategories:
|
||||
post:
|
||||
summary: Gets all categories
|
||||
tags:
|
||||
- categories
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GetAllCategoriesResponse'
|
||||
operationId: post-api-getAllCategories
|
||||
description: Gets all categories
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/createCategory:
|
||||
post:
|
||||
summary: Creates a category
|
||||
tags:
|
||||
- categories
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CreateCategoryResponse'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CreateCategoryRequest'
|
||||
operationId: post-api-createCategory
|
||||
description: Creates a category
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/deleteCategory:
|
||||
post:
|
||||
summary: Deletes a category
|
||||
tags:
|
||||
- categories
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DeleteCategoryRequest'
|
||||
operationId: post-api-deleteCategory
|
||||
description: Deletes a category
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/updateCategory:
|
||||
post:
|
||||
summary: Updates a category
|
||||
tags:
|
||||
- categories
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateCategoryRequest'
|
||||
operationId: post-api-updateCategory
|
||||
description: Updates a category
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
/api/updateCategories:
|
||||
post:
|
||||
summary: Updates all categories
|
||||
tags:
|
||||
- categories
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SuccessObject'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateCategoriesRequest'
|
||||
operationId: post-api-updateCategories
|
||||
description: Updates all categories
|
||||
security:
|
||||
- Auth query parameter: []
|
||||
components:
|
||||
schemas:
|
||||
SuccessObject:
|
||||
@@ -874,6 +1193,13 @@ components:
|
||||
download:
|
||||
$ref: '#/components/schemas/Download'
|
||||
nullable: true
|
||||
GenerateArgsResponse:
|
||||
type: object
|
||||
properties:
|
||||
args:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
GetDownloadRequest:
|
||||
type: object
|
||||
properties:
|
||||
@@ -887,6 +1213,15 @@ components:
|
||||
download:
|
||||
$ref: '#/components/schemas/Download'
|
||||
nullable: true
|
||||
GetAllDownloadsRequest:
|
||||
type: object
|
||||
properties:
|
||||
uids:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: Filters downloads with the array
|
||||
nullable: true
|
||||
GetAllDownloadsResponse:
|
||||
type: object
|
||||
properties:
|
||||
@@ -1159,8 +1494,6 @@ components:
|
||||
type:
|
||||
$ref: '#/components/schemas/FileType'
|
||||
DownloadFileRequest:
|
||||
required:
|
||||
- uid
|
||||
type: object
|
||||
properties:
|
||||
uid:
|
||||
@@ -1169,9 +1502,8 @@ components:
|
||||
type: string
|
||||
sub_id:
|
||||
type: string
|
||||
is_playlist:
|
||||
type: boolean
|
||||
description: Only used for subscriptions
|
||||
playlist_id:
|
||||
type: string
|
||||
DownloadArchiveRequest:
|
||||
required:
|
||||
- sub
|
||||
@@ -1203,6 +1535,264 @@ components:
|
||||
properties:
|
||||
tag:
|
||||
type: string
|
||||
DBInfoResponse:
|
||||
required:
|
||||
- db_info
|
||||
type: object
|
||||
properties:
|
||||
using_local_db:
|
||||
type: boolean
|
||||
stats_by_table:
|
||||
type: object
|
||||
properties:
|
||||
files:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
playlists:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
categories:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
subscriptions:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
users:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
roles:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
download_queue:
|
||||
$ref: '#/components/schemas/TableInfo'
|
||||
TransferDBResponse:
|
||||
required:
|
||||
- success
|
||||
type: object
|
||||
properties:
|
||||
success:
|
||||
type: boolean
|
||||
error:
|
||||
type: string
|
||||
TransferDBRequest:
|
||||
required:
|
||||
- local_to_remote
|
||||
type: object
|
||||
properties:
|
||||
local_to_remote:
|
||||
description: True if transfering DB from Local to MongoDB, false if transferring DB from MongoDB to Local
|
||||
type: boolean
|
||||
TestConnectionStringResponse:
|
||||
required:
|
||||
- success
|
||||
type: object
|
||||
properties:
|
||||
success:
|
||||
type: boolean
|
||||
error:
|
||||
type: string
|
||||
TestConnectionStringRequest:
|
||||
required:
|
||||
- connection_string
|
||||
type: object
|
||||
properties:
|
||||
connection_string:
|
||||
description: MongoDB connection string
|
||||
type: string
|
||||
GetFullTwitchChatResponse:
|
||||
required:
|
||||
- success
|
||||
type: object
|
||||
properties:
|
||||
success:
|
||||
type: boolean
|
||||
error:
|
||||
type: string
|
||||
GetFullTwitchChatRequest:
|
||||
required:
|
||||
- id
|
||||
- type
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
description: File ID
|
||||
type: string
|
||||
type:
|
||||
$ref: '#/components/schemas/FileType'
|
||||
uuid:
|
||||
description: User UID
|
||||
type: string
|
||||
sub:
|
||||
description: Subscription
|
||||
$ref: '#/components/schemas/Subscription'
|
||||
DownloadTwitchChatByVODIDResponse:
|
||||
required:
|
||||
- chat
|
||||
type: object
|
||||
properties:
|
||||
chat:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/TwitchChatMessage'
|
||||
DownloadTwitchChatByVODIDRequest:
|
||||
required:
|
||||
- id
|
||||
- type
|
||||
- vodId
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
description: File ID
|
||||
type: string
|
||||
vodId:
|
||||
description: ID of the VOD
|
||||
type: string
|
||||
type:
|
||||
$ref: '#/components/schemas/FileType'
|
||||
uuid:
|
||||
description: User UID
|
||||
type: string
|
||||
sub:
|
||||
description: Subscription
|
||||
$ref: '#/components/schemas/Subscription'
|
||||
CheckConcurrentStreamResponse:
|
||||
required:
|
||||
- stream
|
||||
type: object
|
||||
properties:
|
||||
stream:
|
||||
$ref: '#/components/schemas/ConcurrentStream'
|
||||
CheckConcurrentStreamRequest:
|
||||
required:
|
||||
- uid
|
||||
type: object
|
||||
properties:
|
||||
uid:
|
||||
description: UID of the concurrent stream
|
||||
type: string
|
||||
UpdateConcurrentStreamResponse:
|
||||
required:
|
||||
- stream
|
||||
type: object
|
||||
properties:
|
||||
stream:
|
||||
$ref: '#/components/schemas/ConcurrentStream'
|
||||
UpdateConcurrentStreamRequest:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/ConcurrentStream'
|
||||
- type: object
|
||||
properties:
|
||||
uid:
|
||||
type: string
|
||||
description: Concurrent stream UID
|
||||
required:
|
||||
- uid
|
||||
GetLogsResponse:
|
||||
type: object
|
||||
properties:
|
||||
logs:
|
||||
type: string
|
||||
description: Number of lines to retrieve from the bottom
|
||||
success:
|
||||
type: boolean
|
||||
GetLogsRequest:
|
||||
required:
|
||||
- connection_string
|
||||
type: object
|
||||
properties:
|
||||
lines:
|
||||
type: number
|
||||
GetFileFormatsRequest:
|
||||
type: object
|
||||
properties:
|
||||
url:
|
||||
type: string
|
||||
GetFileFormatsResponse:
|
||||
required:
|
||||
- result
|
||||
- success
|
||||
type: object
|
||||
properties:
|
||||
success:
|
||||
type: boolean
|
||||
result:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/file'
|
||||
- type: object
|
||||
properties:
|
||||
formats:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
IncrementViewCountRequest:
|
||||
required:
|
||||
- file_uid
|
||||
type: object
|
||||
properties:
|
||||
file_uid:
|
||||
type: string
|
||||
sub_id:
|
||||
type: string
|
||||
uuid:
|
||||
type: string
|
||||
description: User UID
|
||||
AddFileToPlaylistRequest:
|
||||
required:
|
||||
- playlist_id
|
||||
- file_uid
|
||||
type: object
|
||||
properties:
|
||||
file_uid:
|
||||
type: string
|
||||
playlist_id:
|
||||
type: string
|
||||
GetAllCategoriesResponse:
|
||||
required:
|
||||
- categories
|
||||
type: object
|
||||
properties:
|
||||
categories:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Category'
|
||||
CreateCategoryResponse:
|
||||
type: object
|
||||
properties:
|
||||
new_category:
|
||||
$ref: '#/components/schemas/Category'
|
||||
success:
|
||||
type: boolean
|
||||
CreateCategoryRequest:
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
DeleteCategoryRequest:
|
||||
required:
|
||||
- category_uid
|
||||
type: object
|
||||
properties:
|
||||
category_uid:
|
||||
type: string
|
||||
UpdateCategoryRequest:
|
||||
required:
|
||||
- category
|
||||
type: object
|
||||
properties:
|
||||
category:
|
||||
$ref: '#/components/schemas/Category'
|
||||
UpdateCategoriesRequest:
|
||||
required:
|
||||
- categories
|
||||
type: object
|
||||
properties:
|
||||
categories:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Category'
|
||||
VersionInfoResponse:
|
||||
required:
|
||||
- version_info
|
||||
type: object
|
||||
properties:
|
||||
version_info:
|
||||
$ref: '#/components/schemas/Version'
|
||||
inline_response_200_15:
|
||||
required:
|
||||
- is_set
|
||||
@@ -1495,6 +2085,83 @@ components:
|
||||
enum:
|
||||
- 'yes'
|
||||
- 'no'
|
||||
TableInfo:
|
||||
type: object
|
||||
properties:
|
||||
records_count:
|
||||
type: number
|
||||
TwitchChatMessage:
|
||||
type: object
|
||||
properties:
|
||||
created_at:
|
||||
type: string
|
||||
content_offset_seconds:
|
||||
type: number
|
||||
commenter:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
_id:
|
||||
type: string
|
||||
created_at:
|
||||
type: string
|
||||
message:
|
||||
type: object
|
||||
properties:
|
||||
body:
|
||||
type: string
|
||||
user_color:
|
||||
type: string
|
||||
ConcurrentStream:
|
||||
type: object
|
||||
properties:
|
||||
playback_timestamp:
|
||||
type: number
|
||||
unix_timestamp:
|
||||
type: number
|
||||
playing:
|
||||
type: boolean
|
||||
Category:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
uid:
|
||||
type: string
|
||||
rules:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/CategoryRule'
|
||||
custom_output:
|
||||
type: string
|
||||
description: Overrides file output for downloaded files in category
|
||||
CategoryRule:
|
||||
type: object
|
||||
properties:
|
||||
preceding_operator:
|
||||
type: string
|
||||
enum:
|
||||
- 'or'
|
||||
- 'and'
|
||||
comparator:
|
||||
type: string
|
||||
enum:
|
||||
- 'includes'
|
||||
- 'not_includes'
|
||||
- 'equals'
|
||||
- 'not_equals'
|
||||
Version:
|
||||
type: object
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
tag:
|
||||
type: string
|
||||
commit:
|
||||
type: string
|
||||
date:
|
||||
type: string
|
||||
BaseChangePermissionsRequest:
|
||||
required:
|
||||
- permission
|
||||
|
||||
@@ -950,7 +950,7 @@ app.post('/api/restartServer', optionalJwt, (req, res) => {
|
||||
res.send({success: true});
|
||||
});
|
||||
|
||||
app.post('/api/getDBInfo', optionalJwt, async (req, res) => {
|
||||
app.get('/api/getDBInfo', optionalJwt, async (req, res) => {
|
||||
const db_info = await db_api.getDBStats();
|
||||
res.send({db_info: db_info});
|
||||
});
|
||||
|
||||
7
package-lock.json
generated
7
package-lock.json
generated
@@ -13767,6 +13767,13 @@
|
||||
"integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.14.2",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz",
|
||||
"integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"unicode-canonical-property-names-ecmascript": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
|
||||
|
||||
@@ -2,17 +2,27 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type { AddFileToPlaylistRequest } from './models/AddFileToPlaylistRequest';
|
||||
export type { BaseChangePermissionsRequest } from './models/BaseChangePermissionsRequest';
|
||||
export type { body_19 } from './models/body_19';
|
||||
export type { body_20 } from './models/body_20';
|
||||
export type { Category } from './models/Category';
|
||||
export { CategoryRule } from './models/CategoryRule';
|
||||
export type { ChangeRolePermissionsRequest } from './models/ChangeRolePermissionsRequest';
|
||||
export type { ChangeUserPermissionsRequest } from './models/ChangeUserPermissionsRequest';
|
||||
export type { CheckConcurrentStreamRequest } from './models/CheckConcurrentStreamRequest';
|
||||
export type { CheckConcurrentStreamResponse } from './models/CheckConcurrentStreamResponse';
|
||||
export type { ConcurrentStream } from './models/ConcurrentStream';
|
||||
export type { Config } from './models/Config';
|
||||
export type { ConfigResponse } from './models/ConfigResponse';
|
||||
export type { CreateCategoryRequest } from './models/CreateCategoryRequest';
|
||||
export type { CreateCategoryResponse } from './models/CreateCategoryResponse';
|
||||
export type { CreatePlaylistRequest } from './models/CreatePlaylistRequest';
|
||||
export type { CreatePlaylistResponse } from './models/CreatePlaylistResponse';
|
||||
export type { CropFileSettings } from './models/CropFileSettings';
|
||||
export type { DatabaseFile } from './models/DatabaseFile';
|
||||
export type { DBInfoResponse } from './models/DBInfoResponse';
|
||||
export type { DeleteCategoryRequest } from './models/DeleteCategoryRequest';
|
||||
export type { DeleteMp3Mp4Request } from './models/DeleteMp3Mp4Request';
|
||||
export type { DeletePlaylistRequest } from './models/DeletePlaylistRequest';
|
||||
export type { DeleteSubscriptionFileRequest } from './models/DeleteSubscriptionFileRequest';
|
||||
@@ -22,17 +32,28 @@ export type { DownloadArchiveRequest } from './models/DownloadArchiveRequest';
|
||||
export type { DownloadFileRequest } from './models/DownloadFileRequest';
|
||||
export type { DownloadRequest } from './models/DownloadRequest';
|
||||
export type { DownloadResponse } from './models/DownloadResponse';
|
||||
export type { DownloadTwitchChatByVODIDRequest } from './models/DownloadTwitchChatByVODIDRequest';
|
||||
export type { DownloadTwitchChatByVODIDResponse } from './models/DownloadTwitchChatByVODIDResponse';
|
||||
export type { DownloadVideosForSubscriptionRequest } from './models/DownloadVideosForSubscriptionRequest';
|
||||
export type { File } from './models/File';
|
||||
export { FileType } from './models/FileType';
|
||||
export type { GenerateArgsResponse } from './models/GenerateArgsResponse';
|
||||
export type { GenerateNewApiKeyResponse } from './models/GenerateNewApiKeyResponse';
|
||||
export type { GetAllCategoriesResponse } from './models/GetAllCategoriesResponse';
|
||||
export type { GetAllDownloadsRequest } from './models/GetAllDownloadsRequest';
|
||||
export type { GetAllDownloadsResponse } from './models/GetAllDownloadsResponse';
|
||||
export type { GetAllFilesResponse } from './models/GetAllFilesResponse';
|
||||
export type { GetAllSubscriptionsResponse } from './models/GetAllSubscriptionsResponse';
|
||||
export type { GetDownloadRequest } from './models/GetDownloadRequest';
|
||||
export type { GetDownloadResponse } from './models/GetDownloadResponse';
|
||||
export type { GetFileFormatsRequest } from './models/GetFileFormatsRequest';
|
||||
export type { GetFileFormatsResponse } from './models/GetFileFormatsResponse';
|
||||
export type { GetFileRequest } from './models/GetFileRequest';
|
||||
export type { GetFileResponse } from './models/GetFileResponse';
|
||||
export type { GetFullTwitchChatRequest } from './models/GetFullTwitchChatRequest';
|
||||
export type { GetFullTwitchChatResponse } from './models/GetFullTwitchChatResponse';
|
||||
export type { GetLogsRequest } from './models/GetLogsRequest';
|
||||
export type { GetLogsResponse } from './models/GetLogsResponse';
|
||||
export type { GetMp3sResponse } from './models/GetMp3sResponse';
|
||||
export type { GetMp4sResponse } from './models/GetMp4sResponse';
|
||||
export type { GetPlaylistRequest } from './models/GetPlaylistRequest';
|
||||
@@ -43,6 +64,7 @@ export type { GetRolesResponse } from './models/GetRolesResponse';
|
||||
export type { GetSubscriptionRequest } from './models/GetSubscriptionRequest';
|
||||
export type { GetSubscriptionResponse } from './models/GetSubscriptionResponse';
|
||||
export type { GetUsersResponse } from './models/GetUsersResponse';
|
||||
export type { IncrementViewCountRequest } from './models/IncrementViewCountRequest';
|
||||
export type { inline_response_200_15 } from './models/inline_response_200_15';
|
||||
export type { LoginRequest } from './models/LoginRequest';
|
||||
export type { LoginResponse } from './models/LoginResponse';
|
||||
@@ -56,12 +78,24 @@ export type { SubscribeResponse } from './models/SubscribeResponse';
|
||||
export type { Subscription } from './models/Subscription';
|
||||
export type { SubscriptionRequestData } from './models/SubscriptionRequestData';
|
||||
export type { SuccessObject } from './models/SuccessObject';
|
||||
export type { TableInfo } from './models/TableInfo';
|
||||
export type { TestConnectionStringRequest } from './models/TestConnectionStringRequest';
|
||||
export type { TestConnectionStringResponse } from './models/TestConnectionStringResponse';
|
||||
export type { TransferDBRequest } from './models/TransferDBRequest';
|
||||
export type { TransferDBResponse } from './models/TransferDBResponse';
|
||||
export type { TwitchChatMessage } from './models/TwitchChatMessage';
|
||||
export type { UnsubscribeRequest } from './models/UnsubscribeRequest';
|
||||
export type { UnsubscribeResponse } from './models/UnsubscribeResponse';
|
||||
export type { UpdateCategoriesRequest } from './models/UpdateCategoriesRequest';
|
||||
export type { UpdateCategoryRequest } from './models/UpdateCategoryRequest';
|
||||
export type { UpdateConcurrentStreamRequest } from './models/UpdateConcurrentStreamRequest';
|
||||
export type { UpdateConcurrentStreamResponse } from './models/UpdateConcurrentStreamResponse';
|
||||
export type { UpdatePlaylistRequest } from './models/UpdatePlaylistRequest';
|
||||
export type { UpdaterStatus } from './models/UpdaterStatus';
|
||||
export type { UpdateServerRequest } from './models/UpdateServerRequest';
|
||||
export type { UpdateUserRequest } from './models/UpdateUserRequest';
|
||||
export type { User } from './models/User';
|
||||
export { UserPermission } from './models/UserPermission';
|
||||
export type { Version } from './models/Version';
|
||||
export type { VersionInfoResponse } from './models/VersionInfoResponse';
|
||||
export { YesNo } from './models/YesNo';
|
||||
|
||||
9
src/api-types/models/AddFileToPlaylistRequest.ts
Normal file
9
src/api-types/models/AddFileToPlaylistRequest.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface AddFileToPlaylistRequest {
|
||||
file_uid: string;
|
||||
playlist_id: string;
|
||||
}
|
||||
15
src/api-types/models/Category.ts
Normal file
15
src/api-types/models/Category.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { CategoryRule } from './CategoryRule';
|
||||
|
||||
export interface Category {
|
||||
name?: string;
|
||||
uid?: string;
|
||||
rules?: Array<CategoryRule>;
|
||||
/**
|
||||
* Overrides file output for downloaded files in category
|
||||
*/
|
||||
custom_output?: string;
|
||||
}
|
||||
26
src/api-types/models/CategoryRule.ts
Normal file
26
src/api-types/models/CategoryRule.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface CategoryRule {
|
||||
preceding_operator?: CategoryRule.preceding_operator;
|
||||
comparator?: CategoryRule.comparator;
|
||||
}
|
||||
|
||||
export namespace CategoryRule {
|
||||
|
||||
export enum preceding_operator {
|
||||
OR = 'or',
|
||||
AND = 'and',
|
||||
}
|
||||
|
||||
export enum comparator {
|
||||
INCLUDES = 'includes',
|
||||
NOT_INCLUDES = 'not_includes',
|
||||
EQUALS = 'equals',
|
||||
NOT_EQUALS = 'not_equals',
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
11
src/api-types/models/CheckConcurrentStreamRequest.ts
Normal file
11
src/api-types/models/CheckConcurrentStreamRequest.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface CheckConcurrentStreamRequest {
|
||||
/**
|
||||
* UID of the concurrent stream
|
||||
*/
|
||||
uid: string;
|
||||
}
|
||||
9
src/api-types/models/CheckConcurrentStreamResponse.ts
Normal file
9
src/api-types/models/CheckConcurrentStreamResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { ConcurrentStream } from './ConcurrentStream';
|
||||
|
||||
export interface CheckConcurrentStreamResponse {
|
||||
stream: ConcurrentStream;
|
||||
}
|
||||
10
src/api-types/models/ConcurrentStream.ts
Normal file
10
src/api-types/models/ConcurrentStream.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface ConcurrentStream {
|
||||
playback_timestamp?: number;
|
||||
unix_timestamp?: number;
|
||||
playing?: boolean;
|
||||
}
|
||||
8
src/api-types/models/CreateCategoryRequest.ts
Normal file
8
src/api-types/models/CreateCategoryRequest.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface CreateCategoryRequest {
|
||||
name: string;
|
||||
}
|
||||
10
src/api-types/models/CreateCategoryResponse.ts
Normal file
10
src/api-types/models/CreateCategoryResponse.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Category } from './Category';
|
||||
|
||||
export interface CreateCategoryResponse {
|
||||
new_category?: Category;
|
||||
success?: boolean;
|
||||
}
|
||||
18
src/api-types/models/DBInfoResponse.ts
Normal file
18
src/api-types/models/DBInfoResponse.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { TableInfo } from './TableInfo';
|
||||
|
||||
export interface DBInfoResponse {
|
||||
using_local_db?: boolean;
|
||||
stats_by_table?: {
|
||||
files?: TableInfo,
|
||||
playlists?: TableInfo,
|
||||
categories?: TableInfo,
|
||||
subscriptions?: TableInfo,
|
||||
users?: TableInfo,
|
||||
roles?: TableInfo,
|
||||
download_queue?: TableInfo,
|
||||
};
|
||||
}
|
||||
8
src/api-types/models/DeleteCategoryRequest.ts
Normal file
8
src/api-types/models/DeleteCategoryRequest.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface DeleteCategoryRequest {
|
||||
category_uid: string;
|
||||
}
|
||||
@@ -4,11 +4,8 @@
|
||||
|
||||
|
||||
export interface DownloadFileRequest {
|
||||
uid: string;
|
||||
uid?: string;
|
||||
uuid?: string;
|
||||
sub_id?: string;
|
||||
/**
|
||||
* Only used for subscriptions
|
||||
*/
|
||||
is_playlist?: boolean;
|
||||
playlist_id?: string;
|
||||
}
|
||||
26
src/api-types/models/DownloadTwitchChatByVODIDRequest.ts
Normal file
26
src/api-types/models/DownloadTwitchChatByVODIDRequest.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { FileType } from './FileType';
|
||||
import { Subscription } from './Subscription';
|
||||
|
||||
export interface DownloadTwitchChatByVODIDRequest {
|
||||
/**
|
||||
* File ID
|
||||
*/
|
||||
id: string;
|
||||
/**
|
||||
* ID of the VOD
|
||||
*/
|
||||
vodId: string;
|
||||
type: FileType;
|
||||
/**
|
||||
* User UID
|
||||
*/
|
||||
uuid?: string;
|
||||
/**
|
||||
* Subscription
|
||||
*/
|
||||
sub?: Subscription;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { TwitchChatMessage } from './TwitchChatMessage';
|
||||
|
||||
export interface DownloadTwitchChatByVODIDResponse {
|
||||
chat: Array<TwitchChatMessage>;
|
||||
}
|
||||
8
src/api-types/models/GenerateArgsResponse.ts
Normal file
8
src/api-types/models/GenerateArgsResponse.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface GenerateArgsResponse {
|
||||
args?: Array<string>;
|
||||
}
|
||||
9
src/api-types/models/GetAllCategoriesResponse.ts
Normal file
9
src/api-types/models/GetAllCategoriesResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Category } from './Category';
|
||||
|
||||
export interface GetAllCategoriesResponse {
|
||||
categories: Array<Category>;
|
||||
}
|
||||
11
src/api-types/models/GetAllDownloadsRequest.ts
Normal file
11
src/api-types/models/GetAllDownloadsRequest.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface GetAllDownloadsRequest {
|
||||
/**
|
||||
* Filters downloads with the array
|
||||
*/
|
||||
uids?: Array<string> | null;
|
||||
}
|
||||
8
src/api-types/models/GetFileFormatsRequest.ts
Normal file
8
src/api-types/models/GetFileFormatsRequest.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface GetFileFormatsRequest {
|
||||
url?: string;
|
||||
}
|
||||
12
src/api-types/models/GetFileFormatsResponse.ts
Normal file
12
src/api-types/models/GetFileFormatsResponse.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { File } from './File';
|
||||
|
||||
export interface GetFileFormatsResponse {
|
||||
success: boolean;
|
||||
result: {
|
||||
formats?: Array<any>,
|
||||
};
|
||||
}
|
||||
22
src/api-types/models/GetFullTwitchChatRequest.ts
Normal file
22
src/api-types/models/GetFullTwitchChatRequest.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { FileType } from './FileType';
|
||||
import { Subscription } from './Subscription';
|
||||
|
||||
export interface GetFullTwitchChatRequest {
|
||||
/**
|
||||
* File ID
|
||||
*/
|
||||
id: string;
|
||||
type: FileType;
|
||||
/**
|
||||
* User UID
|
||||
*/
|
||||
uuid?: string;
|
||||
/**
|
||||
* Subscription
|
||||
*/
|
||||
sub?: Subscription;
|
||||
}
|
||||
9
src/api-types/models/GetFullTwitchChatResponse.ts
Normal file
9
src/api-types/models/GetFullTwitchChatResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface GetFullTwitchChatResponse {
|
||||
success: boolean;
|
||||
error?: string;
|
||||
}
|
||||
8
src/api-types/models/GetLogsRequest.ts
Normal file
8
src/api-types/models/GetLogsRequest.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface GetLogsRequest {
|
||||
lines?: number;
|
||||
}
|
||||
12
src/api-types/models/GetLogsResponse.ts
Normal file
12
src/api-types/models/GetLogsResponse.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface GetLogsResponse {
|
||||
/**
|
||||
* Number of lines to retrieve from the bottom
|
||||
*/
|
||||
logs?: string;
|
||||
success?: boolean;
|
||||
}
|
||||
13
src/api-types/models/IncrementViewCountRequest.ts
Normal file
13
src/api-types/models/IncrementViewCountRequest.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface IncrementViewCountRequest {
|
||||
file_uid: string;
|
||||
sub_id?: string;
|
||||
/**
|
||||
* User UID
|
||||
*/
|
||||
uuid?: string;
|
||||
}
|
||||
8
src/api-types/models/TableInfo.ts
Normal file
8
src/api-types/models/TableInfo.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface TableInfo {
|
||||
records_count?: number;
|
||||
}
|
||||
11
src/api-types/models/TestConnectionStringRequest.ts
Normal file
11
src/api-types/models/TestConnectionStringRequest.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface TestConnectionStringRequest {
|
||||
/**
|
||||
* MongoDB connection string
|
||||
*/
|
||||
connection_string: string;
|
||||
}
|
||||
9
src/api-types/models/TestConnectionStringResponse.ts
Normal file
9
src/api-types/models/TestConnectionStringResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface TestConnectionStringResponse {
|
||||
success: boolean;
|
||||
error?: string;
|
||||
}
|
||||
11
src/api-types/models/TransferDBRequest.ts
Normal file
11
src/api-types/models/TransferDBRequest.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface TransferDBRequest {
|
||||
/**
|
||||
* True if transfering DB from Local to MongoDB, false if transferring DB from MongoDB to Local
|
||||
*/
|
||||
local_to_remote: boolean;
|
||||
}
|
||||
9
src/api-types/models/TransferDBResponse.ts
Normal file
9
src/api-types/models/TransferDBResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface TransferDBResponse {
|
||||
success: boolean;
|
||||
error?: string;
|
||||
}
|
||||
18
src/api-types/models/TwitchChatMessage.ts
Normal file
18
src/api-types/models/TwitchChatMessage.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface TwitchChatMessage {
|
||||
created_at?: string;
|
||||
content_offset_seconds?: number;
|
||||
commenter?: {
|
||||
name?: string,
|
||||
_id?: string,
|
||||
created_at?: string,
|
||||
};
|
||||
message?: {
|
||||
body?: string,
|
||||
user_color?: string,
|
||||
};
|
||||
}
|
||||
9
src/api-types/models/UpdateCategoriesRequest.ts
Normal file
9
src/api-types/models/UpdateCategoriesRequest.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Category } from './Category';
|
||||
|
||||
export interface UpdateCategoriesRequest {
|
||||
categories: Array<Category>;
|
||||
}
|
||||
9
src/api-types/models/UpdateCategoryRequest.ts
Normal file
9
src/api-types/models/UpdateCategoryRequest.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Category } from './Category';
|
||||
|
||||
export interface UpdateCategoryRequest {
|
||||
category: Category;
|
||||
}
|
||||
12
src/api-types/models/UpdateConcurrentStreamRequest.ts
Normal file
12
src/api-types/models/UpdateConcurrentStreamRequest.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { ConcurrentStream } from './ConcurrentStream';
|
||||
|
||||
export interface UpdateConcurrentStreamRequest extends ConcurrentStream {
|
||||
/**
|
||||
* Concurrent stream UID
|
||||
*/
|
||||
uid: string;
|
||||
}
|
||||
9
src/api-types/models/UpdateConcurrentStreamResponse.ts
Normal file
9
src/api-types/models/UpdateConcurrentStreamResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { ConcurrentStream } from './ConcurrentStream';
|
||||
|
||||
export interface UpdateConcurrentStreamResponse {
|
||||
stream: ConcurrentStream;
|
||||
}
|
||||
11
src/api-types/models/Version.ts
Normal file
11
src/api-types/models/Version.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
|
||||
export interface Version {
|
||||
type?: string;
|
||||
tag?: string;
|
||||
commit?: string;
|
||||
date?: string;
|
||||
}
|
||||
9
src/api-types/models/VersionInfoResponse.ts
Normal file
9
src/api-types/models/VersionInfoResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Version } from './Version';
|
||||
|
||||
export interface VersionInfoResponse {
|
||||
version_info: Version;
|
||||
}
|
||||
@@ -597,7 +597,7 @@ export class MainComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
|
||||
this.postsService.generateArgs(this.url, type, (this.selectedQuality === '' ? null : this.selectedQuality),
|
||||
this.postsService.generateArgs(this.url, type as FileType, (this.selectedQuality === '' ? null : this.selectedQuality),
|
||||
customQualityConfiguration, customArgs, additionalArgs, customOutput, youtubeUsername, youtubePassword, cropFileSettings).subscribe(res => {
|
||||
const simulated_args = res['args'];
|
||||
if (simulated_args) {
|
||||
|
||||
@@ -61,6 +61,35 @@ import {
|
||||
UpdateUserRequest,
|
||||
UserPermission,
|
||||
YesNo,
|
||||
GenerateArgsResponse,
|
||||
GetPlaylistsRequest,
|
||||
UpdateCategoryRequest,
|
||||
UpdateCategoriesRequest,
|
||||
DeleteCategoryRequest,
|
||||
CreateCategoryRequest,
|
||||
CreateCategoryResponse,
|
||||
GetAllCategoriesResponse,
|
||||
AddFileToPlaylistRequest,
|
||||
IncrementViewCountRequest,
|
||||
GetLogsRequest,
|
||||
GetLogsResponse,
|
||||
UpdateConcurrentStreamResponse,
|
||||
UpdateConcurrentStreamRequest,
|
||||
CheckConcurrentStreamRequest,
|
||||
CheckConcurrentStreamResponse,
|
||||
DownloadTwitchChatByVODIDRequest,
|
||||
DownloadTwitchChatByVODIDResponse,
|
||||
GetFullTwitchChatRequest,
|
||||
GetFullTwitchChatResponse,
|
||||
GetAllDownloadsRequest,
|
||||
TestConnectionStringRequest,
|
||||
TestConnectionStringResponse,
|
||||
TransferDBRequest,
|
||||
TransferDBResponse,
|
||||
VersionInfoResponse,
|
||||
DBInfoResponse,
|
||||
GetFileFormatsRequest,
|
||||
GetFileFormatsResponse,
|
||||
} from '../api-types';
|
||||
import { isoLangs } from './settings/locales_list';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
@@ -243,37 +272,40 @@ export class PostsService implements CanActivate {
|
||||
return this.http.post<DownloadResponse>(this.path + 'downloadFile', body, this.httpOptions);
|
||||
}
|
||||
|
||||
generateArgs(url: string, type: string, selectedQuality: string, customQualityConfiguration: string, customArgs: string = null, additionalArgs: string = null, customOutput: string = null, youtubeUsername: string = null, youtubePassword: string = null, cropFileSettings = null) {
|
||||
return this.http.post(this.path + 'generateArgs', {url: url,
|
||||
selectedHeight: selectedQuality,
|
||||
customQualityConfiguration: customQualityConfiguration,
|
||||
customArgs: customArgs,
|
||||
additionalArgs: additionalArgs,
|
||||
customOutput: customOutput,
|
||||
youtubeUsername: youtubeUsername,
|
||||
youtubePassword: youtubePassword,
|
||||
type: type,
|
||||
cropFileSettings: cropFileSettings}, this.httpOptions);
|
||||
generateArgs(url: string, type: FileType, selectedQuality: string, customQualityConfiguration: string, customArgs: string = null, additionalArgs: string = null, customOutput: string = null, youtubeUsername: string = null, youtubePassword: string = null, cropFileSettings = null) {
|
||||
const body: DownloadRequest = {url: url,
|
||||
selectedHeight: selectedQuality,
|
||||
customQualityConfiguration: customQualityConfiguration,
|
||||
customArgs: customArgs,
|
||||
additionalArgs: additionalArgs,
|
||||
customOutput: customOutput,
|
||||
youtubeUsername: youtubeUsername,
|
||||
youtubePassword: youtubePassword,
|
||||
type: type,
|
||||
cropFileSettings: cropFileSettings}
|
||||
return this.http.post<GenerateArgsResponse>(this.path + 'generateArgs', body, this.httpOptions);
|
||||
}
|
||||
|
||||
getDBInfo() {
|
||||
return this.http.post(this.path + 'getDBInfo', {}, this.httpOptions);
|
||||
return this.http.get<DBInfoResponse>(this.path + 'getDBInfo', this.httpOptions);
|
||||
}
|
||||
|
||||
transferDB(local_to_remote) {
|
||||
return this.http.post(this.path + 'transferDB', {local_to_remote: local_to_remote}, this.httpOptions);
|
||||
const body: TransferDBRequest = {local_to_remote: local_to_remote};
|
||||
return this.http.post<TransferDBResponse>(this.path + 'transferDB', body, this.httpOptions);
|
||||
}
|
||||
|
||||
testConnectionString(connection_string) {
|
||||
return this.http.post(this.path + 'testConnectionString', {connection_string: connection_string}, this.httpOptions);
|
||||
testConnectionString(connection_string: string) {
|
||||
const body: TestConnectionStringRequest = {connection_string: connection_string};
|
||||
return this.http.post<TestConnectionStringResponse>(this.path + 'testConnectionString', body, this.httpOptions);
|
||||
}
|
||||
|
||||
killAllDownloads() {
|
||||
return this.http.post(this.path + 'killAllDownloads', {}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'killAllDownloads', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
restartServer() {
|
||||
return this.http.post(this.path + 'restartServer', {}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'restartServer', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
loadNavItems() {
|
||||
@@ -319,54 +351,51 @@ export class PostsService implements CanActivate {
|
||||
return this.http.post<GetAllFilesResponse>(this.path + 'getAllFiles', {sort: sort, range: range, text_search: text_search, file_type_filter: file_type_filter}, this.httpOptions);
|
||||
}
|
||||
|
||||
downloadFileFromServer(uid: string, uuid: string = null, sub_id: string = null, is_playlist: boolean = null) {
|
||||
downloadFileFromServer(uid: string, uuid: string = null, sub_id: string = null) {
|
||||
const body: DownloadFileRequest = {
|
||||
uid: uid,
|
||||
uuid: uuid,
|
||||
sub_id: sub_id,
|
||||
is_playlist: is_playlist
|
||||
sub_id: sub_id
|
||||
};
|
||||
return this.http.post(this.path + 'downloadFile', body, {responseType: 'blob', params: this.httpOptions.params});
|
||||
}
|
||||
|
||||
getFullTwitchChat(id, type, uuid = null, sub = null) {
|
||||
return this.http.post(this.path + 'getFullTwitchChat', {id: id, type: type, uuid: uuid, sub: sub}, this.httpOptions);
|
||||
const body: GetFullTwitchChatRequest = {id: id, type: type, uuid: uuid, sub: sub};
|
||||
return this.http.post<GetFullTwitchChatResponse>(this.path + 'getFullTwitchChat', body, this.httpOptions);
|
||||
}
|
||||
|
||||
downloadTwitchChat(id, type, vodId, uuid = null, sub = null) {
|
||||
return this.http.post(this.path + 'downloadTwitchChatByVODID', {id: id, type: type, vodId: vodId, uuid: uuid, sub: sub}, this.httpOptions);
|
||||
const body: DownloadTwitchChatByVODIDRequest = {id: id, type: type, vodId: vodId, uuid: uuid, sub: sub};
|
||||
return this.http.post<DownloadTwitchChatByVODIDResponse>(this.path + 'downloadTwitchChatByVODID', body, this.httpOptions);
|
||||
}
|
||||
|
||||
downloadPlaylistFromServer(playlist_id, uuid = null) {
|
||||
return this.http.post(this.path + 'downloadFileFromServer', {
|
||||
uuid: uuid,
|
||||
playlist_id: playlist_id
|
||||
},
|
||||
{responseType: 'blob', params: this.httpOptions.params});
|
||||
const body: DownloadFileRequest = {uuid: uuid, playlist_id: playlist_id};
|
||||
return this.http.post(this.path + 'downloadFileFromServer', body, {responseType: 'blob', params: this.httpOptions.params});
|
||||
}
|
||||
|
||||
downloadSubFromServer(sub_id, uuid = null) {
|
||||
return this.http.post(this.path + 'downloadFileFromServer', {
|
||||
uuid: uuid,
|
||||
sub_id: sub_id
|
||||
},
|
||||
{responseType: 'blob', params: this.httpOptions.params});
|
||||
const body: DownloadFileRequest = {uuid: uuid, sub_id: sub_id};
|
||||
return this.http.post(this.path + 'downloadFileFromServer', body, {responseType: 'blob', params: this.httpOptions.params});
|
||||
|
||||
}
|
||||
|
||||
checkConcurrentStream(uid) {
|
||||
return this.http.post(this.path + 'checkConcurrentStream', {uid: uid}, this.httpOptions);
|
||||
const body: CheckConcurrentStreamRequest = {uid: uid};
|
||||
return this.http.post<CheckConcurrentStreamResponse>(this.path + 'checkConcurrentStream', body, this.httpOptions);
|
||||
}
|
||||
|
||||
updateConcurrentStream(uid, playback_timestamp, unix_timestamp, playing) {
|
||||
return this.http.post(this.path + 'updateConcurrentStream', {uid: uid,
|
||||
playback_timestamp: playback_timestamp,
|
||||
unix_timestamp: unix_timestamp,
|
||||
playing: playing}, this.httpOptions);
|
||||
const body: UpdateConcurrentStreamRequest = {uid: uid,
|
||||
playback_timestamp: playback_timestamp,
|
||||
unix_timestamp: unix_timestamp,
|
||||
playing: playing};
|
||||
return this.http.post<UpdateConcurrentStreamResponse>(this.path + 'updateConcurrentStream', body, this.httpOptions);
|
||||
}
|
||||
|
||||
uploadCookiesFile(fileFormData) {
|
||||
return this.http.post(this.path + 'uploadCookies', fileFormData, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'uploadCookies', fileFormData, this.httpOptions);
|
||||
}
|
||||
|
||||
downloadArchive(sub) {
|
||||
@@ -375,15 +404,17 @@ export class PostsService implements CanActivate {
|
||||
}
|
||||
|
||||
getFileFormats(url) {
|
||||
return this.http.post(this.path + 'getFileFormats', {url: url}, this.httpOptions);
|
||||
const body: GetFileFormatsRequest = {url: url};
|
||||
return this.http.post<GetFileFormatsResponse>(this.path + 'getFileFormats', body, this.httpOptions);
|
||||
}
|
||||
|
||||
getLogs(lines = 50) {
|
||||
return this.http.post(this.path + 'logs', {lines: lines}, this.httpOptions);
|
||||
const body: GetLogsRequest = {lines: lines};
|
||||
return this.http.post<GetLogsResponse>(this.path + 'logs', body, this.httpOptions);
|
||||
}
|
||||
|
||||
clearAllLogs() {
|
||||
return this.http.post(this.path + 'clearAllLogs', {}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'clearAllLogs', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
generateNewAPIKey() {
|
||||
@@ -415,11 +446,12 @@ export class PostsService implements CanActivate {
|
||||
}
|
||||
|
||||
incrementViewCount(file_uid, sub_id, uuid) {
|
||||
return this.http.post(this.path + 'incrementViewCount', {file_uid: file_uid, sub_id: sub_id, uuid: uuid}, this.httpOptions);
|
||||
const body: IncrementViewCountRequest = {file_uid: file_uid, sub_id: sub_id, uuid: uuid};
|
||||
return this.http.post<SuccessObject>(this.path + 'incrementViewCount', body, this.httpOptions);
|
||||
}
|
||||
|
||||
getPlaylists() {
|
||||
return this.http.post(this.path + 'getPlaylists', {}, this.httpOptions);
|
||||
return this.http.post<GetPlaylistsRequest>(this.path + 'getPlaylists', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
updatePlaylist(playlist: Playlist) {
|
||||
@@ -439,31 +471,34 @@ export class PostsService implements CanActivate {
|
||||
}
|
||||
|
||||
addFileToPlaylist(playlist_id, file_uid) {
|
||||
return this.http.post(this.path + 'addFileToPlaylist', {playlist_id: playlist_id,
|
||||
file_uid: file_uid},
|
||||
this.httpOptions);
|
||||
const body: AddFileToPlaylistRequest = {playlist_id: playlist_id, file_uid: file_uid}
|
||||
return this.http.post<SuccessObject>(this.path + 'addFileToPlaylist', body, this.httpOptions);
|
||||
}
|
||||
|
||||
// categories
|
||||
|
||||
getAllCategories() {
|
||||
return this.http.post(this.path + 'getAllCategories', {}, this.httpOptions);
|
||||
return this.http.post<GetAllCategoriesResponse>(this.path + 'getAllCategories', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
createCategory(name) {
|
||||
return this.http.post(this.path + 'createCategory', {name: name}, this.httpOptions);
|
||||
const body: CreateCategoryRequest = {name: name};
|
||||
return this.http.post<CreateCategoryResponse>(this.path + 'createCategory', body, this.httpOptions);
|
||||
}
|
||||
|
||||
deleteCategory(category_uid) {
|
||||
return this.http.post(this.path + 'deleteCategory', {category_uid: category_uid}, this.httpOptions);
|
||||
const body: DeleteCategoryRequest = {category_uid: category_uid};
|
||||
return this.http.post<SuccessObject>(this.path + 'deleteCategory', body, this.httpOptions);
|
||||
}
|
||||
|
||||
updateCategory(category) {
|
||||
return this.http.post(this.path + 'updateCategory', {category: category}, this.httpOptions);
|
||||
const body: UpdateCategoryRequest = {category: category};
|
||||
return this.http.post<SuccessObject>(this.path + 'updateCategory', body, this.httpOptions);
|
||||
}
|
||||
|
||||
updateCategories(categories) {
|
||||
return this.http.post(this.path + 'updateCategories', {categories: categories}, this.httpOptions);
|
||||
const body: UpdateCategoriesRequest = {categories: categories};
|
||||
return this.http.post<SuccessObject>(this.path + 'updateCategories', body, this.httpOptions);
|
||||
}
|
||||
|
||||
reloadCategories() {
|
||||
@@ -474,7 +509,7 @@ export class PostsService implements CanActivate {
|
||||
|
||||
updateSubscription(subscription) {
|
||||
delete subscription['videos'];
|
||||
return this.http.post(this.path + 'updateSubscription', {subscription: subscription}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'updateSubscription', {subscription: subscription}, this.httpOptions);
|
||||
}
|
||||
|
||||
unsubscribe(sub: SubscriptionRequestData, deleteMode = false) {
|
||||
@@ -498,7 +533,8 @@ export class PostsService implements CanActivate {
|
||||
}
|
||||
|
||||
getCurrentDownloads(uids: Array<string> = null) {
|
||||
return this.http.post<GetAllDownloadsResponse>(this.path + 'downloads', {uids: uids}, this.httpOptions);
|
||||
const body: GetAllDownloadsRequest = {uids: uids};
|
||||
return this.http.post<GetAllDownloadsResponse>(this.path + 'downloads', body, this.httpOptions);
|
||||
}
|
||||
|
||||
getCurrentDownload(download_uid: string) {
|
||||
@@ -507,39 +543,39 @@ export class PostsService implements CanActivate {
|
||||
}
|
||||
|
||||
pauseDownload(download_uid) {
|
||||
return this.http.post(this.path + 'pauseDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'pauseDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
}
|
||||
|
||||
pauseAllDownloads() {
|
||||
return this.http.post(this.path + 'pauseAllDownloads', {}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'pauseAllDownloads', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
resumeDownload(download_uid) {
|
||||
return this.http.post(this.path + 'resumeDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'resumeDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
}
|
||||
|
||||
resumeAllDownloads() {
|
||||
return this.http.post(this.path + 'resumeAllDownloads', {}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'resumeAllDownloads', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
restartDownload(download_uid) {
|
||||
return this.http.post(this.path + 'restartDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'restartDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
}
|
||||
|
||||
cancelDownload(download_uid) {
|
||||
return this.http.post(this.path + 'cancelDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'cancelDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
}
|
||||
|
||||
clearDownload(download_uid) {
|
||||
return this.http.post(this.path + 'clearDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'clearDownload', {download_uid: download_uid}, this.httpOptions);
|
||||
}
|
||||
|
||||
clearFinishedDownloads() {
|
||||
return this.http.post(this.path + 'clearFinishedDownloads', {}, this.httpOptions);
|
||||
return this.http.post<SuccessObject>(this.path + 'clearFinishedDownloads', {}, this.httpOptions);
|
||||
}
|
||||
|
||||
getVersionInfo() {
|
||||
return this.http.get(this.path + 'versionInfo', this.httpOptions);
|
||||
return this.http.get<VersionInfoResponse>(this.path + 'versionInfo', this.httpOptions);
|
||||
}
|
||||
|
||||
updateServer(tag: string) {
|
||||
|
||||
Reference in New Issue
Block a user