Browse Source

Fix server lint

develop
Chocobozzz 1 week ago
parent
commit
99b757488c
No known key found for this signature in database GPG Key ID: 583A612D890159BE
19 changed files with 28 additions and 22 deletions
  1. +8
    -2
      server/controllers/api/video-playlist.ts
  2. +1
    -1
      server/helpers/custom-validators/misc.ts
  3. +1
    -1
      server/helpers/ffmpeg/ffmpeg-commons.ts
  4. +1
    -1
      server/helpers/youtube-dl/youtube-dl-wrapper.ts
  5. +1
    -1
      server/initializers/constants.ts
  6. +1
    -1
      server/lib/activitypub/share.ts
  7. +1
    -1
      server/lib/job-queue/handlers/activitypub-cleaner.ts
  8. +1
    -1
      server/lib/job-queue/handlers/video-import.ts
  9. +1
    -1
      server/lib/moderation.ts
  10. +1
    -1
      server/lib/schedulers/plugins-check-scheduler.ts
  11. +1
    -1
      server/middlewares/activitypub.ts
  12. +2
    -2
      server/middlewares/validators/user-subscriptions.ts
  13. +1
    -1
      server/models/abuse/abuse.ts
  14. +2
    -2
      server/models/server/plugin.ts
  15. +1
    -1
      server/models/video/formatter/video-format-utils.ts
  16. +1
    -1
      server/models/video/sql/video/shared/abstract-video-query-builder.ts
  17. +1
    -1
      server/tests/api/live/live-fast-restream.ts
  18. +1
    -1
      shared/core-utils/i18n/i18n.ts
  19. +1
    -1
      shared/server-commands/server/server.ts

+ 8
- 2
server/controllers/api/video-playlist.ts View File

@@ -4,6 +4,7 @@ import { scheduleRefreshIfNeeded } from '@server/lib/activitypub/playlists'
import { Hooks } from '@server/lib/plugins/hooks'
import { getServerActor } from '@server/models/application/application'
import { MVideoPlaylistFull, MVideoPlaylistThumbnail, MVideoThumbnail } from '@server/types/models'
import { forceNumber } from '@shared/core-utils'
import { uuidToShort } from '@shared/extra-utils'
import { VideoPlaylistCreateResult, VideoPlaylistElementCreateResult } from '@shared/models'
import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
@@ -46,7 +47,6 @@ import {
import { AccountModel } from '../../models/account/account'
import { VideoPlaylistModel } from '../../models/video/video-playlist'
import { VideoPlaylistElementModel } from '../../models/video/video-playlist-element'
import { forceNumber } from '@shared/core-utils'

const reqThumbnailFile = createReqFiles([ 'thumbnailfile' ], MIMETYPES.IMAGE.MIMETYPE_EXT)

@@ -425,7 +425,13 @@ async function reorderVideosPlaylist (req: express.Request, res: express.Respons

const endOldPosition = oldPosition + reorderLength - 1
// Insert our reordered elements in their place (update)
await VideoPlaylistElementModel.reassignPositionOf({ videoPlaylistId: videoPlaylist.id, firstPosition: oldPosition, endPosition: endOldPosition, newPosition, transaction: t })
await VideoPlaylistElementModel.reassignPositionOf({
videoPlaylistId: videoPlaylist.id,
firstPosition: oldPosition,
endPosition: endOldPosition,
newPosition,
transaction: t
})

// Decrease positions of elements after the old position of our ordered elements (decrease)
await VideoPlaylistElementModel.increasePositionOf(videoPlaylist.id, oldPosition, -reorderLength, t)


+ 1
- 1
server/helpers/custom-validators/misc.ts View File

@@ -86,7 +86,7 @@ function isFileValid (options: {

// The file exists
const file = fileArray[0]
if (!file || !file.originalname) return false
if (!file?.originalname) return false

// Check size
if ((maxSize !== null) && file.size > maxSize) return false


+ 1
- 1
server/helpers/ffmpeg/ffmpeg-commons.ts View File

@@ -38,7 +38,7 @@ function getFFmpegVersion () {
return execPromise(`${ffmpegPath} -version`)
.then(stdout => {
const parsed = stdout.match(/ffmpeg version .?(\d+\.\d+(\.\d+)?)/)
if (!parsed || !parsed[1]) return rej(new Error(`Could not find ffmpeg version in ${stdout}`))
if (!parsed?.[1]) return rej(new Error(`Could not find ffmpeg version in ${stdout}`))

// Fix ffmpeg version that does not include patch version (4.4 for example)
let version = parsed[1]


+ 1
- 1
server/helpers/youtube-dl/youtube-dl-wrapper.ts View File

@@ -77,7 +77,7 @@ class YoutubeDLWrapper {

const subtitles = files.reduce((acc, filename) => {
const matched = filename.match(/\.([a-z]{2})(-[a-z]+)?\.(vtt|ttml)/i)
if (!matched || !matched[1]) return acc
if (!matched?.[1]) return acc

return [
...acc,


+ 1
- 1
server/initializers/constants.ts View File

@@ -711,7 +711,7 @@ const PREVIEWS_SIZE = {
height: 480,
minWidth: 400
}
const ACTOR_IMAGES_SIZE: { [key in ActorImageType]: { width: number, height: number }[]} = {
const ACTOR_IMAGES_SIZE: { [key in ActorImageType]: { width: number, height: number }[] } = {
[ActorImageType.AVATAR]: [
{
width: 120,


+ 1
- 1
server/lib/activitypub/share.ts View File

@@ -57,7 +57,7 @@ export {

async function addVideoShare (shareUrl: string, video: MVideoId) {
const { body } = await doJSONRequest<any>(shareUrl, { activityPub: true })
if (!body || !body.actor) throw new Error('Body or body actor is invalid')
if (!body?.actor) throw new Error('Body or body actor is invalid')

const actorUrl = getAPId(body.actor)
if (checkUrlsSameHost(shareUrl, actorUrl) !== true) {


+ 1
- 1
server/lib/job-queue/handlers/activitypub-cleaner.ts View File

@@ -88,7 +88,7 @@ async function updateObjectIfNeeded <T> (options: {
const { body } = await doJSONRequest<any>(url, { activityPub: true })

// If not same id, check same host and update
if (!body || !body.id || !bodyValidator(body)) throw new Error(`Body or body id of ${url} is invalid`)
if (!body?.id || !bodyValidator(body)) throw new Error(`Body or body id of ${url} is invalid`)

if (body.type === 'Tombstone') {
return on404OrTombstone()


+ 1
- 1
server/lib/job-queue/handlers/video-import.ts View File

@@ -107,7 +107,7 @@ async function processYoutubeDLImport (job: Job, videoImport: MVideoImportDefaul

async function getVideoImportOrDie (payload: VideoImportPayload) {
const videoImport = await VideoImportModel.loadAndPopulateVideo(payload.videoImportId)
if (!videoImport || !videoImport.Video) {
if (!videoImport?.Video) {
throw new Error(`Cannot import video ${payload.videoImportId}: the video import or video linked to this import does not exist anymore.`)
}



+ 1
- 1
server/lib/moderation.ts View File

@@ -220,7 +220,7 @@ async function createAbuse (options: {
base: FilteredModelAttributes<AbuseModel>
reporterAccount: MAccountDefault
flaggedAccount: MAccountLight
associateFun: (abuseInstance: MAbuseFull) => Promise<{ isOwned: boolean} >
associateFun: (abuseInstance: MAbuseFull) => Promise<{ isOwned: boolean }>
skipNotification: boolean
transaction: Transaction
}) {


+ 1
- 1
server/lib/schedulers/plugins-check-scheduler.ts View File

@@ -33,7 +33,7 @@ export class PluginsCheckScheduler extends AbstractScheduler {
const chunks = chunk(plugins, 10)
for (const chunk of chunks) {
// Find plugins according to their npm name
const pluginIndex: { [npmName: string]: PluginModel} = {}
const pluginIndex: { [npmName: string]: PluginModel } = {}
for (const plugin of chunk) {
pluginIndex[PluginModel.buildNpmName(plugin.name, plugin.type)] = plugin
}


+ 1
- 1
server/middlewares/activitypub.ts View File

@@ -125,7 +125,7 @@ async function checkJsonLDSignature (req: Request, res: Response) {
return wrapWithSpanAndContext('peertube.activitypub.JSONLDSignature', async () => {
const signatureObject: ActivityPubSignature = req.body.signature

if (!signatureObject || !signatureObject.creator) {
if (!signatureObject?.creator) {
res.fail({
status: HttpStatusCode.FORBIDDEN_403,
message: 'Object and creator signature do not match'


+ 2
- 2
server/middlewares/validators/user-subscriptions.ts View File

@@ -1,6 +1,6 @@
import { arrayify } from '@shared/core-utils'
import express from 'express'
import { body, param, query } from 'express-validator'
import { arrayify } from '@shared/core-utils'
import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
import { areValidActorHandles, isValidActorHandle } from '../../helpers/custom-validators/activitypub/actor'
import { WEBSERVER } from '../../initializers/constants'
@@ -60,7 +60,7 @@ const userSubscriptionGetValidator = [
state: 'accepted'
})

if (!subscription || !subscription.ActorFollowing.VideoChannel) {
if (!subscription?.ActorFollowing.VideoChannel) {
return res.fail({
status: HttpStatusCode.NOT_FOUND_404,
message: `Subscription ${req.params.uri} not found.`


+ 1
- 1
server/models/abuse/abuse.ts View File

@@ -436,7 +436,7 @@ export class AbuseModel extends Model<Partial<AttributesOnly<AbuseModel>>> {

buildBaseVideoCommentAbuse (this: MAbuseUserFormattable) {
// Associated video comment could have been destroyed if the video has been deleted
if (!this.VideoCommentAbuse || !this.VideoCommentAbuse.VideoComment) return null
if (!this.VideoCommentAbuse?.VideoComment) return null

const entity = this.VideoCommentAbuse.VideoComment



+ 2
- 2
server/models/server/plugin.ts View File

@@ -122,7 +122,7 @@ export class PluginModel extends Model<Partial<AttributesOnly<PluginModel>>> {

return PluginModel.findOne(query)
.then(p => {
if (!p || !p.settings || p.settings === undefined) {
if (!p?.settings || p.settings === undefined) {
const registered = registeredSettings.find(s => s.name === settingName)
if (!registered || registered.default === undefined) return undefined

@@ -152,7 +152,7 @@ export class PluginModel extends Model<Partial<AttributesOnly<PluginModel>>> {
const result: SettingEntries = {}

for (const name of settingNames) {
if (!p || !p.settings || p.settings[name] === undefined) {
if (!p?.settings || p.settings[name] === undefined) {
const registered = registeredSettings.find(s => s.name === name)

if (registered?.default !== undefined) {


+ 1
- 1
server/models/video/formatter/video-format-utils.ts View File

@@ -58,7 +58,7 @@ export type VideoFormattingJSONOptions = {
}

function guessAdditionalAttributesFromQuery (query: VideosCommonQueryAfterSanitize): VideoFormattingJSONOptions {
if (!query || !query.include) return {}
if (!query?.include) return {}

return {
additionalAttributes: {


+ 1
- 1
server/models/video/sql/video/shared/abstract-video-query-builder.ts View File

@@ -302,7 +302,7 @@ export class AbstractVideoQueryBuilder extends AbstractRunQuery {
}

protected buildAttributesObject (prefixKey: string, attributeKeys: string[]) {
const result: { [id: string]: string} = {}
const result: { [id: string]: string } = {}

const prefixValue = prefixKey.replace(/->/g, '.')



+ 1
- 1
server/tests/api/live/live-fast-restream.ts View File

@@ -130,7 +130,7 @@ describe('Fast restream in live', function () {
})

it('Should correctly fast reastream in a permanent live with and without save replay', async function () {
this.timeout(240000)
this.timeout(480000)

// A test can take a long time, so prefer to run them in parallel
await Promise.all([


+ 1
- 1
shared/core-utils/i18n/i18n.ts View File

@@ -82,7 +82,7 @@ export function isDefaultLocale (locale: string) {
}

export function peertubeTranslate (str: string, translations?: { [ id: string ]: string }) {
if (!translations || !translations[str]) return str
if (!translations?.[str]) return str

return translations[str]
}


+ 1
- 1
shared/server-commands/server/server.ts View File

@@ -259,7 +259,7 @@ export class PeerTubeServer {

const onPeerTubeExit = () => rej(new Error('Process exited:\n' + aggregatedLogs))
const onParentExit = () => {
if (!this.app || !this.app.pid) return
if (!this.app?.pid) return

try {
process.kill(self.app.pid)


Loading…
Cancel
Save