autoconvert handler messages

This commit is contained in:
ITOH
2021-04-24 23:17:11 +02:00
parent 6d4c51a4eb
commit be2bbbdd99
54 changed files with 181 additions and 248 deletions

View File

@@ -8,14 +8,14 @@ import { editChannel } from "../helpers/channels/edit_channel.ts";
import { editChannelOverwrite } from "../helpers/channels/edit_channel_overwrite.ts";
import { sendMessage } from "../helpers/messages/send_message.ts";
import { disconnectMember } from "../helpers/mod.ts";
import { Channel, DiscordChannel } from "../types/channels/channel.ts";
import { Channel } from "../types/channels/channel.ts";
import { ModifyChannel } from "../types/channels/modify_channel.ts";
import { DiscordOverwrite, Overwrite } from "../types/channels/overwrite.ts";
import { CreateMessage } from "../types/messages/create_message.ts";
import { PermissionStrings } from "../types/permissions/permission_strings.ts";
import { VoiceState } from "../types/voice/voice_state.ts";
import { Collection } from "../util/collection.ts";
import { createNewProp, snakeKeysToCamelCase } from "../util/utils.ts";
import { createNewProp } from "../util/utils.ts";
import { DiscordenoGuild } from "./guild.ts";
import { DiscordenoMember } from "./member.ts";
import { DiscordenoMessage } from "./message.ts";
@@ -77,14 +77,14 @@ const baseChannel: Partial<DiscordenoChannel> = {
/** Create a structure object */
// deno-lint-ignore require-await
export async function createDiscordenoChannel(
data: DiscordChannel,
data: Channel,
guildId?: string,
) {
const {
guildId: rawGuildId = "",
lastPinTimestamp,
...rest
} = snakeKeysToCamelCase<Channel>(data);
} = data;
const props: Record<string, PropertyDescriptor> = {};
Object.keys(rest).forEach((key) => {

View File

@@ -15,11 +15,11 @@ import { unbanMember } from "../helpers/members/unban_member.ts";
import { GetGuildAuditLog } from "../types/audit_log/get_guild_audit_log.ts";
import { Emoji } from "../types/emojis/emoji.ts";
import { CreateGuildBan } from "../types/guilds/create_guild_ban.ts";
import { DiscordGuild, Guild } from "../types/guilds/guild.ts";
import { Guild } from "../types/guilds/guild.ts";
import { DiscordGuildFeatures } from "../types/guilds/guild_features.ts";
import {
DiscordGuildMemberWithUser,
GuildMember,
GuildMemberWithUser,
} from "../types/guilds/guild_member.ts";
import { ModifyGuild } from "../types/guilds/modify_guild.ts";
import { DiscordImageFormat } from "../types/misc/image_format.ts";
@@ -27,11 +27,7 @@ import { DiscordImageSize } from "../types/misc/image_size.ts";
import { PresenceUpdate } from "../types/misc/presence_update.ts";
import { VoiceState } from "../types/voice/voice_state.ts";
import { Collection } from "../util/collection.ts";
import {
camelKeysToSnakeCase,
createNewProp,
snakeKeysToCamelCase,
} from "../util/utils.ts";
import { createNewProp } from "../util/utils.ts";
import { DiscordenoChannel } from "./channel.ts";
import { DiscordenoMember } from "./member.ts";
import { structures } from "./mod.ts";
@@ -115,7 +111,7 @@ const baseGuild: Partial<DiscordenoGuild> = {
};
export async function createDiscordenoGuild(
data: DiscordGuild,
data: Guild,
shardId: number,
) {
const {
@@ -127,11 +123,11 @@ export async function createDiscordenoGuild(
emojis,
members = [],
...rest
} = snakeKeysToCamelCase<Guild>(data);
} = data;
const roles = await Promise.all(
(data.roles || []).map((role) =>
structures.createDiscordenoRole({ role, guild_id: rest.id })
structures.createDiscordenoRole({ role, guildId: rest.id })
),
);
@@ -188,7 +184,7 @@ export async function createDiscordenoGuild(
await Promise.allSettled(
members.map(async (member) => {
const discordenoMember = await structures.createDiscordenoMember(
camelKeysToSnakeCase(member) as DiscordGuildMemberWithUser,
member as GuildMemberWithUser,
guild.id,
);

View File

@@ -9,7 +9,6 @@ import { addRole } from "../helpers/roles/add_role.ts";
import { removeRole } from "../helpers/roles/remove_role.ts";
import { CreateGuildBan } from "../types/guilds/create_guild_ban.ts";
import {
DiscordGuildMemberWithUser,
GuildMember,
GuildMemberWithUser,
} from "../types/guilds/guild_member.ts";
@@ -19,7 +18,7 @@ import { DiscordImageFormat } from "../types/misc/image_format.ts";
import { DiscordImageSize } from "../types/misc/image_size.ts";
import { User } from "../types/users/user.ts";
import { Collection } from "../util/collection.ts";
import { createNewProp, snakeKeysToCamelCase } from "../util/utils.ts";
import { createNewProp } from "../util/utils.ts";
import { DiscordenoGuild } from "./guild.ts";
const baseMember: Partial<DiscordenoMember> = {
@@ -74,7 +73,7 @@ const baseMember: Partial<DiscordenoMember> = {
export async function createDiscordenoMember(
// The `user` param in `DiscordGuildMember` is optional since discord does not send it in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events. But this data in there is required to build this structure so it is required in this case
data: DiscordGuildMemberWithUser,
data: GuildMemberWithUser,
guildId: string,
) {
const {
@@ -82,7 +81,7 @@ export async function createDiscordenoMember(
joinedAt,
premiumSince,
...rest
} = snakeKeysToCamelCase<GuildMemberWithUser>(data);
} = data;
const props: Record<string, ReturnType<typeof createNewProp>> = {};

View File

@@ -13,9 +13,9 @@ import { sendMessage } from "../helpers/messages/send_message.ts";
import { GuildMember } from "../types/guilds/guild_member.ts";
import { CreateMessage } from "../types/messages/create_message.ts";
import { EditMessage } from "../types/messages/edit_message.ts";
import { DiscordMessage, Message } from "../types/messages/message.ts";
import { Message } from "../types/messages/message.ts";
import { CHANNEL_MENTION_REGEX } from "../util/constants.ts";
import { createNewProp, snakeKeysToCamelCase } from "../util/utils.ts";
import { createNewProp } from "../util/utils.ts";
import { DiscordenoChannel } from "./channel.ts";
import { DiscordenoGuild } from "./guild.ts";
import { DiscordenoMember } from "./member.ts";
@@ -126,7 +126,7 @@ const baseMessage: Partial<DiscordenoMessage> = {
},
};
export async function createDiscordenoMessage(data: DiscordMessage) {
export async function createDiscordenoMessage(data: Message) {
const {
guildId = "",
channelId,
@@ -135,7 +135,7 @@ export async function createDiscordenoMessage(data: DiscordMessage) {
mentionRoles = [],
editedTimestamp,
...rest
} = snakeKeysToCamelCase<Message>(data);
} = data;
const props: Record<string, ReturnType<typeof createNewProp>> = {};
for (const key of Object.keys(rest)) {

View File

@@ -3,12 +3,11 @@ import { cache } from "../cache.ts";
import { deleteRole } from "../helpers/roles/delete_role.ts";
import { editRole } from "../helpers/roles/edit_role.ts";
import { CreateGuildRole } from "../types/guilds/create_guild_role.ts";
import { DiscordGuildRoleCreate } from "../types/guilds/guild_role_create.ts";
import { Errors } from "../types/misc/errors.ts";
import { Role } from "../types/permissions/role.ts";
import { Collection } from "../util/collection.ts";
import { highestRole } from "../util/permissions.ts";
import { createNewProp, snakeKeysToCamelCase } from "../util/utils.ts";
import { createNewProp } from "../util/utils.ts";
import { DiscordenoGuild } from "./guild.ts";
import { DiscordenoMember } from "./member.ts";
@@ -30,7 +29,7 @@ const baseRole: Partial<DiscordenoRole> = {
// METHODS
delete() {
return deleteRole(this.guildId!, this.id!).catch(console.error);
return deleteRole(this.guildId!, this.id!);
},
edit(options) {
return editRole(this.guildId!, this.id!, options);
@@ -67,15 +66,15 @@ const baseRole: Partial<DiscordenoRole> = {
};
// deno-lint-ignore require-await
export async function createDiscordenoRole(data: DiscordGuildRoleCreate) {
export async function createDiscordenoRole(
data: { role: Role } & {
guildId: string;
},
) {
const {
tags = {},
...rest
} = snakeKeysToCamelCase<
Role & {
guildId: string;
}
>({ guildId: data.guild_id, ...data.role });
} = ({ guildId: data.guildId, ...data.role });
const props: Record<string, ReturnType<typeof createNewProp>> = {};
for (const key of Object.keys(rest)) {