]>
Commit | Line | Data |
---|---|---|
892211e8 C |
1 | import { join } from 'path' |
2 | import * as request from 'request' | |
0032ebe9 | 3 | import { Transaction } from 'sequelize' |
892211e8 | 4 | import { ActivityIconObject } from '../../../shared/index' |
da854ddd | 5 | import { doRequest, doRequestAndSaveToFile } from '../../helpers/requests' |
3fd3ab2d C |
6 | import { CONFIG, REMOTE_SCHEME, STATIC_PATHS } from '../../initializers' |
7 | import { AccountModel } from '../../models/account/account' | |
8 | import { VideoModel } from '../../models/video/video' | |
0032ebe9 | 9 | import { |
da854ddd C |
10 | sendCreateDislikeToOrigin, sendCreateDislikeToVideoFollowers, sendLikeToOrigin, sendLikeToVideoFollowers, sendUndoDislikeToOrigin, |
11 | sendUndoDislikeToVideoFollowers, sendUndoLikeToOrigin, sendUndoLikeToVideoFollowers | |
3fd3ab2d | 12 | } from './send' |
892211e8 | 13 | |
d50acfab | 14 | function fetchRemoteVideoPreview (video: VideoModel, reject: Function) { |
892211e8 | 15 | // FIXME: use url |
50d6de9c | 16 | const host = video.VideoChannel.Account.Actor.Server.host |
892211e8 C |
17 | const path = join(STATIC_PATHS.PREVIEWS, video.getPreviewName()) |
18 | ||
f40bbe31 C |
19 | return request.get(REMOTE_SCHEME.HTTP + '://' + host + path, err => { |
20 | if (err) reject(err) | |
21 | }) | |
892211e8 C |
22 | } |
23 | ||
3fd3ab2d | 24 | async function fetchRemoteVideoDescription (video: VideoModel) { |
892211e8 | 25 | // FIXME: use url |
50d6de9c | 26 | const host = video.VideoChannel.Account.Actor.Server.host |
892211e8 C |
27 | const path = video.getDescriptionPath() |
28 | const options = { | |
29 | uri: REMOTE_SCHEME.HTTP + '://' + host + path, | |
30 | json: true | |
31 | } | |
32 | ||
33 | const { body } = await doRequest(options) | |
34 | return body.description ? body.description : '' | |
35 | } | |
36 | ||
3fd3ab2d | 37 | function generateThumbnailFromUrl (video: VideoModel, icon: ActivityIconObject) { |
892211e8 C |
38 | const thumbnailName = video.getThumbnailName() |
39 | const thumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, thumbnailName) | |
40 | ||
41 | const options = { | |
42 | method: 'GET', | |
43 | uri: icon.url | |
44 | } | |
45 | return doRequestAndSaveToFile(options, thumbnailPath) | |
46 | } | |
47 | ||
f00984c0 | 48 | async function sendVideoRateChangeToFollowers ( |
50d6de9c | 49 | account: AccountModel, |
3fd3ab2d | 50 | video: VideoModel, |
f00984c0 C |
51 | likes: number, |
52 | dislikes: number, | |
53 | t: Transaction | |
54 | ) { | |
50d6de9c C |
55 | const actor = account.Actor |
56 | ||
f00984c0 | 57 | // Keep the order: first we undo and then we create |
0032ebe9 C |
58 | |
59 | // Undo Like | |
50d6de9c | 60 | if (likes < 0) await sendUndoLikeToVideoFollowers(actor, video, t) |
0032ebe9 | 61 | // Undo Dislike |
50d6de9c | 62 | if (dislikes < 0) await sendUndoDislikeToVideoFollowers(actor, video, t) |
0032ebe9 | 63 | |
f00984c0 | 64 | // Like |
50d6de9c | 65 | if (likes > 0) await sendLikeToVideoFollowers(actor, video, t) |
f00984c0 | 66 | // Dislike |
50d6de9c | 67 | if (dislikes > 0) await sendCreateDislikeToVideoFollowers(actor, video, t) |
0032ebe9 C |
68 | } |
69 | ||
f00984c0 | 70 | async function sendVideoRateChangeToOrigin ( |
50d6de9c | 71 | account: AccountModel, |
3fd3ab2d | 72 | video: VideoModel, |
f00984c0 C |
73 | likes: number, |
74 | dislikes: number, | |
75 | t: Transaction | |
76 | ) { | |
50d6de9c C |
77 | const actor = account.Actor |
78 | ||
f00984c0 | 79 | // Keep the order: first we undo and then we create |
0032ebe9 C |
80 | |
81 | // Undo Like | |
50d6de9c | 82 | if (likes < 0) await sendUndoLikeToOrigin(actor, video, t) |
0032ebe9 | 83 | // Undo Dislike |
50d6de9c | 84 | if (dislikes < 0) await sendUndoDislikeToOrigin(actor, video, t) |
0032ebe9 | 85 | |
f00984c0 | 86 | // Like |
50d6de9c | 87 | if (likes > 0) await sendLikeToOrigin(actor, video, t) |
f00984c0 | 88 | // Dislike |
50d6de9c | 89 | if (dislikes > 0) await sendCreateDislikeToOrigin(actor, video, t) |
0032ebe9 C |
90 | } |
91 | ||
892211e8 C |
92 | export { |
93 | fetchRemoteVideoPreview, | |
94 | fetchRemoteVideoDescription, | |
0032ebe9 C |
95 | generateThumbnailFromUrl, |
96 | sendVideoRateChangeToFollowers, | |
97 | sendVideoRateChangeToOrigin | |
892211e8 | 98 | } |