]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/friends.ts
Fix lint
[github/Chocobozzz/PeerTube.git] / server / lib / friends.ts
index c24839cb6ad28e76bc4055ee767d8ef53fe2917b..50355d5d17af216936ecc0f893167c4f74ff6deb 100644 (file)
@@ -1,6 +1,7 @@
 import * as request from 'request'
 import * as Sequelize from 'sequelize'
 import * as Promise from 'bluebird'
+import { join } from 'path'
 
 import { database as db } from '../initializers/database'
 import {
@@ -9,7 +10,8 @@ import {
   REQUESTS_IN_PARALLEL,
   REQUEST_ENDPOINTS,
   REQUEST_ENDPOINT_ACTIONS,
-  REMOTE_SCHEME
+  REMOTE_SCHEME,
+  STATIC_PATHS
 } from '../initializers'
 import {
   logger,
@@ -34,11 +36,17 @@ import {
 import {
   RequestEndpoint,
   RequestVideoEventType,
-  RequestVideoQaduType
+  RequestVideoQaduType,
+  RemoteVideoCreateData,
+  RemoteVideoUpdateData,
+  RemoteVideoRemoveData,
+  RemoteVideoReportAbuseData,
+  ResultList,
+  Pod as FormatedPod
 } from '../../shared'
 
-type QaduParam = { videoId: string, type: RequestVideoQaduType }
-type EventParam = { videoId: string, type: RequestVideoEventType }
+type QaduParam = { videoId: number, type: RequestVideoQaduType }
+type EventParam = { videoId: number, type: RequestVideoEventType }
 
 const ENDPOINT_ACTIONS = REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS]
 
@@ -52,7 +60,7 @@ function activateSchedulers () {
   requestVideoEventScheduler.activate()
 }
 
-function addVideoToFriends (videoData: Object, transaction: Sequelize.Transaction) {
+function addVideoToFriends (videoData: RemoteVideoCreateData, transaction: Sequelize.Transaction) {
   const options = {
     type: ENDPOINT_ACTIONS.ADD,
     endpoint: REQUEST_ENDPOINTS.VIDEOS,
@@ -62,7 +70,7 @@ function addVideoToFriends (videoData: Object, transaction: Sequelize.Transactio
   return createRequest(options)
 }
 
-function updateVideoToFriends (videoData: Object, transaction: Sequelize.Transaction) {
+function updateVideoToFriends (videoData: RemoteVideoUpdateData, transaction: Sequelize.Transaction) {
   const options = {
     type: ENDPOINT_ACTIONS.UPDATE,
     endpoint: REQUEST_ENDPOINTS.VIDEOS,
@@ -72,7 +80,7 @@ function updateVideoToFriends (videoData: Object, transaction: Sequelize.Transac
   return createRequest(options)
 }
 
-function removeVideoToFriends (videoParams: Object) {
+function removeVideoToFriends (videoParams: RemoteVideoRemoveData) {
   const options = {
     type: ENDPOINT_ACTIONS.REMOVE,
     endpoint: REQUEST_ENDPOINTS.VIDEOS,
@@ -82,7 +90,7 @@ function removeVideoToFriends (videoParams: Object) {
   return createRequest(options)
 }
 
-function reportAbuseVideoToFriend (reportData: Object, video: VideoInstance, transaction: Sequelize.Transaction) {
+function reportAbuseVideoToFriend (reportData: RemoteVideoReportAbuseData, video: VideoInstance, transaction: Sequelize.Transaction) {
   const options = {
     type: ENDPOINT_ACTIONS.REPORT_ABUSE,
     endpoint: REQUEST_ENDPOINTS.VIDEOS,
@@ -105,7 +113,7 @@ function quickAndDirtyUpdateVideoToFriends (qaduParam: QaduParam, transaction?:
 function quickAndDirtyUpdatesVideoToFriends (qadusParams: QaduParam[], transaction: Sequelize.Transaction) {
   const tasks = []
 
-  qadusParams.forEach(function (qaduParams) {
+  qadusParams.forEach(qaduParams => {
     tasks.push(quickAndDirtyUpdateVideoToFriends(qaduParams, transaction))
   })
 
@@ -124,7 +132,7 @@ function addEventToRemoteVideo (eventParam: EventParam, transaction?: Sequelize.
 function addEventsToRemoteVideo (eventsParams: EventParam[], transaction: Sequelize.Transaction) {
   const tasks = []
 
-  eventsParams.forEach(function (eventParams) {
+  eventsParams.forEach(eventParams => {
     tasks.push(addEventToRemoteVideo(eventParams, transaction))
   })
 
@@ -180,7 +188,7 @@ function quitFriends () {
       }, { concurrency: REQUESTS_IN_PARALLEL })
       .then(() => pods)
       .catch(err => {
-        logger.error('Some errors while quitting friends.', { err: err })
+        logger.error('Some errors while quitting friends.', err)
         // Don't stop the process
       })
     })
@@ -215,7 +223,7 @@ function sendOwnedVideosToPod (podId: number) {
             return createRequest(options)
           })
           .catch(err => {
-            logger.error('Cannot convert video to remote.', { error: err })
+            logger.error('Cannot convert video to remote.', err)
             // Don't break the process
             return undefined
           })
@@ -227,6 +235,13 @@ function sendOwnedVideosToPod (podId: number) {
     })
 }
 
+function fetchRemotePreview (pod: PodInstance, video: VideoInstance) {
+  const host = video.Author.Pod.host
+  const path = join(STATIC_PATHS.PREVIEWS, video.getPreviewName())
+
+  return request.get(REMOTE_SCHEME.HTTP + '://' + host + path)
+}
+
 function getRequestScheduler () {
   return requestScheduler
 }
@@ -257,15 +272,16 @@ export {
   sendOwnedVideosToPod,
   getRequestScheduler,
   getRequestVideoQaduScheduler,
-  getRequestVideoEventScheduler
+  getRequestVideoEventScheduler,
+  fetchRemotePreview
 }
 
 // ---------------------------------------------------------------------------
 
 function computeForeignPodsList (host: string, podsScore: { [ host: string ]: number }) {
   // TODO: type res
-  return getForeignPodsList(host).then((res: any) => {
-    const foreignPodsList = res.data
+  return getForeignPodsList(host).then(res => {
+    const foreignPodsList: { host: string }[] = res.data
 
     // Let's give 1 point to the pod we ask the friends list
     foreignPodsList.push({ host })
@@ -298,10 +314,10 @@ function computeWinningPods (hosts: string[], podsScore: { [ host: string ]: num
 }
 
 function getForeignPodsList (host: string) {
-  return new Promise((res, rej) => {
+  return new Promise< ResultList<FormatedPod> >((res, rej) => {
     const path = '/api/' + API_VERSION + '/pods'
 
-    request.get(REMOTE_SCHEME.HTTP + '://' + host + path, function (err, response, body) {
+    request.get(REMOTE_SCHEME.HTTP + '://' + host + path, (err, response, body) => {
       if (err) return rej(err)
 
       try {
@@ -344,7 +360,7 @@ function makeRequestsToWinningPods (cert: string, podsList: PodInstance[]) {
               sendOwnedVideosToPod(podCreated.id)
             })
             .catch(err => {
-              logger.error('Cannot add friend %s pod.', pod.host, { error: err })
+              logger.error('Cannot add friend %s pod.', pod.host, err)
             })
         } else {
           logger.error('Status not 200 for %s pod.', pod.host)