This commit is contained in:
syuilo 2022-02-03 02:41:22 +09:00
parent 5e198381d3
commit 435945d09d
7 changed files with 19 additions and 16 deletions

View file

@ -1,3 +1,3 @@
export function isDuplicateKeyValueError(e: Error): boolean { export function isDuplicateKeyValueError(e: unknown | Error): boolean {
return e.message.startsWith('duplicate key value'); return (e as any).message && (e as Error).message.startsWith('duplicate key value');
} }

View file

@ -105,7 +105,10 @@ export interface NoteStreamTypes {
}; };
reacted: { reacted: {
reaction: string; reaction: string;
emoji?: Emoji; emoji?: {
name: string;
url: string;
} | null;
userId: User['id']; userId: User['id'];
}; };
unreacted: { unreacted: {

View file

@ -59,7 +59,7 @@ class NotificationManager {
if (exist) { if (exist) {
// 「メンションされているかつ返信されている」場合は、メンションとしての通知ではなく返信としての通知にする // 「メンションされているかつ返信されている」場合は、メンションとしての通知ではなく返信としての通知にする
if (reason != 'mention') { if (reason !== 'mention') {
exist.reason = reason; exist.reason = reason;
} }
} else { } else {
@ -201,7 +201,7 @@ export default async (user: { id: User['id']; username: User['username']; host:
mentionedUsers.push(await Users.findOneOrFail(data.reply.userId)); mentionedUsers.push(await Users.findOneOrFail(data.reply.userId));
} }
if (data.visibility == 'specified') { if (data.visibility === 'specified') {
if (data.visibleUsers == null) throw new Error('invalid param'); if (data.visibleUsers == null) throw new Error('invalid param');
for (const u of data.visibleUsers) { for (const u of data.visibleUsers) {
@ -301,7 +301,7 @@ export default async (user: { id: User['id']; username: User['username']; host:
if (Users.isRemoteUser(user)) activeUsersChart.update(user); if (Users.isRemoteUser(user)) activeUsersChart.update(user);
// 未読通知を作成 // 未読通知を作成
if (data.visibility == 'specified') { if (data.visibility === 'specified') {
if (data.visibleUsers == null) throw new Error('invalid param'); if (data.visibleUsers == null) throw new Error('invalid param');
for (const u of data.visibleUsers) { for (const u of data.visibleUsers) {
@ -439,7 +439,7 @@ export default async (user: { id: User['id']; username: User['username']; host:
async function renderNoteOrRenoteActivity(data: Option, note: Note) { async function renderNoteOrRenoteActivity(data: Option, note: Note) {
if (data.localOnly) return null; if (data.localOnly) return null;
const content = data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length == 0) const content = data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length === 0)
? renderAnnounce(data.renote.uri ? data.renote.uri : `${config.url}/notes/${data.renote.id}`, note) ? renderAnnounce(data.renote.uri ? data.renote.uri : `${config.url}/notes/${data.renote.id}`, note)
: renderCreate(await renderNote(note, false), note); : renderCreate(await renderNote(note, false), note);
@ -478,7 +478,7 @@ async function insertNote(user: { id: User['id']; host: User['host']; }, data: O
userId: user.id, userId: user.id,
localOnly: data.localOnly!, localOnly: data.localOnly!,
visibility: data.visibility as any, visibility: data.visibility as any,
visibleUserIds: data.visibility == 'specified' visibleUserIds: data.visibility === 'specified'
? data.visibleUsers ? data.visibleUsers
? data.visibleUsers.map(u => u.id) ? data.visibleUsers.map(u => u.id)
: [] : []
@ -502,7 +502,7 @@ async function insertNote(user: { id: User['id']; host: User['host']; }, data: O
insert.mentions = mentionedUsers.map(u => u.id); insert.mentions = mentionedUsers.map(u => u.id);
const profiles = await UserProfiles.find({ userId: In(insert.mentions) }); const profiles = await UserProfiles.find({ userId: In(insert.mentions) });
insert.mentionedRemoteUsers = JSON.stringify(mentionedUsers.filter(u => Users.isRemoteUser(u)).map(u => { insert.mentionedRemoteUsers = JSON.stringify(mentionedUsers.filter(u => Users.isRemoteUser(u)).map(u => {
const profile = profiles.find(p => p.userId == u.id); const profile = profiles.find(p => p.userId === u.id);
const url = profile != null ? profile.url : null; const url = profile != null ? profile.url : null;
return { return {
uri: u.uri, uri: u.uri,

View file

@ -39,7 +39,7 @@ export default async function(user: User, note: Note, quiet = false) {
let renote: Note | undefined; let renote: Note | undefined;
// if deletd note is renote // if deletd note is renote
if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length == 0)) { if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length === 0)) {
renote = await Notes.findOne({ renote = await Notes.findOne({
id: note.renoteId, id: note.renoteId,
}); });

View file

@ -76,7 +76,7 @@ export default async (user: { id: User['id']; host: User['host']; }, note: Note,
// カスタム絵文字リアクションだったら絵文字情報も送る // カスタム絵文字リアクションだったら絵文字情報も送る
const decodedReaction = decodeReaction(reaction); const decodedReaction = decodeReaction(reaction);
let emoji = await Emojis.findOne({ const emoji = await Emojis.findOne({
where: { where: {
name: decodedReaction.name, name: decodedReaction.name,
host: decodedReaction.host, host: decodedReaction.host,

View file

@ -52,7 +52,7 @@ export default async function(
if (note.user != null) { // たぶんnullになることは無いはずだけど一応 if (note.user != null) { // たぶんnullになることは無いはずだけど一応
for (const antenna of myAntennas) { for (const antenna of myAntennas) {
if (await checkHitAntenna(antenna, note, note.user as any, undefined, Array.from(following))) { if (await checkHitAntenna(antenna, note, note.user, undefined, Array.from(following))) {
readAntennaNotes.push(note); readAntennaNotes.push(note);
} }
} }

View file

@ -114,9 +114,9 @@ export async function sendEmail(to: string, subject: string, html: string, text:
</html>`, </html>`,
}); });
logger.info('Message sent: %s', info.messageId); logger.info(`Message sent: ${info.messageId}`);
} catch (e) { } catch (err) {
logger.error(e); logger.error(err as Error);
throw e; throw err;
} }
} }