2021-06-27 14:17:38 +02:00
|
|
|
import { CustomEmoji, DriveFile, MeDetailed, MessagingMessage, Note, Notification, PageEvent, User, UserGroup } from './entities';
|
2021-06-19 16:07:08 +02:00
|
|
|
|
2021-06-28 11:34:20 +02:00
|
|
|
type FIXME = any;
|
|
|
|
|
2021-06-27 14:17:38 +02:00
|
|
|
export type Channels = {
|
2021-06-19 16:07:08 +02:00
|
|
|
main: {
|
2021-06-27 14:17:38 +02:00
|
|
|
params: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
events: {
|
|
|
|
notification: (payload: Notification) => void;
|
|
|
|
mention: (payload: Note) => void;
|
|
|
|
reply: (payload: Note) => void;
|
|
|
|
renote: (payload: Note) => void;
|
|
|
|
follow: (payload: User) => void; // 自分が他人をフォローしたとき
|
|
|
|
followed: (payload: User) => void; // 他人が自分をフォローしたとき
|
|
|
|
unfollow: (payload: User) => void; // 自分が他人をフォロー解除したとき
|
|
|
|
meUpdated: (payload: MeDetailed) => void;
|
|
|
|
pageEvent: (payload: PageEvent) => void;
|
|
|
|
urlUploadFinished: (payload: { marker: string; file: DriveFile; }) => void;
|
|
|
|
readAllNotifications: () => void;
|
|
|
|
unreadNotification: () => void;
|
|
|
|
unreadMention: () => void;
|
|
|
|
readAllUnreadMentions: () => void;
|
|
|
|
unreadSpecifiedNote: () => void;
|
|
|
|
readAllUnreadSpecifiedNotes: () => void;
|
|
|
|
readAllMessagingMessages: () => void;
|
|
|
|
unreadMessagingMessage: () => void;
|
|
|
|
readAllAntennas: () => void;
|
|
|
|
unreadAntenna: () => void;
|
|
|
|
readAllAnnouncements: () => void;
|
|
|
|
readAllChannels: () => void;
|
|
|
|
unreadChannel: () => void;
|
|
|
|
myTokenRegenerated: () => void;
|
|
|
|
};
|
2021-06-28 11:34:20 +02:00
|
|
|
receives: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
};
|
|
|
|
homeTimeline: {
|
2021-06-27 14:17:38 +02:00
|
|
|
params: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
events: {
|
|
|
|
note: (payload: Note) => void;
|
|
|
|
};
|
2021-06-28 11:34:20 +02:00
|
|
|
receives: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
};
|
|
|
|
localTimeline: {
|
2021-06-27 14:17:38 +02:00
|
|
|
params: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
events: {
|
|
|
|
note: (payload: Note) => void;
|
|
|
|
};
|
2021-06-28 11:34:20 +02:00
|
|
|
receives: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
};
|
|
|
|
hybridTimeline: {
|
2021-06-27 14:17:38 +02:00
|
|
|
params: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
events: {
|
|
|
|
note: (payload: Note) => void;
|
|
|
|
};
|
2021-06-28 11:34:20 +02:00
|
|
|
receives: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
};
|
|
|
|
globalTimeline: {
|
2021-06-27 14:17:38 +02:00
|
|
|
params: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
events: {
|
|
|
|
note: (payload: Note) => void;
|
|
|
|
};
|
2021-06-28 11:34:20 +02:00
|
|
|
receives: null;
|
2021-06-19 16:07:08 +02:00
|
|
|
};
|
|
|
|
messaging: {
|
2021-06-27 14:17:38 +02:00
|
|
|
params: {
|
|
|
|
otherparty?: User['id'] | null;
|
|
|
|
group?: UserGroup['id'] | null;
|
|
|
|
};
|
2021-06-19 16:07:08 +02:00
|
|
|
events: {
|
|
|
|
message: (payload: MessagingMessage) => void;
|
|
|
|
deleted: (payload: MessagingMessage['id']) => void;
|
|
|
|
read: (payload: MessagingMessage['id'][]) => void;
|
|
|
|
typers: (payload: User[]) => void;
|
|
|
|
};
|
2021-06-28 11:34:20 +02:00
|
|
|
receives: {
|
|
|
|
read: {
|
|
|
|
id: MessagingMessage['id'];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
serverStats: {
|
|
|
|
params: null;
|
|
|
|
events: {
|
|
|
|
stats: (payload: FIXME) => void;
|
|
|
|
};
|
|
|
|
receives: {
|
|
|
|
requestLog: {
|
|
|
|
id: string | number;
|
|
|
|
length: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
queueStats: {
|
|
|
|
params: null;
|
|
|
|
events: {
|
|
|
|
stats: (payload: FIXME) => void;
|
|
|
|
};
|
|
|
|
receives: {
|
|
|
|
requestLog: {
|
|
|
|
id: string | number;
|
|
|
|
length: number;
|
|
|
|
};
|
|
|
|
};
|
2021-06-19 16:07:08 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
export type NoteUpdatedEvent = {
|
|
|
|
id: Note['id'];
|
|
|
|
type: 'reacted';
|
|
|
|
body: {
|
|
|
|
reaction: string;
|
|
|
|
userId: User['id'];
|
|
|
|
};
|
|
|
|
} | {
|
|
|
|
id: Note['id'];
|
|
|
|
type: 'deleted';
|
|
|
|
body: {
|
|
|
|
deletedAt: string;
|
|
|
|
};
|
|
|
|
} | {
|
|
|
|
id: Note['id'];
|
|
|
|
type: 'pollVoted';
|
|
|
|
body: {
|
|
|
|
choice: number;
|
|
|
|
userId: User['id'];
|
|
|
|
};
|
|
|
|
};
|
2021-06-23 06:47:51 +02:00
|
|
|
|
2021-07-10 16:20:56 +02:00
|
|
|
export type BroadcastEvents = {
|
2021-06-23 06:47:51 +02:00
|
|
|
noteUpdated: (payload: NoteUpdatedEvent) => void;
|
|
|
|
emojiAdded: (payload: {
|
|
|
|
emoji: CustomEmoji;
|
|
|
|
}) => void;
|
|
|
|
};
|