diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-02-05 03:01:36 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-02-05 03:01:36 +0900 |
| commit | f014b7ae0ece886ef0cff2366b9925e23b34ba6f (patch) | |
| tree | c35760467278da408348fcd459415af7a63e08e9 /src/models | |
| parent | Refactor: Better type definition (diff) | |
| download | sharkey-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.ts | 10 | ||||
| -rw-r--r-- | src/models/note.ts | 10 | ||||
| -rw-r--r-- | src/models/user.ts | 10 |
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; }); } |