]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/requests.ts
Translated using Weblate (Vietnamese)
[github/Chocobozzz/PeerTube.git] / server / helpers / requests.ts
index 5eb69486d4dbe11b3bbfda034a4950c4711343d1..d3c83d26e29f25dc78ac884e3cda2c3a2003e17e 100644 (file)
@@ -2,7 +2,7 @@ import { createWriteStream, remove } from 'fs-extra'
 import got, { CancelableRequest, Options as GotOptions, RequestError } from 'got'
 import { join } from 'path'
 import { CONFIG } from '../initializers/config'
-import { ACTIVITY_PUB, PEERTUBE_VERSION, WEBSERVER } from '../initializers/constants'
+import { ACTIVITY_PUB, PEERTUBE_VERSION, REQUEST_TIMEOUT, WEBSERVER } from '../initializers/constants'
 import { pipelinePromise } from './core-utils'
 import { processImage } from './image-utils'
 import { logger } from './logger'
@@ -24,6 +24,7 @@ type PeerTubeRequestOptions = {
     key: string
     headers: string[]
   }
+  timeout?: number
   jsonResponse?: boolean
 } & Pick<GotOptions, 'headers' | 'json' | 'method' | 'searchParams'>
 
@@ -92,6 +93,10 @@ const peertubeGot = got.extend({
             path
           }, httpSignatureOptions)
         }
+      },
+
+      (options: GotOptions) => {
+        options.timeout = REQUEST_TIMEOUT
       }
     ]
   }
@@ -170,9 +175,11 @@ function buildGotOptions (options: PeerTubeRequestOptions) {
 
   let headers = options.headers || {}
 
-  headers = { ...headers, date: new Date().toUTCString() }
+  if (!headers.date) {
+    headers = { ...headers, date: new Date().toUTCString() }
+  }
 
-  if (activityPub) {
+  if (activityPub && !headers.accept) {
     headers = { ...headers, accept: ACTIVITY_PUB.ACCEPT_HEADER }
   }
 
@@ -180,6 +187,7 @@ function buildGotOptions (options: PeerTubeRequestOptions) {
     method: options.method,
     json: options.json,
     searchParams: options.searchParams,
+    timeout: options.timeout ?? REQUEST_TIMEOUT,
     headers,
     context
   }