summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-02-05 03:01:36 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-02-05 03:01:36 +0900
commitf014b7ae0ece886ef0cff2366b9925e23b34ba6f (patch)
treec35760467278da408348fcd459415af7a63e08e9 /src/models
parentRefactor: Better type definition (diff)
downloadsharkey-f014b7ae0ece886ef0cff2366b9925e23b34ba6f.tar.gz
sharkey-f014b7ae0ece886ef0cff2366b9925e23b34ba6f.tar.bz2
sharkey-f014b7ae0ece886ef0cff2366b9925e23b34ba6f.zip
アニメーションを自動再生しないオプション (#4131)
* Refactor * settings * Media Proxy * Replace API response
Diffstat (limited to 'src/models')
-rw-r--r--src/models/drive-file.ts10
-rw-r--r--src/models/note.ts10
-rw-r--r--src/models/user.ts10
3 files changed, 24 insertions, 6 deletions
diff --git a/src/models/drive-file.ts b/src/models/drive-file.ts
index 62a544c214..e788ac2b2f 100644
--- a/src/models/drive-file.ts
+++ b/src/models/drive-file.ts
@@ -1,10 +1,11 @@
import * as mongo from 'mongodb';
import * as deepcopy from 'deepcopy';
import { pack as packFolder } from './drive-folder';
-import { pack as packUser } from './user';
+import { pack as packUser, IUser } from './user';
import monkDb, { nativeDbConn, dbLogger } from '../db/mongodb';
import isObjectId from '../misc/is-objectid';
import getDriveFileUrl, { getOriginalUrl } from '../misc/get-drive-file-url';
+import wrapUrl from '../misc/wrap-url';
const DriveFile = monkDb.get<IDriveFile>('driveFiles.files');
DriveFile.createIndex('md5');
@@ -133,6 +134,7 @@ export const packMany = (
detail?: boolean
self?: boolean,
withUser?: boolean,
+ me?: string | mongo.ObjectID | IUser,
}
) => {
return Promise.all(files.map(f => pack(f, options)));
@@ -147,6 +149,7 @@ export const pack = (
detail?: boolean,
self?: boolean,
withUser?: boolean,
+ me?: string | mongo.ObjectID | IUser,
}
) => new Promise<any>(async (resolve, reject) => {
const opts = Object.assign({
@@ -189,6 +192,11 @@ export const pack = (
_target.url = getDriveFileUrl(_file);
_target.thumbnailUrl = getDriveFileUrl(_file, true);
+
+ if (_target.thumbnailUrl != null) {
+ _target.thumbnailUrl = wrapUrl(_target.thumbnailUrl, options.me);
+ }
+
_target.isRemote = _file.metadata.isRemote;
if (_target.properties == null) _target.properties = {};
diff --git a/src/models/note.ts b/src/models/note.ts
index 352de4f8d6..b1031d3e9b 100644
--- a/src/models/note.ts
+++ b/src/models/note.ts
@@ -11,6 +11,7 @@ import Reaction from './note-reaction';
import { packMany as packFileMany, IDriveFile } from './drive-file';
import Following from './following';
import Emoji from './emoji';
+import wrapUrl from '../misc/wrap-url';
const Note = db.get<INote>('notes');
Note.createIndex('uri', { sparse: true, unique: true });
@@ -247,11 +248,14 @@ export const pack = async (
fields: { _id: false }
});
} else {
- _note.emojis = Emoji.find({
+ _note.emojis = (await Emoji.find({
name: { $in: _note.emojis },
host: host
}, {
fields: { _id: false }
+ })).map(emoji => async () => {
+ emoji.url = await wrapUrl(emoji.url, me);
+ return emoji;
});
}
}
@@ -274,7 +278,7 @@ export const pack = async (
if (_note.geo) delete _note.geo.type;
// Populate user
- _note.user = packUser(_note.userId, meId);
+ _note.user = packUser(_note.userId, me);
// Populate app
if (_note.appId) {
@@ -282,7 +286,7 @@ export const pack = async (
}
// Populate files
- _note.files = packFileMany(_note.fileIds || []);
+ _note.files = packFileMany(_note.fileIds || [], { me });
// Some counts
_note.renoteCount = _note.renoteCount || 0;
diff --git a/src/models/user.ts b/src/models/user.ts
index 2453a2ed15..cba1d98c46 100644
--- a/src/models/user.ts
+++ b/src/models/user.ts
@@ -12,6 +12,7 @@ import config from '../config';
import FollowRequest from './follow-request';
import fetchMeta from '../misc/fetch-meta';
import Emoji from './emoji';
+import wrapUrl from '../misc/wrap-url';
const User = db.get<IUser>('users');
@@ -344,6 +345,8 @@ export const pack = (
if (_user.avatarUrl == null) {
_user.avatarUrl = `${config.drive_url}/default-avatar.jpg`;
+ } else {
+ _user.avatarUrl = wrapUrl(_user.avatarUrl, me);
}
if (!meId || !meId.equals(_user.id) || !opts.detail) {
@@ -368,7 +371,7 @@ export const pack = (
if (opts.detail) {
if (_user.pinnedNoteIds) {
// Populate pinned notes
- _user.pinnedNotes = packNoteMany(_user.pinnedNoteIds, meId, {
+ _user.pinnedNotes = packNoteMany(_user.pinnedNoteIds, me, {
detail: true
});
}
@@ -397,11 +400,14 @@ export const pack = (
// カスタム絵文字添付
if (_user.emojis) {
- _user.emojis = Emoji.find({
+ _user.emojis = (await Emoji.find({
name: { $in: _user.emojis },
host: _user.host
}, {
fields: { _id: false }
+ })).map(emoji => {
+ emoji.url = wrapUrl(emoji.url, me);
+ return emoji;
});
}