diff options
Diffstat (limited to 'server/controllers/activitypub')
-rw-r--r-- | server/controllers/activitypub/client.ts | 36 | ||||
-rw-r--r-- | server/controllers/activitypub/inbox.ts | 9 | ||||
-rw-r--r-- | server/controllers/activitypub/outbox.ts | 2 |
3 files changed, 20 insertions, 27 deletions
diff --git a/server/controllers/activitypub/client.ts b/server/controllers/activitypub/client.ts index cc2671fc1..e06aa35f4 100644 --- a/server/controllers/activitypub/client.ts +++ b/server/controllers/activitypub/client.ts | |||
@@ -169,27 +169,27 @@ export { | |||
169 | // --------------------------------------------------------------------------- | 169 | // --------------------------------------------------------------------------- |
170 | 170 | ||
171 | function accountController (req: express.Request, res: express.Response) { | 171 | function accountController (req: express.Request, res: express.Response) { |
172 | const account: AccountModel = res.locals.account | 172 | const account = res.locals.account |
173 | 173 | ||
174 | return activityPubResponse(activityPubContextify(account.toActivityPubObject()), res) | 174 | return activityPubResponse(activityPubContextify(account.toActivityPubObject()), res) |
175 | } | 175 | } |
176 | 176 | ||
177 | async function accountFollowersController (req: express.Request, res: express.Response) { | 177 | async function accountFollowersController (req: express.Request, res: express.Response) { |
178 | const account: AccountModel = res.locals.account | 178 | const account = res.locals.account |
179 | const activityPubResult = await actorFollowers(req, account.Actor) | 179 | const activityPubResult = await actorFollowers(req, account.Actor) |
180 | 180 | ||
181 | return activityPubResponse(activityPubContextify(activityPubResult), res) | 181 | return activityPubResponse(activityPubContextify(activityPubResult), res) |
182 | } | 182 | } |
183 | 183 | ||
184 | async function accountFollowingController (req: express.Request, res: express.Response) { | 184 | async function accountFollowingController (req: express.Request, res: express.Response) { |
185 | const account: AccountModel = res.locals.account | 185 | const account = res.locals.account |
186 | const activityPubResult = await actorFollowing(req, account.Actor) | 186 | const activityPubResult = await actorFollowing(req, account.Actor) |
187 | 187 | ||
188 | return activityPubResponse(activityPubContextify(activityPubResult), res) | 188 | return activityPubResponse(activityPubContextify(activityPubResult), res) |
189 | } | 189 | } |
190 | 190 | ||
191 | async function accountPlaylistsController (req: express.Request, res: express.Response) { | 191 | async function accountPlaylistsController (req: express.Request, res: express.Response) { |
192 | const account: AccountModel = res.locals.account | 192 | const account = res.locals.account |
193 | const activityPubResult = await actorPlaylists(req, account) | 193 | const activityPubResult = await actorPlaylists(req, account) |
194 | 194 | ||
195 | return activityPubResponse(activityPubContextify(activityPubResult), res) | 195 | return activityPubResponse(activityPubContextify(activityPubResult), res) |
@@ -197,7 +197,7 @@ async function accountPlaylistsController (req: express.Request, res: express.Re | |||
197 | 197 | ||
198 | function getAccountVideoRate (rateType: VideoRateType) { | 198 | function getAccountVideoRate (rateType: VideoRateType) { |
199 | return (req: express.Request, res: express.Response) => { | 199 | return (req: express.Request, res: express.Response) => { |
200 | const accountVideoRate: AccountVideoRateModel = res.locals.accountVideoRate | 200 | const accountVideoRate = res.locals.accountVideoRate |
201 | 201 | ||
202 | const byActor = accountVideoRate.Account.Actor | 202 | const byActor = accountVideoRate.Account.Actor |
203 | const url = getRateUrl(rateType, byActor, accountVideoRate.Video) | 203 | const url = getRateUrl(rateType, byActor, accountVideoRate.Video) |
@@ -211,7 +211,7 @@ function getAccountVideoRate (rateType: VideoRateType) { | |||
211 | 211 | ||
212 | async function videoController (req: express.Request, res: express.Response) { | 212 | async function videoController (req: express.Request, res: express.Response) { |
213 | // We need more attributes | 213 | // We need more attributes |
214 | const video: VideoModel = await VideoModel.loadForGetAPI(res.locals.video.id) | 214 | const video = await VideoModel.loadForGetAPI(res.locals.video.id) |
215 | 215 | ||
216 | if (video.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(video.url) | 216 | if (video.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(video.url) |
217 | 217 | ||
@@ -230,7 +230,7 @@ async function videoController (req: express.Request, res: express.Response) { | |||
230 | } | 230 | } |
231 | 231 | ||
232 | async function videoAnnounceController (req: express.Request, res: express.Response) { | 232 | async function videoAnnounceController (req: express.Request, res: express.Response) { |
233 | const share = res.locals.videoShare as VideoShareModel | 233 | const share = res.locals.videoShare |
234 | 234 | ||
235 | if (share.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(share.url) | 235 | if (share.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(share.url) |
236 | 236 | ||
@@ -240,7 +240,7 @@ async function videoAnnounceController (req: express.Request, res: express.Respo | |||
240 | } | 240 | } |
241 | 241 | ||
242 | async function videoAnnouncesController (req: express.Request, res: express.Response) { | 242 | async function videoAnnouncesController (req: express.Request, res: express.Response) { |
243 | const video: VideoModel = res.locals.video | 243 | const video = res.locals.video |
244 | 244 | ||
245 | const handler = async (start: number, count: number) => { | 245 | const handler = async (start: number, count: number) => { |
246 | const result = await VideoShareModel.listAndCountByVideoId(video.id, start, count) | 246 | const result = await VideoShareModel.listAndCountByVideoId(video.id, start, count) |
@@ -255,21 +255,21 @@ async function videoAnnouncesController (req: express.Request, res: express.Resp | |||
255 | } | 255 | } |
256 | 256 | ||
257 | async function videoLikesController (req: express.Request, res: express.Response) { | 257 | async function videoLikesController (req: express.Request, res: express.Response) { |
258 | const video: VideoModel = res.locals.video | 258 | const video = res.locals.video |
259 | const json = await videoRates(req, 'like', video, getVideoLikesActivityPubUrl(video)) | 259 | const json = await videoRates(req, 'like', video, getVideoLikesActivityPubUrl(video)) |
260 | 260 | ||
261 | return activityPubResponse(activityPubContextify(json), res) | 261 | return activityPubResponse(activityPubContextify(json), res) |
262 | } | 262 | } |
263 | 263 | ||
264 | async function videoDislikesController (req: express.Request, res: express.Response) { | 264 | async function videoDislikesController (req: express.Request, res: express.Response) { |
265 | const video: VideoModel = res.locals.video | 265 | const video = res.locals.video |
266 | const json = await videoRates(req, 'dislike', video, getVideoDislikesActivityPubUrl(video)) | 266 | const json = await videoRates(req, 'dislike', video, getVideoDislikesActivityPubUrl(video)) |
267 | 267 | ||
268 | return activityPubResponse(activityPubContextify(json), res) | 268 | return activityPubResponse(activityPubContextify(json), res) |
269 | } | 269 | } |
270 | 270 | ||
271 | async function videoCommentsController (req: express.Request, res: express.Response) { | 271 | async function videoCommentsController (req: express.Request, res: express.Response) { |
272 | const video: VideoModel = res.locals.video | 272 | const video = res.locals.video |
273 | 273 | ||
274 | const handler = async (start: number, count: number) => { | 274 | const handler = async (start: number, count: number) => { |
275 | const result = await VideoCommentModel.listAndCountByVideoId(video.id, start, count) | 275 | const result = await VideoCommentModel.listAndCountByVideoId(video.id, start, count) |
@@ -284,27 +284,27 @@ async function videoCommentsController (req: express.Request, res: express.Respo | |||
284 | } | 284 | } |
285 | 285 | ||
286 | async function videoChannelController (req: express.Request, res: express.Response) { | 286 | async function videoChannelController (req: express.Request, res: express.Response) { |
287 | const videoChannel: VideoChannelModel = res.locals.videoChannel | 287 | const videoChannel = res.locals.videoChannel |
288 | 288 | ||
289 | return activityPubResponse(activityPubContextify(videoChannel.toActivityPubObject()), res) | 289 | return activityPubResponse(activityPubContextify(videoChannel.toActivityPubObject()), res) |
290 | } | 290 | } |
291 | 291 | ||
292 | async function videoChannelFollowersController (req: express.Request, res: express.Response) { | 292 | async function videoChannelFollowersController (req: express.Request, res: express.Response) { |
293 | const videoChannel: VideoChannelModel = res.locals.videoChannel | 293 | const videoChannel = res.locals.videoChannel |
294 | const activityPubResult = await actorFollowers(req, videoChannel.Actor) | 294 | const activityPubResult = await actorFollowers(req, videoChannel.Actor) |
295 | 295 | ||
296 | return activityPubResponse(activityPubContextify(activityPubResult), res) | 296 | return activityPubResponse(activityPubContextify(activityPubResult), res) |
297 | } | 297 | } |
298 | 298 | ||
299 | async function videoChannelFollowingController (req: express.Request, res: express.Response) { | 299 | async function videoChannelFollowingController (req: express.Request, res: express.Response) { |
300 | const videoChannel: VideoChannelModel = res.locals.videoChannel | 300 | const videoChannel = res.locals.videoChannel |
301 | const activityPubResult = await actorFollowing(req, videoChannel.Actor) | 301 | const activityPubResult = await actorFollowing(req, videoChannel.Actor) |
302 | 302 | ||
303 | return activityPubResponse(activityPubContextify(activityPubResult), res) | 303 | return activityPubResponse(activityPubContextify(activityPubResult), res) |
304 | } | 304 | } |
305 | 305 | ||
306 | async function videoCommentController (req: express.Request, res: express.Response) { | 306 | async function videoCommentController (req: express.Request, res: express.Response) { |
307 | const videoComment: VideoCommentModel = res.locals.videoComment | 307 | const videoComment = res.locals.videoComment |
308 | 308 | ||
309 | if (videoComment.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(videoComment.url) | 309 | if (videoComment.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(videoComment.url) |
310 | 310 | ||
@@ -323,7 +323,7 @@ async function videoCommentController (req: express.Request, res: express.Respon | |||
323 | } | 323 | } |
324 | 324 | ||
325 | async function videoRedundancyController (req: express.Request, res: express.Response) { | 325 | async function videoRedundancyController (req: express.Request, res: express.Response) { |
326 | const videoRedundancy: VideoRedundancyModel = res.locals.videoRedundancy | 326 | const videoRedundancy = res.locals.videoRedundancy |
327 | if (videoRedundancy.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(videoRedundancy.url) | 327 | if (videoRedundancy.url.startsWith(CONFIG.WEBSERVER.URL) === false) return res.redirect(videoRedundancy.url) |
328 | 328 | ||
329 | const serverActor = await getServerActor() | 329 | const serverActor = await getServerActor() |
@@ -340,7 +340,7 @@ async function videoRedundancyController (req: express.Request, res: express.Res | |||
340 | } | 340 | } |
341 | 341 | ||
342 | async function videoPlaylistController (req: express.Request, res: express.Response) { | 342 | async function videoPlaylistController (req: express.Request, res: express.Response) { |
343 | const playlist: VideoPlaylistModel = res.locals.videoPlaylist | 343 | const playlist = res.locals.videoPlaylist |
344 | 344 | ||
345 | // We need more attributes | 345 | // We need more attributes |
346 | playlist.OwnerAccount = await AccountModel.load(playlist.ownerAccountId) | 346 | playlist.OwnerAccount = await AccountModel.load(playlist.ownerAccountId) |
@@ -353,7 +353,7 @@ async function videoPlaylistController (req: express.Request, res: express.Respo | |||
353 | } | 353 | } |
354 | 354 | ||
355 | async function videoPlaylistElementController (req: express.Request, res: express.Response) { | 355 | async function videoPlaylistElementController (req: express.Request, res: express.Response) { |
356 | const videoPlaylistElement: VideoPlaylistElementModel = res.locals.videoPlaylistElement | 356 | const videoPlaylistElement = res.locals.videoPlaylistElement |
357 | 357 | ||
358 | const json = videoPlaylistElement.toActivityPubObject() | 358 | const json = videoPlaylistElement.toActivityPubObject() |
359 | return activityPubResponse(activityPubContextify(json), res) | 359 | return activityPubResponse(activityPubContextify(json), res) |
diff --git a/server/controllers/activitypub/inbox.ts b/server/controllers/activitypub/inbox.ts index f0e65015b..38d5c51df 100644 --- a/server/controllers/activitypub/inbox.ts +++ b/server/controllers/activitypub/inbox.ts | |||
@@ -5,8 +5,6 @@ import { logger } from '../../helpers/logger' | |||
5 | import { processActivities } from '../../lib/activitypub/process/process' | 5 | import { processActivities } from '../../lib/activitypub/process/process' |
6 | import { asyncMiddleware, checkSignature, localAccountValidator, localVideoChannelValidator, signatureValidator } from '../../middlewares' | 6 | import { asyncMiddleware, checkSignature, localAccountValidator, localVideoChannelValidator, signatureValidator } from '../../middlewares' |
7 | import { activityPubValidator } from '../../middlewares/validators/activitypub/activity' | 7 | import { activityPubValidator } from '../../middlewares/validators/activitypub/activity' |
8 | import { VideoChannelModel } from '../../models/video/video-channel' | ||
9 | import { AccountModel } from '../../models/account/account' | ||
10 | import { queue } from 'async' | 8 | import { queue } from 'async' |
11 | import { ActorModel } from '../../models/activitypub/actor' | 9 | import { ActorModel } from '../../models/activitypub/actor' |
12 | 10 | ||
@@ -66,12 +64,7 @@ function inboxController (req: express.Request, res: express.Response) { | |||
66 | activities = activities.filter(a => isActivityValid(a)) | 64 | activities = activities.filter(a => isActivityValid(a)) |
67 | logger.debug('We keep %d activities.', activities.length, { activities }) | 65 | logger.debug('We keep %d activities.', activities.length, { activities }) |
68 | 66 | ||
69 | let accountOrChannel: VideoChannelModel | AccountModel | 67 | const accountOrChannel = res.locals.account || res.locals.videoChannel |
70 | if (res.locals.account) { | ||
71 | accountOrChannel = res.locals.account | ||
72 | } else if (res.locals.videoChannel) { | ||
73 | accountOrChannel = res.locals.videoChannel | ||
74 | } | ||
75 | 68 | ||
76 | logger.info('Receiving inbox requests for %d activities by %s.', activities.length, res.locals.signature.actor.url) | 69 | logger.info('Receiving inbox requests for %d activities by %s.', activities.length, res.locals.signature.actor.url) |
77 | 70 | ||
diff --git a/server/controllers/activitypub/outbox.ts b/server/controllers/activitypub/outbox.ts index e060affb2..38b6ec976 100644 --- a/server/controllers/activitypub/outbox.ts +++ b/server/controllers/activitypub/outbox.ts | |||
@@ -33,7 +33,7 @@ export { | |||
33 | // --------------------------------------------------------------------------- | 33 | // --------------------------------------------------------------------------- |
34 | 34 | ||
35 | async function outboxController (req: express.Request, res: express.Response) { | 35 | async function outboxController (req: express.Request, res: express.Response) { |
36 | const accountOrVideoChannel: AccountModel | VideoChannelModel = res.locals.account || res.locals.videoChannel | 36 | const accountOrVideoChannel = res.locals.account || res.locals.videoChannel |
37 | const actor = accountOrVideoChannel.Actor | 37 | const actor = accountOrVideoChannel.Actor |
38 | const actorOutboxUrl = actor.url + '/outbox' | 38 | const actorOutboxUrl = actor.url + '/outbox' |
39 | 39 | ||