From f014b7ae0ece886ef0cff2366b9925e23b34ba6f Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Tue, 5 Feb 2019 03:01:36 +0900 Subject: アニメーションを自動再生しないオプション (#4131) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor * settings * Media Proxy * Replace API response --- src/models/drive-file.ts | 10 +++++++++- src/models/note.ts | 10 +++++++--- src/models/user.ts | 10 ++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) (limited to 'src/models') 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('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(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('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('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; }); } -- cgit v1.2.3-freya