summaryrefslogtreecommitdiff
path: root/src/misc/check-hit-antenna.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-02-15 01:03:59 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-02-15 01:03:59 +0900
commit65c0b6c7da1a16c2c81d19800d9aea7b7dfae4b9 (patch)
tree7e16caf5d7e09b0a6486be2e6e961f6d0bd4b456 /src/misc/check-hit-antenna.ts
parentImprove doc page (diff)
downloadmisskey-65c0b6c7da1a16c2c81d19800d9aea7b7dfae4b9.tar.gz
misskey-65c0b6c7da1a16c2c81d19800d9aea7b7dfae4b9.tar.bz2
misskey-65c0b6c7da1a16c2c81d19800d9aea7b7dfae4b9.zip
Resolve #5939
Diffstat (limited to 'src/misc/check-hit-antenna.ts')
-rw-r--r--src/misc/check-hit-antenna.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/misc/check-hit-antenna.ts b/src/misc/check-hit-antenna.ts
index b527d34354..c229a07ebe 100644
--- a/src/misc/check-hit-antenna.ts
+++ b/src/misc/check-hit-antenna.ts
@@ -1,9 +1,10 @@
import { Antenna } from '../models/entities/antenna';
import { Note } from '../models/entities/note';
import { User } from '../models/entities/user';
-import { UserListJoinings } from '../models';
+import { UserListJoinings, UserGroupJoinings } from '../models';
import parseAcct from './acct/parse';
import { getFullApAccount } from './convert-host';
+import { ensure } from '../prelude/ensure';
export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: User, followers: User['id'][]): Promise<boolean> {
if (note.visibility === 'specified') return false;
@@ -22,6 +23,14 @@ export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: Us
})).map(x => x.userId);
if (!listUsers.includes(note.userId)) return false;
+ } else if (antenna.src === 'group') {
+ const joining = await UserGroupJoinings.findOne(antenna.userGroupJoiningId!).then(ensure);
+
+ const groupUsers = (await UserGroupJoinings.find({
+ userGroupId: joining.userGroupId
+ })).map(x => x.userId);
+
+ if (!groupUsers.includes(note.userId)) return false;
} else if (antenna.src === 'users') {
const accts = antenna.users.map(x => {
const { username, host } = parseAcct(x);