aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/utils.ts
Commit message (Collapse)AuthorAgeFilesLines
* Migrate server to ESMChocobozzz2023-08-111-70/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorry for the very big commit that may lead to git log issues and merge conflicts, but it's a major step forward: * Server can be faster at startup because imports() are async and we can easily lazy import big modules * Angular doesn't seem to support ES import (with .js extension), so we had to correctly organize peertube into a monorepo: * Use yarn workspace feature * Use typescript reference projects for dependencies * Shared projects have been moved into "packages", each one is now a node module (with a dedicated package.json/tsconfig.json) * server/tools have been moved into apps/ and is now a dedicated app bundled and published on NPM so users don't have to build peertube cli tools manually * server/tests have been moved into packages/ so we don't compile them every time we want to run the server * Use isolatedModule option: * Had to move from const enum to const (https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums) * Had to explictely specify "type" imports when used in decorators * Prefer tsx (that uses esbuild under the hood) instead of ts-node to load typescript files (tests with mocha or scripts): * To reduce test complexity as esbuild doesn't support decorator metadata, we only test server files that do not import server models * We still build tests files into js files for a faster CI * Remove unmaintained peertube CLI import script * Removed some barrels to speed up execution (less imports)
* Automatically rebuild native modules on ABI changeChocobozzz2022-08-031-25/+1
|
* Fix shared importsChocobozzz2021-12-241-1/+1
|
* Fix buildChocobozzz2021-12-171-1/+1
|
* Move test functions outside extra-utilsChocobozzz2021-12-171-1/+1
|
* chore(refactor): remove shared folder dependencies to the serverlutangar2021-12-161-1/+2
| | | | | | | | | | | Many files from the `shared` folder were importing files from the `server` folder. When attempting to use Typescript project references to describe dependencies, it highlighted a circular dependency beetween `shared` <-> `server`. The Typescript project forbid such usages. Using project references greatly improve performance by rebuilding only the updated project and not all source files. > see https://www.typescriptlang.org/docs/handbook/project-references.html
* Resumable video uploads (#3933)kontrollanten2021-05-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: resumable video uploads relates to #324 * fix review comments * video upload: error handling * fix audio upload * fixes after self review * Update server/controllers/api/videos/index.ts Co-authored-by: Rigel Kent <par@rigelk.eu> * Update server/middlewares/validators/videos/videos.ts Co-authored-by: Rigel Kent <par@rigelk.eu> * Update server/controllers/api/videos/index.ts Co-authored-by: Rigel Kent <par@rigelk.eu> * update after code review * refactor upload route - restore multipart upload route - move resumable to dedicated upload-resumable route - move checks to middleware - do not leak internal fs structure in response * fix yarn.lock upon rebase * factorize addVideo for reuse in both endpoints * add resumable upload API to openapi spec * add initial test and test helper for resumable upload * typings for videoAddResumable middleware * avoid including aws and google packages via node-uploadx, by only including uploadx/core * rename ex-isAudioBg to more explicit name mentioning it is a preview file for audio * add video-upload-tmp-folder-cleaner job * stronger typing of video upload middleware * reduce dependency to @uploadx/core * add audio upload test * refactor resumable uploads cleanup from job to scheduler * refactor resumable uploads scheduler to compare to last execution time * make resumable upload validator to always cleanup on failure * move legacy upload request building outside of uploadVideo test helper * filter upload-resumable middlewares down to POST, PUT, DELETE also begin to type metadata * merge add duration functions * stronger typings and documentation for uploadx behaviour, move init validator up * refactor(client/video-edit): options > uploadxOptions * refactor(client/video-edit): remove obsolete else * scheduler/remove-dangling-resum: rename tag * refactor(server/video): add UploadVideoFiles type * refactor(mw/validators): restructure eslint disable * refactor(mw/validators/videos): rename import * refactor(client/vid-upload): rename html elem id * refactor(sched/remove-dangl): move fn to method * refactor(mw/async): add method typing * refactor(mw/vali/video): double quote > single * refactor(server/upload-resum): express use > all * proper http methud enum server/middlewares/async.ts * properly type http methods * factorize common video upload validation steps * add check for maximum partially uploaded file size * fix audioBg use * fix extname(filename) in addVideo * document parameters for uploadx's resumable protocol * clear META files in scheduler * last audio refactor before cramming preview in the initial POST form data * refactor as mulitpart/form-data initial post request this allows preview/thumbnail uploads alongside the initial request, and cleans up the upload form * Add more tests for resumable uploads * Refactor remove dangling resumable uploads * Prepare changelog * Add more resumable upload tests * Remove user quota check for resumable uploads * Fix upload error handler * Update nginx template for upload-resumable * Cleanup comment * Remove unused express methods * Prefer to use got instead of raw http * Don't retry on error 500 Co-authored-by: Rigel Kent <par@rigelk.eu> Co-authored-by: Rigel Kent <sendmemail@rigelk.eu> Co-authored-by: Chocobozzz <me@florianbigard.com>
* Fix (again) youtube importChocobozzz2021-01-191-11/+5
|
* Avoir some circular dependenciesChocobozzz2020-05-041-13/+0
|
* Support audio files importChocobozzz2020-04-031-3/+11
|
* Move to eslintcontainChocobozzz2020-02-031-2/+2
|
* Add infohash cacheChocobozzz2020-01-031-1/+1
|
* Type toActivityPubObject functionsChocobozzz2019-08-211-1/+4
|
* Add plugin static files cacheChocobozzz2019-07-241-8/+4
|
* Move config in its own fileChocobozzz2019-04-111-1/+1
|
* Use a single file instead of segments for HLSChocobozzz2019-02-111-1/+0
|
* Implement contact form on server sideChocobozzz2019-01-101-4/+2
|
* Add tmp and redundancy directoriesChocobozzz2018-12-041-3/+3
|
* Optimize config endpointChocobozzz2018-11-231-3/+3
|
* Add ability for users to block an account/instance on server sideChocobozzz2018-10-161-1/+4
|
* Set bitrate limits for transcoding (fixes #638) (#1135)Felix Ableitner2018-10-081-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Set bitrate limits for transcoding (fixes #638) * added optimization script and test, changed stuff * fix test, improve docs * re-add optimize-old-videos script * added documentation * Don't optimize videos without valid UUID, or redundancy videos * move getUUIDFromFilename * fix tests? * update torrent and file size, some more fixes/improvements * use higher bitrate for high fps video, adjust bitrates * add test video * don't throw error if resolution is undefined * generate test fixture on the fly * use random noise video for bitrate test, add promise * shorten test video to avoid timeout * use existing function to optimize video * various fixes * increase test timeout * limit test fixture size, add link * test fixes * add await * more test fixes, add -b:v parameter * replace ffmpeg wiki link * fix ffmpeg params * fix unit test * add test fixture to .gitgnore * add video transcoding fps model * add missing file
* Fix config endpointChocobozzz2018-10-031-9/+20
|
* show last commit hash alongside server version in footerRigel Kent2018-10-011-0/+13
|
* Speed up overviews routeChocobozzz2018-09-141-18/+6
|
* Correctly migrate to fs-extraChocobozzz2018-08-271-2/+3
|
* Cleanup utils helperChocobozzz2018-08-141-144/+7
|
* Add torrent testsChocobozzz2018-08-081-2/+1
|
* Import torrents with webtorrentChocobozzz2018-08-081-4/+11
|
* Import magnets with webtorrentChocobozzz2018-08-081-1/+10
|
* Cleanup req files on bad requestChocobozzz2018-07-311-1/+27
|
* Fix last commitChocobozzz2018-07-261-1/+2
|
* expliciting type checks and predicates (server only)Rigel Kent2018-07-251-1/+2
|
* Fix nodeinfo endpointChocobozzz2018-07-241-3/+2
|
* adding initial support for nodeinfoRigel Kent2018-07-241-0/+30
|
* Add concept of video state, and add ability to wait transcoding beforeChocobozzz2018-06-121-11/+11
| | | | publishing a video
* feature: IP filtering on signup pageRigel Kent2018-05-221-0/+36
| | | | | | disable registration form on IP not in range checking the CIDR list before filtering with it placing the cidr filters as an attribute object in the config
* Add account viewChocobozzz2018-04-241-60/+2
|
* Fix error loggingChocobozzz2018-03-261-1/+1
|
* Add ability to set video thumbnail/previewChocobozzz2018-02-141-3/+15
|
* Add ability to update some configuration keysChocobozzz2018-01-171-1/+1
|
* Add ability to disable video commentsChocobozzz2018-01-031-1/+1
|
* Begin to add avatar to actorsChocobozzz2017-12-291-2/+28
|
* Set port if not specified in webfingerChocobozzz2017-12-191-2/+16
|
* Begin moving video channel to actorChocobozzz2017-12-191-9/+11
|
* Move models to typescript-sequelizeChocobozzz2017-12-131-8/+9
|
* Cleanup helpersChocobozzz2017-11-271-3/+2
|
* Send server announce when users upload a videoChocobozzz2017-11-271-6/+12
|
* Handle follow/acceptChocobozzz2017-11-271-0/+11
|
* Adapt client with video channelsChocobozzz2017-10-261-1/+0
|
* Use async/await in lib and initializersChocobozzz2017-10-261-9/+11
|