Check latest plugins version with config interval
authorChocobozzz <me@florianbigard.com>
Tue, 16 Jul 2019 13:03:00 +0000 (15:03 +0200)
committerChocobozzz <chocobozzz@cpy.re>
Wed, 24 Jul 2019 08:58:16 +0000 (10:58 +0200)
config/default.yaml
config/production.yaml.example
server/initializers/config.ts
server/initializers/constants.ts
server/lib/schedulers/plugins-check-scheduler.ts

index 341de49b8f65f226a56731fc9501d95ef907e374..a26625ab3e3c432cdc8a08736c725c59064015a1 100644 (file)
@@ -156,10 +156,11 @@ views:
       max_age: -1
 
 plugins:
-  # The website PeerTube will ask for available PeerTube plugins
-  # This is an unmoderated plugin index, so only install plugins you trust
+  # The website PeerTube will ask for available PeerTube plugins and themes
+  # This is an unmoderated plugin index, so only install plugins/themes you trust
   index:
     enabled: true
+    check_latest_versions_interval: '1 day' # How often you want to check new plugins/themes versions
     url: 'https://packages.joinpeertube.org'
 
 cache:
index 28f078efee2e06e49a6a9c975161d04432aafc9b..ec7744deb16b331a42c5d29763edf45d2f98ab47 100644 (file)
@@ -161,6 +161,7 @@ plugins:
   # This is an unmoderated plugin index, so only install plugins you trust
   index:
     enabled: true
+    check_latest_versions_interval: '1 day' # How often you want to check new plugins/themes versions
     url: 'https://packages.joinpeertube.org'
 
 
index 2c1b30021ed24c654a57541f5e65d821c0ee1d8a..58241e4ea9553dce28d556a9fd10c0343e586283 100644 (file)
@@ -137,7 +137,8 @@ const CONFIG = {
   PLUGINS: {
     INDEX: {
       ENABLED: config.get<boolean>('plugins.index.enabled'),
-      URL: config.get<boolean>('plugins.index.url')
+      CHECK_LATEST_VERSIONS_INTERVAL: parseDurationToMs(config.get<string>('plugins.index.check_latest_versions_interval')),
+      URL: config.get<string>('plugins.index.url')
     }
   },
   ADMIN: {
index 367ae8d45872ba964a7849c9cf626afc93161186..cd4d4e847c5445af46a503d90b0494dfe5a0978a 100644 (file)
@@ -4,7 +4,7 @@ import { ActivityPubActorType } from '../../shared/models/activitypub'
 import { FollowState } from '../../shared/models/actors'
 import { VideoAbuseState, VideoImportState, VideoPrivacy, VideoTranscodingFPS } from '../../shared/models/videos'
 // Do not use barrels, remain constants as independent as possible
-import { isTestInstance, sanitizeHost, sanitizeUrl, root } from '../helpers/core-utils'
+import { isTestInstance, sanitizeHost, sanitizeUrl, root, parseDurationToMs } from '../helpers/core-utils'
 import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type'
 import { invert } from 'lodash'
 import { CronRepeatOptions, EveryRepeatOptions } from 'bull'
@@ -167,7 +167,7 @@ const SCHEDULER_INTERVALS_MS = {
   removeOldJobs: 60000 * 60, // 1 hour
   updateVideos: 60000, // 1 minute
   youtubeDLUpdate: 60000 * 60 * 24, // 1 day
-  checkPlugins: 60000 * 60 * 24, // 1 day
+  checkPlugins: CONFIG.PLUGINS.INDEX.CHECK_LATEST_VERSIONS_INTERVAL,
   removeOldViews: 60000 * 60 * 24, // 1 day
   removeOldHistory: 60000 * 60 * 24 // 1 day
 }
@@ -618,7 +618,6 @@ if (isTestInstance() === true) {
   SCHEDULER_INTERVALS_MS.removeOldHistory = 5000
   SCHEDULER_INTERVALS_MS.removeOldViews = 5000
   SCHEDULER_INTERVALS_MS.updateVideos = 5000
-  SCHEDULER_INTERVALS_MS.checkPlugins = 10000
   REPEAT_JOBS[ 'videos-views' ] = { every: 5000 }
 
   REDUNDANCY.VIDEOS.RANDOMIZED_FACTOR = 1
index 8dfdd5177843efbd953d070c318c2af05be617c3..7ff41e6394e152649f66796b6be395746bedfe63 100644 (file)
@@ -53,7 +53,7 @@ export class PluginsCheckScheduler extends AbstractScheduler {
             plugin.latestVersion = result.latestVersion
             await plugin.save()
 
-            logger.info('Plugin %s has a new latest version %s.', PluginModel.buildNpmName(plugin.name, plugin.type), plugin.latestVersion)
+            logger.info('Plugin %s has a new latest version %s.', result.npmName, plugin.latestVersion)
           }
         }
       } catch (err) {