Commit Graph

272 Commits

Author SHA1 Message Date
Chocobozzz c296250511
Remove sequelize deprecated operators 2017-10-26 16:59:02 +02:00
Chocobozzz 911238e343
Fix integrity issues with after destroy hook 2017-10-26 14:05:20 +02:00
Chocobozzz 6cd44728bb
Fix log in after destroy hook 2017-10-26 12:06:57 +02:00
Chocobozzz b869d19068
Fix join in video events 2017-10-26 11:42:36 +02:00
Chocobozzz a041b17147
Reset video fields when remote update fails 2017-10-26 11:26:35 +02:00
Chocobozzz d412e80e5f
Fix lint 2017-10-26 09:11:38 +02:00
Chocobozzz f5028693a8
Use async/await in lib and initializers 2017-10-26 09:11:38 +02:00
Chocobozzz 72c7248b6f
Add video channels 2017-10-26 09:11:38 +02:00
Chocobozzz a96aed1518
Add ability to download a video from direct link or torrent file 2017-10-19 14:58:28 +02:00
Chocobozzz 8a02bd0433
Add pod list endpoint with pagination, sort... 2017-10-19 09:43:01 +02:00
Chocobozzz 9fd540562c
Fix video removing when it is corrupted 2017-10-19 09:28:35 +02:00
Chocobozzz 164174a6ab
Use preview instead of thumbnail for oembed 2017-10-17 10:35:27 +02:00
Chocobozzz d8755eed1e
Add oembed endpoint 2017-10-16 10:07:26 +02:00
Chocobozzz 14d3270f36
Change how we handle resolution
It was an enum before, now we just use video height
2017-10-09 11:17:36 +02:00
Chocobozzz aa8b6df4a5
Client: handle multiple file resolutions 2017-10-06 11:03:09 +02:00
Chocobozzz ecb455b6c4 Add migration script 2017-10-03 17:16:47 +02:00
Chocobozzz 40298b0254 Implement video transcoding on server side 2017-10-03 15:31:26 +02:00
Chocobozzz f0adb2701c Modify video file size to bigint 2017-09-22 17:02:31 +02:00
Green-Star 792dbaf07f Handle blacklist (#84)
* Client: Add list blacklist feature

* Server: Add list blacklist feature

* Client: Add videoId column

* Server: Add some video infos in the REST api

* Client: Add video information in the blacklist list

* Fix sortable columns :)

* Client: Add removeFromBlacklist feature

* Server: Add removeFromBlacklist feature

* Move to TypeScript

* Move to TypeScript and Promises

* Server: Fix blacklist list sort

* Server: Fetch videos informations

* Use common shared interface for client and server

* Add check-params remove blacklisted video tests

* Add check-params list blacklisted videos tests

* Add list blacklist tests

* Add remove from blacklist tests

* Add video blacklist management tests

* Fix rebase onto develop issues

* Server: Add sort on blacklist id column

* Server: Add blacklists library

* Add blacklist id sort test

* Add check-params tests for blacklist list pagination, count and sort

* Fix coding style

* Increase Remote API tests timeout

* Increase Request scheduler API tests timeout

* Fix typo

* Increase video transcoding API tests timeout

* Move tests to Typescript

* Use lodash orderBy method

* Fix typos

* Client: Remove optional tests in blacklist model attributes

* Move blacklist routes from 'blacklists' to 'blacklist'

* CLient: Remove blacklist-list.component.scss

* Rename 'blacklists' files to 'blacklist'

* Use only BlacklistedVideo interface

* Server: Use getFormattedObjects method in listBlacklist method

* Client: Use new coding style

* Server: Use new sort validator methods

* Server: Use new checkParams methods

* Client: Fix sortable columns
2017-09-22 09:13:43 +02:00
Chocobozzz 91f6f169b1 Fix concurrency error when deleting a video 2017-09-12 14:17:46 +02:00
Chocobozzz fdbda9e3d6 Add tests for npm run scripts 2017-09-07 15:54:34 +02:00
Chocobozzz 77a5501f64 Fix tests and user quota 2017-09-06 17:28:20 +02:00
Chocobozzz 5c98d3bf07 Begin tests for user quota 2017-09-05 22:09:16 +02:00
Chocobozzz 980246ea8f Make tslint happy 2017-09-04 21:45:05 +02:00
Chocobozzz b0f9f39ed7 Begin user quota 2017-09-04 20:07:54 +02:00
Chocobozzz 556ddc3192 Upgrade common server dependencies 2017-08-25 18:36:49 +02:00
Chocobozzz 0aef76c479 Formated -> Formatted 2017-08-25 11:45:31 +02:00
Chocobozzz 93e1258c7c Move video file metadata in their own table
Will be used for user video quotas and multiple video resolutions
2017-08-25 11:36:23 +02:00
Chocobozzz f981dae861 Add previews cache system between pods 2017-07-12 11:56:02 +02:00
Chocobozzz 075f16caac Remove "function" in favor of () => {} 2017-07-11 17:05:55 +02:00
Chocobozzz 0a6658fdcb Use global uuid instead of remoteId for videos 2017-07-11 16:01:56 +02:00
Chocobozzz e6d4b0ff24 Remove any typing from server 2017-07-11 10:59:13 +02:00
Chocobozzz 4771e0008d Better typescript typing for a better world 2017-07-10 19:43:21 +02:00
Chocobozzz ad0997adfb Fix error logging 2017-07-07 18:26:12 +02:00
Chocobozzz 18c8e94508 Video search -> case insensitive 2017-07-06 18:01:02 +02:00
Chocobozzz 6fcd19ba73 Move to promises
Closes https://github.com/Chocobozzz/PeerTube/issues/74
2017-07-05 14:14:16 +02:00
Chocobozzz 154898b0b7 Share models between server and client 2017-06-17 11:28:11 +02:00
Chocobozzz ee9e7b61f5 Create types for model enums 2017-06-16 10:36:18 +02:00
Chocobozzz 70c065d64c Add this context to instance model functions 2017-06-16 09:54:59 +02:00
Chocobozzz 74889a71fe Reorganize model files 2017-06-16 09:45:46 +02:00
Chocobozzz 75d612ce3c Convert scripts to typescript 2017-06-12 21:06:32 +02:00
Chocobozzz 127944aacb Better models define typing 2017-06-11 17:35:32 +02:00
Chocobozzz 69f616ab3a Use shared models 2017-06-11 11:02:35 +02:00
Chocobozzz 69818c9394 Type functions 2017-06-10 22:15:25 +02:00
Chocobozzz 4d4e5cd4dc require -> import 2017-06-05 21:53:49 +02:00
Chocobozzz e02643f32e Type models 2017-05-25 17:32:16 +02:00
Chocobozzz 65fcc3119c First typescript iteration 2017-05-20 09:57:40 +02:00
Chocobozzz 4e284e97b9 Server: finish old jobs at startup 2017-05-05 17:24:16 +02:00
Chocobozzz 227d02fead Server: add job scheduler to transcode video files 2017-05-04 21:12:32 +02:00
Chocobozzz 15d4ee04a9 Server: little refractoring when listing videos 2017-05-01 19:24:37 +02:00
Chocobozzz ab683a8e0d Format video blacklist 2017-04-26 21:42:36 +02:00
Green-Star 198b205c10 Add ability for an administrator to remove any video (#61)
* Add ability for an admin to remove every video on the pod.

* Server: add BlacklistedVideos relation.

* Server: Insert in BlacklistedVideos relation upon deletion of a video.

* Server: Modify BlacklistedVideos schema to add Pod id information.

* Server: Moving insertion of a blacklisted video from the `afterDestroy` hook into the process of deletion of a video.

To avoid inserting a video when it is removed on its origin pod.
When a video is removed on its origin pod, the `afterDestroy` hook is fire, but no request is made on the delete('/:videoId') interface.
Hence, we insert into `BlacklistedVideos` only on request on delete('/:videoId') (if requirements for insertion are met).

* Server: Add removeVideoFromBlacklist hook on deletion of a video.

We are going to proceed in another way :).
We will add a new route : /:videoId/blacklist to blacklist a video.
We do not blacklist a video upon its deletion now (to distinguish a video blacklist from a regular video delete)
When we blacklist a video, the video remains in the DB, so we don't have any concern about its update. It just doesn't appear in the video list.
When we remove a video, we then have to remove it from the blacklist too.
We could also remove a video from the blacklist to 'unremove' it and make it appear again in the video list (will be another feature).

* Server: Add handler for new route post(/:videoId/blacklist)

* Client: Add isBlacklistable method

* Client: Update isRemovableBy method.

* Client: Move 'Delete video' feature from the video-list to the video-watch module.

* Server: Exclude blacklisted videos from the video list

* Server: Use findAll() in BlacklistedVideos.list() method

* Server: Fix addVideoToBlacklist function.

* Client: Add blacklist feature.

* Server: Use JavaScript Standard Style.

* Server: In checkUserCanDeleteVideo, move the callback call inside the db callback function

* Server: Modify BlacklistVideo relation

* Server: Modifiy Videos methods.

* Server: Add checkVideoIsBlacklistable method

* Server: Rewrite addVideoToBlacklist method

* Server: Fix checkVideoIsBlacklistable method

* Server: Add return to addVideoToBlacklist method
2017-04-26 21:22:10 +02:00
Chocobozzz 3092476e64 Server: add video language attribute 2017-04-07 12:13:37 +02:00
Chocobozzz 1d49e1e27d Server: Add NSFW in user profile 2017-04-03 21:24:36 +02:00
Chocobozzz 31b59b4774 Server: add nsfw attribute 2017-03-28 21:19:46 +02:00
Chocobozzz 6f0c39e2de Server: add licence video attribute 2017-03-27 20:53:11 +02:00
Chocobozzz 6e07c3de88 Add video category support 2017-03-22 21:25:24 +01:00
Chocobozzz d38b828106 Add like/dislike system for videos 2017-03-08 21:35:43 +01:00
Chocobozzz e3d156b341 Server: add views attribute when sending videos to friends 2017-03-04 11:00:59 +01:00
Chocobozzz ed708d62a6 Server: fix migrations with an empty Applications table 2017-03-04 10:40:09 +01:00
Chocobozzz e4c87ec269 Server: implement video views 2017-02-26 20:01:26 +01:00
Chocobozzz 9e167724f7 Server: make a basic "quick and dirty update" for videos
This system will be useful to to update some int video attributes
(likes, dislikes, views...)

The classic system is not used because we need some optimization for
scaling
2017-02-26 20:01:26 +01:00
Chocobozzz 5804c0db33 Server: fix migration scripts 2017-02-18 12:13:33 +01:00
Chocobozzz c1a7ab7f04 Server: use a request scheduler object instance for friends
communication
2017-02-18 10:29:36 +01:00
Chocobozzz ad4a8a1cca Add email to users 2017-02-18 09:29:59 +01:00
Chocobozzz 5d67f289df Server: add unique to unique indexes 2017-02-16 19:24:34 +01:00
Chocobozzz 4793c343fd Add email to pods 2017-02-16 19:19:56 +01:00
Chocobozzz 9cc99d7b56 Fix update host script 2017-02-08 20:34:01 +01:00
Chocobozzz 11ac88de40 Client: add basic support to report video abuses 2017-01-23 22:18:53 +01:00
Chocobozzz 15103f11ec Server: paths refractoring 2017-01-17 21:42:47 +01:00
Chocobozzz 1e4b0080ff Server: requests refractoring 2017-01-17 21:17:07 +01:00
Chocobozzz 91cc839af8 Server: fix single pod tests 2017-01-12 13:08:47 +01:00
Chocobozzz 7f4e7c3637 Server: fix update remote video infohash 2017-01-12 09:47:21 +01:00
Chocobozzz edc5e86006 Server: transaction serializable for videos 2017-01-11 18:41:40 +01:00
Chocobozzz d8cc063e97 Server: do not break remote videos processing on error 2017-01-11 18:06:51 +01:00
Chocobozzz bd14d16a29 Server: improve requests scheduler 2017-01-10 22:24:42 +01:00
Chocobozzz ed04d94f6d Server: try to have a better video integrity 2017-01-06 23:46:36 +01:00
Chocobozzz bdfbd4f162 Server: use crypto instead of ursa for pod signature 2017-01-04 22:23:07 +01:00
Chocobozzz b981a525c3 Server: we don't need the video name when removing a remote video 2017-01-04 21:15:57 +01:00
Chocobozzz 55fa55a9be Server: add video abuse support 2017-01-04 21:05:13 +01:00
Chocobozzz 79066fdf33 Server: add updatedAt attribute to videos 2016-12-30 11:45:00 +01:00
Chocobozzz 3d118fb501 Server: propagate video update to other pods 2016-12-30 11:27:42 +01:00
Chocobozzz 7b1f49de22 Server: add ability to update a video 2016-12-29 19:07:05 +01:00
Chocobozzz 4ff0d86208 Server: little refractoring 2016-12-29 18:02:03 +01:00
Chocobozzz 4d32448895 Server: use binary data instead of base64 to send thumbnails 2016-12-29 12:13:19 +01:00
Chocobozzz 98ac898a03 Server: use video hook to send information to other pods when a video is
deleted
2016-12-29 11:17:11 +01:00
Chocobozzz 4712081f2a Server: add association between author and user 2016-12-29 10:56:07 +01:00
Chocobozzz 319d072e8e Server: Add postgresql indexes 2016-12-29 10:04:39 +01:00
Chocobozzz 67bf9b96bb Server: add database field validations 2016-12-28 15:49:23 +01:00
Chocobozzz 178edb2025 Server: correctly sort tags by name asc 2016-12-26 17:44:25 +01:00
Chocobozzz b769007f73 Update migrations code 2016-12-25 09:44:57 +01:00
Chocobozzz 7920c273a2 Move tags in another table 2016-12-24 16:59:17 +01:00
Chocobozzz 3897209f46 Server: rename Pods -> Pod 2016-12-19 21:50:20 +01:00
Chocobozzz feb4bdfd9b First version with PostgreSQL 2016-12-19 21:22:28 +01:00
Chocobozzz 38d78e5b82 Server: remove encryption when seending requests to other pods
We don't need it anymore since HTTPS is mandatory now
2016-11-27 18:25:35 +01:00
Chocobozzz 437cf8b531 Server: set manually the post host of a remote video throught the
signature
2016-11-27 11:09:05 +01:00
Bigard Florian 8e124f999b Server: fix magnet tracker websocket url for remote videos 2016-11-23 13:34:07 +01:00
Chocobozzz 8f21730250 Server: add extname video information to remote pods 2016-11-22 22:34:59 +01:00
Chocobozzz c77fa067a1 Server: fix thumbnail in remote videos 2016-11-16 21:16:41 +01:00
Chocobozzz 8eb7d0fa09 Server: Remove unused console log 2016-11-16 20:29:26 +01:00
Chocobozzz 49abbbbedc Pod URL -> pod host. HTTPS is required to make friends.
Reason: in a network with mix http/https pods, https pods won't be able
to play videos from http pod (insecure requests).
2016-11-16 20:29:26 +01:00
Chocobozzz 41b5da1d8c Server: use preview image for opengraph 2016-11-16 20:29:26 +01:00
Chocobozzz 55723d16fd Server: adapt magnet uri search 2016-11-16 20:29:26 +01:00
Chocobozzz f285faa04e Server: generate magnet uri on the fly 2016-11-16 20:29:26 +01:00
Chocobozzz 558d7c2385 Server: use _id for image and video files. Add remoteId field 2016-11-16 20:29:26 +01:00
Chocobozzz 6a94a109b4 Server: add video preview 2016-11-16 20:29:26 +01:00
Chocobozzz 371fa0933a Server: fix refreshing token 2016-11-04 11:34:23 +01:00
Chocobozzz 4b08096b2c Server: add endpoint in requests 2016-11-01 18:47:57 +01:00
Chocobozzz bf2fc85c83 Server: fix refreshing token that fails 2016-11-01 18:16:47 +01:00
Chocobozzz cf6412e85d Server: videos search case insensitive 2016-10-26 20:37:27 +02:00
Chocobozzz 3737bbafb1 Server: host -> hostname (host = hostname + port) 2016-10-26 20:28:34 +02:00
Chocobozzz 43666d616d Server: randomize the requests list
We don't want to stuck with the same failing requests
2016-10-26 20:28:34 +02:00
Chocobozzz b3d9251015 Server: Uploads -> Videos 2016-10-21 11:33:31 +02:00
Chocobozzz 80a6c9e76f Server: pod removing refractoring 2016-10-21 11:20:45 +02:00
Chocobozzz c2ee5ce83a Server: wait pod removal when finishing a request 2016-10-17 21:38:14 +02:00
Chocobozzz 25cad91992 Server: handle tls websockets 2016-10-17 21:10:29 +02:00
Chocobozzz bf94b6f0a1 Server: update to webseed implementation (tests, lint...) 2016-10-07 13:59:06 +02:00
Chocobozzz a6375e6966 Merge branch 'master' into webseed-merged 2016-10-02 15:39:09 +02:00
Chocobozzz c4403b29ad Server: remove useless hash affectations 2016-10-02 12:19:02 +02:00
Chocobozzz d6cf31b7e0 Server: add informations when removing requests of unexisting pod 2016-10-01 16:10:18 +02:00
Chocobozzz 5abeec313f Server: fix remaining milli seconds before the next requests feature 2016-10-01 15:33:27 +02:00
Chocobozzz 7c34bc6491 Server: fix error log when a friend request fails 2016-10-01 10:10:49 +02:00
Chocobozzz b91359055f Server: add information why a friend request failed (status code) 2016-10-01 09:48:49 +02:00
Chocobozzz b81929a014 Server: when we remove a user, remove the oauthtokens too 2016-10-01 09:12:02 +02:00
Chocobozzz 00d6b0dda4 Add migration (for db, folders...) mechanism 2016-09-26 22:39:58 +02:00
Chocobozzz d74a0680f7 Server: show user created date for the api 2016-09-23 17:19:57 +02:00
Chocobozzz d3cd34be2f Server: add requests stats endpoint 2016-09-19 21:33:46 +02:00
Chocobozzz 535724234a Server: add pod created date and score to the list controller 2016-08-26 18:55:10 +02:00
Chocobozzz 26d7d31ba3 Server: encrypt password in database 2016-08-25 17:57:37 +02:00
Chocobozzz e861452fb2 Server: put config in constants 2016-08-19 21:34:51 +02:00
Chocobozzz 5c39adb731 Server: add user list sort/pagination 2016-08-16 22:31:45 +02:00
Chocobozzz 089ff2f204 Server: optimize function to see if there are users or not 2016-08-16 21:51:35 +02:00
Chocobozzz 0ff21c1c08 Server: video.list -> video.listForApi (with pagination, sort...) 2016-08-16 21:51:04 +02:00
Chocobozzz 68a3b9f2aa Server: delete user with the id and not the username 2016-08-09 21:44:45 +02:00
Chocobozzz 9bd2662976 Implement user API (create, update, remove, list) 2016-08-04 22:33:38 +02:00
Chocobozzz e4c556196d Server: reorganize express validators 2016-07-31 20:58:43 +02:00
Chocobozzz 052937db8a First draft using only webseed for server 2016-07-27 21:21:57 +02:00
Chocobozzz 32bb415602 Server: Use ES6 promise for mongoose/node-oatuh2-server 2016-07-27 21:16:19 +02:00
Chocobozzz 419633ce9d Server: throttle "seedAll" when starting the server 2016-07-21 17:15:29 +02:00
Chocobozzz 2f372a8654 Server: implement refresh token 2016-07-20 16:23:58 +02:00
Chocobozzz 1a42c9e2c0 Server: udpate async to 2.0.0 2016-07-18 17:17:52 +02:00
Chocobozzz b359546358 Server: limit actions for each request between pods 2016-07-06 19:59:01 +02:00
Chocobozzz 4fea95df04 Server: fix videos pagination 2016-07-06 19:57:47 +02:00
Chocobozzz 6666aad459 Fix requests ordering between pods 2016-07-05 21:36:01 +02:00
Chocobozzz 5f698b82c7 Use dashes for filenames 2016-07-01 16:22:36 +02:00
Chocobozzz 69b0a27cbb OAuth/User models refractoring -> use mongoose api 2016-07-01 16:03:53 +02:00
Chocobozzz a3ee6fa22d Pod model refractoring -> use mongoose api 2016-06-30 22:39:08 +02:00
Chocobozzz 5189d08aac Video model: namePath -> filename 2016-06-28 20:19:41 +02:00
Chocobozzz 907e9510c2 Re enable the "seed all videos" function 2016-06-28 20:17:05 +02:00
Chocobozzz 00057e85a7 Request model refractoring -> use mongoose api 2016-06-28 20:10:32 +02:00