forked from mirrors/firefish
182 lines
3.7 KiB
TypeScript
182 lines
3.7 KiB
TypeScript
|
import {
|
||
|
Antenna,
|
||
|
CustomEmoji,
|
||
|
DriveFile,
|
||
|
MeDetailed,
|
||
|
MessagingMessage,
|
||
|
Note,
|
||
|
Notification,
|
||
|
PageEvent,
|
||
|
User,
|
||
|
UserGroup,
|
||
|
} from "./entities";
|
||
|
|
||
|
type FIXME = any;
|
||
|
|
||
|
export type Channels = {
|
||
|
main: {
|
||
|
params: null;
|
||
|
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: (payload: Notification) => void;
|
||
|
unreadMention: (payload: Note["id"]) => void;
|
||
|
readAllUnreadMentions: () => void;
|
||
|
unreadSpecifiedNote: (payload: Note["id"]) => void;
|
||
|
readAllUnreadSpecifiedNotes: () => void;
|
||
|
readAllMessagingMessages: () => void;
|
||
|
messagingMessage: (payload: MessagingMessage) => void;
|
||
|
unreadMessagingMessage: (payload: MessagingMessage) => void;
|
||
|
readAllAntennas: () => void;
|
||
|
unreadAntenna: (payload: Antenna) => void;
|
||
|
readAllAnnouncements: () => void;
|
||
|
readAllChannels: () => void;
|
||
|
unreadChannel: (payload: Note["id"]) => void;
|
||
|
myTokenRegenerated: () => void;
|
||
|
reversiNoInvites: () => void;
|
||
|
reversiInvited: (payload: FIXME) => void;
|
||
|
signin: (payload: FIXME) => void;
|
||
|
registryUpdated: (payload: {
|
||
|
scope?: string[];
|
||
|
key: string;
|
||
|
value: any | null;
|
||
|
}) => void;
|
||
|
driveFileCreated: (payload: DriveFile) => void;
|
||
|
readAntenna: (payload: Antenna) => void;
|
||
|
};
|
||
|
receives: null;
|
||
|
};
|
||
|
homeTimeline: {
|
||
|
params: null;
|
||
|
events: {
|
||
|
note: (payload: Note) => void;
|
||
|
};
|
||
|
receives: null;
|
||
|
};
|
||
|
localTimeline: {
|
||
|
params: null;
|
||
|
events: {
|
||
|
note: (payload: Note) => void;
|
||
|
};
|
||
|
receives: null;
|
||
|
};
|
||
|
hybridTimeline: {
|
||
|
params: null;
|
||
|
events: {
|
||
|
note: (payload: Note) => void;
|
||
|
};
|
||
|
receives: null;
|
||
|
};
|
||
|
recommendedTimeline: {
|
||
|
params: null;
|
||
|
events: {
|
||
|
note: (payload: Note) => void;
|
||
|
};
|
||
|
receives: null;
|
||
|
};
|
||
|
globalTimeline: {
|
||
|
params: null;
|
||
|
events: {
|
||
|
note: (payload: Note) => void;
|
||
|
};
|
||
|
receives: null;
|
||
|
};
|
||
|
messaging: {
|
||
|
params: {
|
||
|
otherparty?: User["id"] | null;
|
||
|
group?: UserGroup["id"] | null;
|
||
|
};
|
||
|
events: {
|
||
|
message: (payload: MessagingMessage) => void;
|
||
|
deleted: (payload: MessagingMessage["id"]) => void;
|
||
|
read: (payload: MessagingMessage["id"][]) => void;
|
||
|
typers: (payload: User[]) => void;
|
||
|
};
|
||
|
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;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
export type NoteUpdatedEvent =
|
||
|
| {
|
||
|
id: Note["id"];
|
||
|
type: "reacted";
|
||
|
body: {
|
||
|
reaction: string;
|
||
|
userId: User["id"];
|
||
|
};
|
||
|
}
|
||
|
| {
|
||
|
id: Note["id"];
|
||
|
type: "unreacted";
|
||
|
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"];
|
||
|
};
|
||
|
}
|
||
|
| {
|
||
|
id: Note["id"];
|
||
|
type: "replied";
|
||
|
body: {
|
||
|
id: Note["id"];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
export type BroadcastEvents = {
|
||
|
noteUpdated: (payload: NoteUpdatedEvent) => void;
|
||
|
emojiAdded: (payload: {
|
||
|
emoji: CustomEmoji;
|
||
|
}) => void;
|
||
|
};
|