From 31ec090a0986b412e0b468d00cf33b78a1aed1bd Mon Sep 17 00:00:00 2001 From: Filip Hoffmann Date: Fri, 30 May 2025 16:15:52 +0200 Subject: [PATCH] rename from flybycord to grom --- README.md | 12 +- examples/gleam.toml | 2 +- examples/manifest.toml | 4 +- examples/src/examples.gleam | 4 +- gleam.toml | 4 +- src/{flybycord => grom}/application.gleam | 12 +- .../application/current_application.gleam | 16 +- .../role_connection_metadata.gleam | 6 +- .../application/team.gleam | 2 +- src/{flybycord => grom}/channel.gleam | 20 +- .../channel/guild/category.gleam | 12 +- .../channel/guild/forum.gleam} | 152 ++++++++++--- .../channel/guild/forum/tag.gleam | 0 .../channel/guild/media.gleam} | 152 +++---------- .../channel/guild/stage/instance.gleam | 0 .../channel/guild/text.gleam} | 208 ++++++++++-------- .../channel/guild/thread.gleam | 18 +- .../channel/guild/voice.gleam} | 208 ++++++++---------- .../channel/permission_overwrite.gleam | 8 +- src/{flybycord => grom}/channel/user/dm.gleam | 10 +- src/{flybycord => grom}/client.gleam | 0 src/{flybycord => grom}/emoji.gleam | 2 +- src/{flybycord => grom}/entitlement.gleam | 2 +- src/{flybycord => grom}/error.gleam | 0 src/{flybycord => grom}/file.gleam | 0 src/{flybycord => grom}/guild.gleam | 20 +- src/{flybycord => grom}/guild/audit_log.gleam | 20 +- .../guild/audit_log/change.gleam | 0 .../guild/audit_log/entry.gleam | 8 +- .../guild/auto_moderation/action.gleam | 2 +- .../guild/auto_moderation/event.gleam | 0 .../auto_moderation/keyword_preset.gleam | 0 .../guild/auto_moderation/rule.gleam | 12 +- .../guild/auto_moderation/trigger.gleam | 2 +- src/{flybycord => grom}/guild/ban.gleam | 2 +- .../guild/integration.gleam | 4 +- src/{flybycord => grom}/guild/member.gleam | 6 +- .../guild/onboarding.gleam | 2 +- src/{flybycord => grom}/guild/preview.gleam | 6 +- src/{flybycord => grom}/guild/role.gleam | 4 +- .../guild/scheduled_event.gleam | 6 +- .../scheduled_event/recurrence_rule.gleam | 2 +- src/{flybycord => grom}/guild/template.gleam | 4 +- .../guild/welcome_screen.gleam | 0 src/{flybycord => grom}/guild/widget.gleam | 4 +- src/{flybycord => grom}/image.gleam | 0 src/{flybycord => grom}/interaction.gleam | 24 +- .../interaction/application_command.gleam | 10 +- .../application_command/choice.gleam | 0 .../application_command/command_option.gleam | 6 +- .../interaction/context_type.gleam | 0 .../interaction/resolved.gleam | 16 +- src/{flybycord => grom}/internal/base64.gleam | 0 src/{flybycord => grom}/internal/flags.gleam | 0 src/{flybycord => grom}/internal/rest.gleam | 10 +- .../internal/time_duration.gleam | 0 .../internal/time_rfc3339.gleam | 0 src/{flybycord => grom}/invite.gleam | 18 +- src/{flybycord => grom}/message.gleam | 40 ++-- .../message/activity.gleam | 0 .../message/allowed_mentions.gleam | 0 .../message/attachment.gleam | 6 +- src/{flybycord => grom}/message/call.gleam | 2 +- .../message/component.gleam | 28 +-- .../message/component/action_row.gleam | 14 +- .../message/component/button.gleam | 2 +- .../message/component/channel_select.gleam | 2 +- .../message/component/container.gleam | 12 +- .../message/component/file.gleam | 2 +- .../message/component/media_gallery.gleam | 2 +- .../component/mentionable_select.gleam | 0 .../message/component/role_select.gleam | 0 .../message/component/section.gleam | 6 +- .../message/component/separator.gleam | 0 .../message/component/string_select.gleam | 2 +- .../message/component/text_display.gleam | 0 .../message/component/text_input.gleam | 0 .../message/component/thumbnail.gleam | 1 - .../component/unfurled_media_item.gleam | 0 .../message/component/user_select.gleam | 0 src/{flybycord => grom}/message/embed.gleam | 2 +- .../message/interaction_metadata.gleam | 4 +- .../message/message_reference.gleam | 0 src/{flybycord => grom}/message/poll.gleam | 4 +- .../message/reaction.gleam | 2 +- .../message/resolved.gleam | 14 +- src/{flybycord => grom}/modification.gleam | 0 src/{flybycord => grom}/permission.gleam | 2 +- src/{flybycord => grom}/sku.gleam | 2 +- src/{flybycord => grom}/soundboard.gleam | 2 +- src/{flybycord => grom}/sticker.gleam | 2 +- src/{flybycord => grom}/user.gleam | 2 +- .../user/current_user.gleam | 12 +- src/{flybycord => grom}/webhook.gleam | 6 +- src/{flybycord => grom}/webhook_event.gleam | 8 +- test/flybycord_test.gleam | 8 +- 96 files changed, 613 insertions(+), 618 deletions(-) rename src/{flybycord => grom}/application.gleam (97%) rename src/{flybycord => grom}/application/current_application.gleam (95%) rename src/{flybycord => grom}/application/role_connection_metadata.gleam (97%) rename src/{flybycord => grom}/application/team.gleam (98%) rename src/{flybycord => grom}/channel.gleam (94%) rename src/{flybycord => grom}/channel/guild/category.gleam (92%) rename src/{flybycord/channel/guild/media.gleam => grom/channel/guild/forum.gleam} (70%) rename src/{flybycord => grom}/channel/guild/forum/tag.gleam (100%) rename src/{flybycord/channel/guild/forum.gleam => grom/channel/guild/media.gleam} (70%) rename src/{flybycord => grom}/channel/guild/stage/instance.gleam (100%) rename src/{flybycord/channel/guild/voice.gleam => grom/channel/guild/text.gleam} (53%) rename src/{flybycord => grom}/channel/guild/thread.gleam (97%) rename src/{flybycord/channel/guild/text.gleam => grom/channel/guild/voice.gleam} (54%) rename src/{flybycord => grom}/channel/permission_overwrite.gleam (95%) rename src/{flybycord => grom}/channel/user/dm.gleam (89%) rename src/{flybycord => grom}/client.gleam (100%) rename src/{flybycord => grom}/emoji.gleam (97%) rename src/{flybycord => grom}/entitlement.gleam (98%) rename src/{flybycord => grom}/error.gleam (100%) rename src/{flybycord => grom}/file.gleam (100%) rename src/{flybycord => grom}/guild.gleam (97%) rename src/{flybycord => grom}/guild/audit_log.gleam (88%) rename src/{flybycord => grom}/guild/audit_log/change.gleam (100%) rename src/{flybycord => grom}/guild/audit_log/entry.gleam (98%) rename src/{flybycord => grom}/guild/auto_moderation/action.gleam (98%) rename src/{flybycord => grom}/guild/auto_moderation/event.gleam (100%) rename src/{flybycord => grom}/guild/auto_moderation/keyword_preset.gleam (100%) rename src/{flybycord => grom}/guild/auto_moderation/rule.gleam (97%) rename src/{flybycord => grom}/guild/auto_moderation/trigger.gleam (98%) rename src/{flybycord => grom}/guild/ban.gleam (93%) rename src/{flybycord => grom}/guild/integration.gleam (98%) rename src/{flybycord => grom}/guild/member.gleam (97%) rename src/{flybycord => grom}/guild/onboarding.gleam (98%) rename src/{flybycord => grom}/guild/preview.gleam (94%) rename src/{flybycord => grom}/guild/role.gleam (97%) rename src/{flybycord => grom}/guild/scheduled_event.gleam (96%) rename src/{flybycord => grom}/guild/scheduled_event/recurrence_rule.gleam (98%) rename src/{flybycord => grom}/guild/template.gleam (95%) rename src/{flybycord => grom}/guild/welcome_screen.gleam (100%) rename src/{flybycord => grom}/guild/widget.gleam (94%) rename src/{flybycord => grom}/image.gleam (100%) rename src/{flybycord => grom}/interaction.gleam (79%) rename src/{flybycord => grom}/interaction/application_command.gleam (92%) rename src/{flybycord => grom}/interaction/application_command/choice.gleam (100%) rename src/{flybycord => grom}/interaction/application_command/command_option.gleam (98%) rename src/{flybycord => grom}/interaction/context_type.gleam (100%) rename src/{flybycord => grom}/interaction/resolved.gleam (67%) rename src/{flybycord => grom}/internal/base64.gleam (100%) rename src/{flybycord => grom}/internal/flags.gleam (100%) rename src/{flybycord => grom}/internal/rest.gleam (92%) rename src/{flybycord => grom}/internal/time_duration.gleam (100%) rename src/{flybycord => grom}/internal/time_rfc3339.gleam (100%) rename src/{flybycord => grom}/invite.gleam (95%) rename src/{flybycord => grom}/message.gleam (93%) rename src/{flybycord => grom}/message/activity.gleam (100%) rename src/{flybycord => grom}/message/allowed_mentions.gleam (100%) rename src/{flybycord => grom}/message/attachment.gleam (95%) rename src/{flybycord => grom}/message/call.gleam (94%) rename src/{flybycord => grom}/message/component.gleam (73%) rename src/{flybycord => grom}/message/component/action_row.gleam (80%) rename src/{flybycord => grom}/message/component/button.gleam (98%) rename src/{flybycord => grom}/message/component/channel_select.gleam (98%) rename src/{flybycord => grom}/message/component/container.gleam (84%) rename src/{flybycord => grom}/message/component/file.gleam (88%) rename src/{flybycord => grom}/message/component/media_gallery.gleam (92%) rename src/{flybycord => grom}/message/component/mentionable_select.gleam (100%) rename src/{flybycord => grom}/message/component/role_select.gleam (100%) rename src/{flybycord => grom}/message/component/section.gleam (91%) rename src/{flybycord => grom}/message/component/separator.gleam (100%) rename src/{flybycord => grom}/message/component/string_select.gleam (98%) rename src/{flybycord => grom}/message/component/text_display.gleam (100%) rename src/{flybycord => grom}/message/component/text_input.gleam (100%) rename src/{flybycord => grom}/message/component/thumbnail.gleam (50%) rename src/{flybycord => grom}/message/component/unfurled_media_item.gleam (100%) rename src/{flybycord => grom}/message/component/user_select.gleam (100%) rename src/{flybycord => grom}/message/embed.gleam (99%) rename src/{flybycord => grom}/message/interaction_metadata.gleam (97%) rename src/{flybycord => grom}/message/message_reference.gleam (100%) rename src/{flybycord => grom}/message/poll.gleam (97%) rename src/{flybycord => grom}/message/reaction.gleam (97%) rename src/{flybycord => grom}/message/resolved.gleam (90%) rename src/{flybycord => grom}/modification.gleam (100%) rename src/{flybycord => grom}/permission.gleam (99%) rename src/{flybycord => grom}/sku.gleam (98%) rename src/{flybycord => grom}/soundboard.gleam (97%) rename src/{flybycord => grom}/sticker.gleam (98%) rename src/{flybycord => grom}/user.gleam (99%) rename src/{flybycord => grom}/user/current_user.gleam (94%) rename src/{flybycord => grom}/webhook.gleam (95%) rename src/{flybycord => grom}/webhook_event.gleam (95%) diff --git a/README.md b/README.md index f956ceb..7fa6ddb 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@ -# flybycord +# grom -[![Package Version](https://img.shields.io/hexpm/v/flybycord)](https://hex.pm/packages/flybycord) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/flybycord/) +[![Package Version](https://img.shields.io/hexpm/v/grom)](https://hex.pm/packages/grom) +[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/grom/) ```sh -gleam add flybycord@1 +gleam add grom@1 ``` ```gleam -import flybycord +import grom pub fn main() { // TODO: An example of the project in use } ``` -Further documentation can be found at . +Further documentation can be found at . ## Development diff --git a/examples/gleam.toml b/examples/gleam.toml index c8f2b6d..b77668c 100644 --- a/examples/gleam.toml +++ b/examples/gleam.toml @@ -14,7 +14,7 @@ version = "1.0.0" [dependencies] gleam_stdlib = ">= 0.44.0 and < 2.0.0" -flybycord = { path = ".." } +grom = { path = ".." } envoy = ">= 1.0.2 and < 2.0.0" dotenv_gleam = ">= 1.0.7 and < 2.0.0" diff --git a/examples/manifest.toml b/examples/manifest.toml index d2b71f0..02186ad 100644 --- a/examples/manifest.toml +++ b/examples/manifest.toml @@ -5,7 +5,7 @@ packages = [ { name = "dotenv_gleam", version = "1.0.7", build_tools = ["gleam"], requirements = ["envoy", "gleam_erlang", "gleam_stdlib", "simplifile"], otp_app = "dotenv_gleam", source = "hex", outer_checksum = "E5C63C326508C4ABF29FB29257A40F9275D63CBE605EEFC807CDCD571E7B2F51" }, { name = "envoy", version = "1.0.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "envoy", source = "hex", outer_checksum = "95FD059345AA982E89A0B6E2A3BF1CF43E17A7048DCD85B5B65D3B9E4E39D359" }, { name = "filepath", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "B06A9AF0BF10E51401D64B98E4B627F1D2E48C154967DA7AF4D0914780A6D40A" }, - { name = "flybycord", version = "1.0.0", build_tools = ["gleam"], requirements = ["envoy", "gleam_http", "gleam_httpc", "gleam_json", "gleam_stdlib"], source = "local", path = ".." }, + { name = "grom", version = "1.0.0", build_tools = ["gleam"], requirements = ["envoy", "gleam_http", "gleam_httpc", "gleam_json", "gleam_stdlib"], source = "local", path = ".." }, { name = "gleam_erlang", version = "0.34.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "0C38F2A128BAA0CEF17C3000BD2097EB80634E239CE31A86400C4416A5D0FDCC" }, { name = "gleam_http", version = "4.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "0A62451FC85B98062E0907659D92E6A89F5F3C0FBE4AB8046C99936BF6F91DBC" }, { name = "gleam_httpc", version = "4.1.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gleam_httpc", source = "hex", outer_checksum = "1A38507AF26CACA145248733688703EADCB734EA971D4E34FB97B7613DECF132" }, @@ -18,6 +18,6 @@ packages = [ [requirements] dotenv_gleam = { version = ">= 1.0.7 and < 2.0.0" } envoy = { version = ">= 1.0.2 and < 2.0.0" } -flybycord = { path = ".." } +grom = { path = ".." } gleam_stdlib = { version = ">= 0.44.0 and < 2.0.0" } gleeunit = { version = ">= 1.0.0 and < 2.0.0" } diff --git a/examples/src/examples.gleam b/examples/src/examples.gleam index fe844bf..d066864 100644 --- a/examples/src/examples.gleam +++ b/examples/src/examples.gleam @@ -1,7 +1,7 @@ import dotenv_gleam import envoy -import flybycord/client -import flybycord/user +import grom/client +import grom/user pub fn main() { dotenv_gleam.config() diff --git a/gleam.toml b/gleam.toml index 3fa498d..d93e69b 100644 --- a/gleam.toml +++ b/gleam.toml @@ -1,8 +1,8 @@ -name = "flybycord" +name = "grom" version = "0.0.0" description = "Gleam wrapper for the Discord API" licenses = ["Apache-2.0", "MIT"] -repository = { type = "github", user = "folospior", repo = "flybycord"} +repository = { type = "github", user = "folospior", repo = "grom"} [dependencies] gleam_stdlib = ">= 0.44.0 and < 2.0.0" diff --git a/src/flybycord/application.gleam b/src/grom/application.gleam similarity index 97% rename from src/flybycord/application.gleam rename to src/grom/application.gleam index 1c06266..a85c9eb 100644 --- a/src/flybycord/application.gleam +++ b/src/grom/application.gleam @@ -1,14 +1,14 @@ -import flybycord/application/team.{type Team} -import flybycord/guild.{type Guild} -import flybycord/internal/flags -import flybycord/permission.{type Permission} -import flybycord/user.{type User} -import flybycord/webhook_event import gleam/dict.{type Dict} import gleam/dynamic/decode import gleam/int import gleam/json.{type Json} import gleam/option.{type Option, None} +import grom/application/team.{type Team} +import grom/guild.{type Guild} +import grom/internal/flags +import grom/permission.{type Permission} +import grom/user.{type User} +import grom/webhook_event // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/application/current_application.gleam b/src/grom/application/current_application.gleam similarity index 95% rename from src/flybycord/application/current_application.gleam rename to src/grom/application/current_application.gleam index 754f7ff..9875cb8 100644 --- a/src/flybycord/application/current_application.gleam +++ b/src/grom/application/current_application.gleam @@ -1,11 +1,3 @@ -import flybycord/application.{type Application} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/image -import flybycord/internal/flags -import flybycord/internal/rest -import flybycord/modification.{type Modification, Skip} -import flybycord/webhook_event import gleam/dict.{type Dict} import gleam/http import gleam/http/request @@ -13,6 +5,14 @@ import gleam/json.{type Json} import gleam/list import gleam/option.{type Option, None, Some} import gleam/result +import grom/application.{type Application} +import grom/client.{type Client} +import grom/error +import grom/image +import grom/internal/flags +import grom/internal/rest +import grom/modification.{type Modification, Skip} +import grom/webhook_event // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/application/role_connection_metadata.gleam b/src/grom/application/role_connection_metadata.gleam similarity index 97% rename from src/flybycord/application/role_connection_metadata.gleam rename to src/grom/application/role_connection_metadata.gleam index 3209627..247a50b 100644 --- a/src/flybycord/application/role_connection_metadata.gleam +++ b/src/grom/application/role_connection_metadata.gleam @@ -1,6 +1,3 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest import gleam/dict.{type Dict} import gleam/dynamic/decode import gleam/function @@ -10,6 +7,9 @@ import gleam/json.{type Json} import gleam/list import gleam/option.{type Option, None, Some} import gleam/result +import grom/client.{type Client} +import grom/error +import grom/internal/rest // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/application/team.gleam b/src/grom/application/team.gleam similarity index 98% rename from src/flybycord/application/team.gleam rename to src/grom/application/team.gleam index d0dbff6..0dd5ec4 100644 --- a/src/flybycord/application/team.gleam +++ b/src/grom/application/team.gleam @@ -1,6 +1,6 @@ -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/channel.gleam b/src/grom/channel.gleam similarity index 94% rename from src/flybycord/channel.gleam rename to src/grom/channel.gleam index 61aeb41..2557f9f 100644 --- a/src/flybycord/channel.gleam +++ b/src/grom/channel.gleam @@ -1,19 +1,19 @@ -import flybycord/channel/guild/category -import flybycord/channel/guild/forum -import flybycord/channel/guild/media -import flybycord/channel/guild/text -import flybycord/channel/guild/thread -import flybycord/channel/guild/voice -import flybycord/channel/user/dm -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest import gleam/dynamic/decode import gleam/http import gleam/http/request import gleam/json.{type Json} import gleam/option.{type Option} import gleam/result +import grom/channel/guild/category +import grom/channel/guild/forum +import grom/channel/guild/media +import grom/channel/guild/text +import grom/channel/guild/thread +import grom/channel/guild/voice +import grom/channel/user/dm +import grom/client.{type Client} +import grom/error +import grom/internal/rest // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/channel/guild/category.gleam b/src/grom/channel/guild/category.gleam similarity index 92% rename from src/flybycord/channel/guild/category.gleam rename to src/grom/channel/guild/category.gleam index 49b17ab..41129b4 100644 --- a/src/flybycord/channel/guild/category.gleam +++ b/src/grom/channel/guild/category.gleam @@ -1,9 +1,3 @@ -import flybycord/channel/permission_overwrite.{type PermissionOverwrite} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest -import flybycord/modification.{type Modification, Skip} -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -11,6 +5,12 @@ import gleam/json.{type Json} import gleam/list import gleam/option.{type Option, None, Some} import gleam/result +import grom/channel/permission_overwrite.{type PermissionOverwrite} +import grom/client.{type Client} +import grom/error +import grom/internal/rest +import grom/modification.{type Modification, Skip} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/channel/guild/media.gleam b/src/grom/channel/guild/forum.gleam similarity index 70% rename from src/flybycord/channel/guild/media.gleam rename to src/grom/channel/guild/forum.gleam index aa0d734..07374c2 100644 --- a/src/flybycord/channel/guild/media.gleam +++ b/src/grom/channel/guild/forum.gleam @@ -1,13 +1,3 @@ -import flybycord/channel/guild/forum -import flybycord/channel/guild/forum/tag.{type Tag} -import flybycord/channel/permission_overwrite.{type PermissionOverwrite} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/flags -import flybycord/internal/rest -import flybycord/internal/time_duration -import flybycord/modification.{type Modification, Skip} -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -17,6 +7,15 @@ import gleam/list import gleam/option.{type Option, None, Some} import gleam/result import gleam/time/duration.{type Duration} +import grom/channel/guild/forum/tag.{type Tag} +import grom/channel/permission_overwrite.{type PermissionOverwrite} +import grom/client.{type Client} +import grom/error +import grom/internal/flags +import grom/internal/rest +import grom/internal/time_duration +import grom/modification.{type Modification, Skip} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- @@ -36,13 +35,14 @@ pub type Channel { current_user_permissions: Option(List(Permission)), flags: List(Flag), available_tags: List(Tag), - default_reaction_emoji: Option(forum.DefaultReaction), - default_thread_rate_limit_per_user: Option(Duration), - default_sort_order: Option(forum.SortOrderType), + default_reaction_emoji: Option(DefaultReaction), + default_thread_rate_limit_per_user: Duration, + default_sort_order: Option(SortOrderType), + default_layout: LayoutType, ) } -pub type Modify { +pub opaque type Modify { Modify( name: Option(String), position: Modification(Int), @@ -54,31 +54,43 @@ pub type Modify { default_auto_archive_duration: Modification(Duration), flags: Option(List(Flag)), available_tags: Option(List(tag.Create)), - default_reaction_emoji: Modification(forum.DefaultReaction), + default_reaction_emoji: Modification(DefaultReaction), default_thread_rate_limit_per_user: Option(Duration), - default_sort_order: Modification(forum.SortOrderType), + default_sort_order: Modification(SortOrderType), + default_layout: Option(LayoutType), ) } pub type Flag { RequiresTag - HideMediaDownloadOptions +} + +pub type DefaultReaction { + DefaultReaction(emoji_id: Option(String), emoji_name: Option(String)) +} + +pub type SortOrderType { + LatestActivity + CreationDate +} + +pub type LayoutType { + NotSet + ListView + GalleryView } // FLAGS ----------------------------------------------------------------------- @internal pub fn bits_flags() -> List(#(Int, Flag)) { - [ - #(int.bitwise_shift_left(1, 4), RequiresTag), - #(int.bitwise_shift_left(1, 15), HideMediaDownloadOptions), - ] + [#(int.bitwise_shift_left(1, 4), RequiresTag)] } // DECODERS -------------------------------------------------------------------- @internal -pub fn channel_decoder() { +pub fn channel_decoder() -> decode.Decoder(Channel) { use id <- decode.field("id", decode.string) use guild_id <- decode.optional_field( "guild_id", @@ -119,17 +131,17 @@ pub fn channel_decoder() { ) use default_reaction_emoji <- decode.field( "default_reaction_emoji", - decode.optional(forum.default_reaction_decoder()), + decode.optional(default_reaction_decoder()), ) - use default_thread_rate_limit_per_user <- decode.optional_field( + use default_thread_rate_limit_per_user <- decode.field( "default_thread_rate_limit_per_user", - None, - decode.optional(time_duration.from_minutes_decoder()), + time_duration.from_int_seconds_decoder(), ) use default_sort_order <- decode.field( "default_sort_order", - decode.optional(forum.sort_order_type_decoder()), + decode.optional(sort_order_type_decoder()), ) + use default_layout <- decode.field("default_layout", layout_type_decoder()) decode.success(Channel( id:, guild_id:, @@ -148,11 +160,41 @@ pub fn channel_decoder() { default_reaction_emoji:, default_thread_rate_limit_per_user:, default_sort_order:, + default_layout:, )) } +@internal +pub fn default_reaction_decoder() -> decode.Decoder(DefaultReaction) { + use emoji_id <- decode.field("emoji_id", decode.optional(decode.string)) + use emoji_name <- decode.field("emoji_name", decode.optional(decode.string)) + decode.success(DefaultReaction(emoji_id:, emoji_name:)) +} + +@internal +pub fn sort_order_type_decoder() -> decode.Decoder(SortOrderType) { + use variant <- decode.then(decode.int) + case variant { + 0 -> decode.success(LatestActivity) + 1 -> decode.success(CreationDate) + _ -> decode.failure(LatestActivity, "SortOrderType") + } +} + +@internal +pub fn layout_type_decoder() -> decode.Decoder(LayoutType) { + use variant <- decode.then(decode.int) + case variant { + 0 -> decode.success(NotSet) + 1 -> decode.success(ListView) + 2 -> decode.success(GalleryView) + _ -> decode.failure(NotSet, "LayoutType") + } +} + // ENCODERS -------------------------------------------------------------------- +@internal pub fn modify_encode(modify: Modify) -> Json { let name = case modify.name { Some(name) -> [#("name", json.string(name))] @@ -209,10 +251,7 @@ pub fn modify_encode(modify: Modify) -> Json { let default_reaction_emoji = modify.default_reaction_emoji - |> modification.encode( - "default_reaction_emoji", - forum.default_reaction_encode, - ) + |> modification.encode("default_reaction_emoji", default_reaction_encode) let default_thread_rate_limit_per_user = case modify.default_thread_rate_limit_per_user @@ -228,7 +267,12 @@ pub fn modify_encode(modify: Modify) -> Json { let default_sort_order = modify.default_sort_order - |> modification.encode("default_sort_order", forum.sort_order_type_encode) + |> modification.encode("default_sort_order", sort_order_type_encode) + + let default_layout = case modify.default_layout { + Some(layout) -> [#("default_forum_layout", layout_type_encode(layout))] + None -> [] + } [ name, @@ -244,11 +288,46 @@ pub fn modify_encode(modify: Modify) -> Json { default_reaction_emoji, default_thread_rate_limit_per_user, default_sort_order, + default_layout, ] |> list.flatten |> json.object } +@internal +pub fn default_reaction_encode(default_reaction: DefaultReaction) -> Json { + let DefaultReaction(emoji_id:, emoji_name:) = default_reaction + json.object([ + #("emoji_id", case emoji_id { + None -> json.null() + Some(value) -> json.string(value) + }), + #("emoji_name", case emoji_name { + None -> json.null() + Some(value) -> json.string(value) + }), + ]) +} + +@internal +pub fn sort_order_type_encode(sort_order_type: SortOrderType) -> Json { + case sort_order_type { + LatestActivity -> 0 + CreationDate -> 1 + } + |> json.int +} + +@internal +pub fn layout_type_encode(layout_type: LayoutType) -> Json { + case layout_type { + NotSet -> 0 + ListView -> 1 + GalleryView -> 2 + } + |> json.int +} + // PUBLIC API FUNCTIONS -------------------------------------------------------- pub fn modify( @@ -287,6 +366,7 @@ pub fn new_modify() -> Modify { default_reaction_emoji: Skip, default_thread_rate_limit_per_user: None, default_sort_order: Skip, + default_layout: None, ) } @@ -347,7 +427,7 @@ pub fn modify_available_tags( pub fn modify_default_reaction_emoji( modify: Modify, - reaction reaction: Modification(forum.DefaultReaction), + reaction reaction: Modification(DefaultReaction), ) -> Modify { Modify(..modify, default_reaction_emoji: reaction) } @@ -361,7 +441,11 @@ pub fn modify_default_thread_rate_limit_per_user( pub fn modify_default_sort_order( modify: Modify, - sort_order order: Modification(forum.SortOrderType), + sort_order order: Modification(SortOrderType), ) -> Modify { Modify(..modify, default_sort_order: order) } + +pub fn modify_default_layout(modify: Modify, new layout: LayoutType) -> Modify { + Modify(..modify, default_layout: Some(layout)) +} diff --git a/src/flybycord/channel/guild/forum/tag.gleam b/src/grom/channel/guild/forum/tag.gleam similarity index 100% rename from src/flybycord/channel/guild/forum/tag.gleam rename to src/grom/channel/guild/forum/tag.gleam diff --git a/src/flybycord/channel/guild/forum.gleam b/src/grom/channel/guild/media.gleam similarity index 70% rename from src/flybycord/channel/guild/forum.gleam rename to src/grom/channel/guild/media.gleam index c12347b..ede8b9c 100644 --- a/src/flybycord/channel/guild/forum.gleam +++ b/src/grom/channel/guild/media.gleam @@ -1,12 +1,3 @@ -import flybycord/channel/guild/forum/tag.{type Tag} -import flybycord/channel/permission_overwrite.{type PermissionOverwrite} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/flags -import flybycord/internal/rest -import flybycord/internal/time_duration -import flybycord/modification.{type Modification, Skip} -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -16,6 +7,16 @@ import gleam/list import gleam/option.{type Option, None, Some} import gleam/result import gleam/time/duration.{type Duration} +import grom/channel/guild/forum +import grom/channel/guild/forum/tag.{type Tag} +import grom/channel/permission_overwrite.{type PermissionOverwrite} +import grom/client.{type Client} +import grom/error +import grom/internal/flags +import grom/internal/rest +import grom/internal/time_duration +import grom/modification.{type Modification, Skip} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- @@ -35,14 +36,13 @@ pub type Channel { current_user_permissions: Option(List(Permission)), flags: List(Flag), available_tags: List(Tag), - default_reaction_emoji: Option(DefaultReaction), - default_thread_rate_limit_per_user: Duration, - default_sort_order: Option(SortOrderType), - default_layout: LayoutType, + default_reaction_emoji: Option(forum.DefaultReaction), + default_thread_rate_limit_per_user: Option(Duration), + default_sort_order: Option(forum.SortOrderType), ) } -pub opaque type Modify { +pub type Modify { Modify( name: Option(String), position: Modification(Int), @@ -54,43 +54,31 @@ pub opaque type Modify { default_auto_archive_duration: Modification(Duration), flags: Option(List(Flag)), available_tags: Option(List(tag.Create)), - default_reaction_emoji: Modification(DefaultReaction), + default_reaction_emoji: Modification(forum.DefaultReaction), default_thread_rate_limit_per_user: Option(Duration), - default_sort_order: Modification(SortOrderType), - default_layout: Option(LayoutType), + default_sort_order: Modification(forum.SortOrderType), ) } pub type Flag { RequiresTag -} - -pub type DefaultReaction { - DefaultReaction(emoji_id: Option(String), emoji_name: Option(String)) -} - -pub type SortOrderType { - LatestActivity - CreationDate -} - -pub type LayoutType { - NotSet - ListView - GalleryView + HideMediaDownloadOptions } // FLAGS ----------------------------------------------------------------------- @internal pub fn bits_flags() -> List(#(Int, Flag)) { - [#(int.bitwise_shift_left(1, 4), RequiresTag)] + [ + #(int.bitwise_shift_left(1, 4), RequiresTag), + #(int.bitwise_shift_left(1, 15), HideMediaDownloadOptions), + ] } // DECODERS -------------------------------------------------------------------- @internal -pub fn channel_decoder() -> decode.Decoder(Channel) { +pub fn channel_decoder() { use id <- decode.field("id", decode.string) use guild_id <- decode.optional_field( "guild_id", @@ -131,17 +119,17 @@ pub fn channel_decoder() -> decode.Decoder(Channel) { ) use default_reaction_emoji <- decode.field( "default_reaction_emoji", - decode.optional(default_reaction_decoder()), + decode.optional(forum.default_reaction_decoder()), ) - use default_thread_rate_limit_per_user <- decode.field( + use default_thread_rate_limit_per_user <- decode.optional_field( "default_thread_rate_limit_per_user", - time_duration.from_int_seconds_decoder(), + None, + decode.optional(time_duration.from_minutes_decoder()), ) use default_sort_order <- decode.field( "default_sort_order", - decode.optional(sort_order_type_decoder()), + decode.optional(forum.sort_order_type_decoder()), ) - use default_layout <- decode.field("default_layout", layout_type_decoder()) decode.success(Channel( id:, guild_id:, @@ -160,41 +148,11 @@ pub fn channel_decoder() -> decode.Decoder(Channel) { default_reaction_emoji:, default_thread_rate_limit_per_user:, default_sort_order:, - default_layout:, )) } -@internal -pub fn default_reaction_decoder() -> decode.Decoder(DefaultReaction) { - use emoji_id <- decode.field("emoji_id", decode.optional(decode.string)) - use emoji_name <- decode.field("emoji_name", decode.optional(decode.string)) - decode.success(DefaultReaction(emoji_id:, emoji_name:)) -} - -@internal -pub fn sort_order_type_decoder() -> decode.Decoder(SortOrderType) { - use variant <- decode.then(decode.int) - case variant { - 0 -> decode.success(LatestActivity) - 1 -> decode.success(CreationDate) - _ -> decode.failure(LatestActivity, "SortOrderType") - } -} - -@internal -pub fn layout_type_decoder() -> decode.Decoder(LayoutType) { - use variant <- decode.then(decode.int) - case variant { - 0 -> decode.success(NotSet) - 1 -> decode.success(ListView) - 2 -> decode.success(GalleryView) - _ -> decode.failure(NotSet, "LayoutType") - } -} - // ENCODERS -------------------------------------------------------------------- -@internal pub fn modify_encode(modify: Modify) -> Json { let name = case modify.name { Some(name) -> [#("name", json.string(name))] @@ -251,7 +209,10 @@ pub fn modify_encode(modify: Modify) -> Json { let default_reaction_emoji = modify.default_reaction_emoji - |> modification.encode("default_reaction_emoji", default_reaction_encode) + |> modification.encode( + "default_reaction_emoji", + forum.default_reaction_encode, + ) let default_thread_rate_limit_per_user = case modify.default_thread_rate_limit_per_user @@ -267,12 +228,7 @@ pub fn modify_encode(modify: Modify) -> Json { let default_sort_order = modify.default_sort_order - |> modification.encode("default_sort_order", sort_order_type_encode) - - let default_layout = case modify.default_layout { - Some(layout) -> [#("default_forum_layout", layout_type_encode(layout))] - None -> [] - } + |> modification.encode("default_sort_order", forum.sort_order_type_encode) [ name, @@ -288,46 +244,11 @@ pub fn modify_encode(modify: Modify) -> Json { default_reaction_emoji, default_thread_rate_limit_per_user, default_sort_order, - default_layout, ] |> list.flatten |> json.object } -@internal -pub fn default_reaction_encode(default_reaction: DefaultReaction) -> Json { - let DefaultReaction(emoji_id:, emoji_name:) = default_reaction - json.object([ - #("emoji_id", case emoji_id { - None -> json.null() - Some(value) -> json.string(value) - }), - #("emoji_name", case emoji_name { - None -> json.null() - Some(value) -> json.string(value) - }), - ]) -} - -@internal -pub fn sort_order_type_encode(sort_order_type: SortOrderType) -> Json { - case sort_order_type { - LatestActivity -> 0 - CreationDate -> 1 - } - |> json.int -} - -@internal -pub fn layout_type_encode(layout_type: LayoutType) -> Json { - case layout_type { - NotSet -> 0 - ListView -> 1 - GalleryView -> 2 - } - |> json.int -} - // PUBLIC API FUNCTIONS -------------------------------------------------------- pub fn modify( @@ -366,7 +287,6 @@ pub fn new_modify() -> Modify { default_reaction_emoji: Skip, default_thread_rate_limit_per_user: None, default_sort_order: Skip, - default_layout: None, ) } @@ -427,7 +347,7 @@ pub fn modify_available_tags( pub fn modify_default_reaction_emoji( modify: Modify, - reaction reaction: Modification(DefaultReaction), + reaction reaction: Modification(forum.DefaultReaction), ) -> Modify { Modify(..modify, default_reaction_emoji: reaction) } @@ -441,11 +361,7 @@ pub fn modify_default_thread_rate_limit_per_user( pub fn modify_default_sort_order( modify: Modify, - sort_order order: Modification(SortOrderType), + sort_order order: Modification(forum.SortOrderType), ) -> Modify { Modify(..modify, default_sort_order: order) } - -pub fn modify_default_layout(modify: Modify, new layout: LayoutType) -> Modify { - Modify(..modify, default_layout: Some(layout)) -} diff --git a/src/flybycord/channel/guild/stage/instance.gleam b/src/grom/channel/guild/stage/instance.gleam similarity index 100% rename from src/flybycord/channel/guild/stage/instance.gleam rename to src/grom/channel/guild/stage/instance.gleam diff --git a/src/flybycord/channel/guild/voice.gleam b/src/grom/channel/guild/text.gleam similarity index 53% rename from src/flybycord/channel/guild/voice.gleam rename to src/grom/channel/guild/text.gleam index 1e28a02..382d6ab 100644 --- a/src/flybycord/channel/guild/voice.gleam +++ b/src/grom/channel/guild/text.gleam @@ -1,10 +1,3 @@ -import flybycord/channel/permission_overwrite.{type PermissionOverwrite} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest -import flybycord/internal/time_duration -import flybycord/modification.{type Modification, Skip} -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -13,105 +6,126 @@ import gleam/list import gleam/option.{type Option, None, Some} import gleam/result import gleam/time/duration.{type Duration} +import gleam/time/timestamp.{type Timestamp} +import grom/channel/permission_overwrite.{type PermissionOverwrite} +import grom/client.{type Client} +import grom/error +import grom/internal/rest +import grom/internal/time_duration +import grom/internal/time_rfc3339 +import grom/modification.{type Modification, Skip} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- pub type Channel { Channel( id: String, - guild_id: String, + type_: Type, + guild_id: Option(String), position: Int, permission_overwrites: List(PermissionOverwrite), name: String, + topic: Option(String), is_nsfw: Bool, - bitrate: Int, - user_limit: Int, + last_message_id: Option(String), rate_limit_per_user: Duration, parent_id: Option(String), - rtc_region: Option(String), - video_quality_mode: VideoQualityMode, + last_pin_timestamp: Option(Timestamp), current_user_permissions: Option(List(Permission)), + default_auto_archive_duration: Duration, ) } pub opaque type Modify { Modify( name: Option(String), + type_: Option(Type), position: Modification(Int), + topic: Modification(String), is_nsfw: Option(Bool), rate_limit_per_user: Modification(Duration), - bitrate: Modification(Int), - user_limit: Modification(Int), permission_overwrites: Modification(List(permission_overwrite.Create)), parent_id: Modification(String), - rtc_region: Modification(String), - video_quality_mode: Modification(VideoQualityMode), + default_auto_archive_duration: Modification(Duration), + default_thread_rate_limit_per_user: Option(Duration), ) } -pub type VideoQualityMode { - Auto - Full +pub type Type { + Text + Announcement } // DECODERS -------------------------------------------------------------------- -@internal -pub fn video_quality_mode_decoder() -> decode.Decoder(VideoQualityMode) { - use variant <- decode.then(decode.int) - case variant { - 1 -> decode.success(Auto) - 2 -> decode.success(Full) - _ -> decode.failure(Auto, "VoiceQualityMode") - } -} - @internal pub fn channel_decoder() -> decode.Decoder(Channel) { use id <- decode.field("id", decode.string) - use guild_id <- decode.field("guild_id", decode.string) + use type_ <- decode.field("type", type_decoder()) + use guild_id <- decode.optional_field( + "guild_id", + None, + decode.optional(decode.string), + ) use position <- decode.field("position", decode.int) use permission_overwrites <- decode.field( "permission_overwrites", decode.list(permission_overwrite.decoder()), ) use name <- decode.field("name", decode.string) + use topic <- decode.field("topic", decode.optional(decode.string)) use is_nsfw <- decode.field("nsfw", decode.bool) - use bitrate <- decode.field("bitrate", decode.int) - use user_limit <- decode.field("user_limit", decode.int) + use last_message_id <- decode.field( + "last_message_id", + decode.optional(decode.string), + ) use rate_limit_per_user <- decode.field( "rate_limit_per_user", - time_duration.from_int_seconds_decoder(), + time_duration.from_minutes_decoder(), ) use parent_id <- decode.field("parent_id", decode.optional(decode.string)) - use rtc_region <- decode.field("rtc_region", decode.optional(decode.string)) - use video_quality_mode <- decode.optional_field( - "video_quality_mode", - Auto, - video_quality_mode_decoder(), + use last_pin_timestamp <- decode.field( + "last_pin_timestamp", + decode.optional(time_rfc3339.decoder()), ) use current_user_permissions <- decode.optional_field( "permissions", None, decode.optional(permission.decoder()), ) + use default_auto_archive_duration <- decode.field( + "default_auto_archive_duration", + time_duration.from_int_seconds_decoder(), + ) decode.success(Channel( id:, + type_:, guild_id:, position:, permission_overwrites:, name:, + topic:, is_nsfw:, - bitrate:, - user_limit:, + last_message_id:, rate_limit_per_user:, parent_id:, - rtc_region:, - video_quality_mode:, + last_pin_timestamp:, current_user_permissions:, + default_auto_archive_duration:, )) } +@internal +pub fn type_decoder() -> decode.Decoder(Type) { + use variant <- decode.then(decode.int) + case variant { + 0 -> decode.success(Text) + 5 -> decode.success(Announcement) + _ -> decode.failure(Text, "Type") + } +} + // ENCODERS -------------------------------------------------------------------- @internal @@ -121,10 +135,20 @@ pub fn modify_encode(modify: Modify) -> Json { None -> [] } + let type_ = case modify.type_ { + Some(Text) -> [#("type", json.int(0))] + Some(Announcement) -> [#("type", json.int(5))] + None -> [] + } + let position = modify.position |> modification.encode("position", json.int) + let topic = + modify.topic + |> modification.encode("topic", json.string) + let is_nsfw = case modify.is_nsfw { Some(nsfw) -> [#("nsfw", json.bool(nsfw))] None -> [] @@ -137,18 +161,10 @@ pub fn modify_encode(modify: Modify) -> Json { time_duration.to_int_seconds_encode, ) - let bitrate = - modify.bitrate - |> modification.encode("bitrate", json.int) - - let user_limit = - modify.user_limit - |> modification.encode("user_limit", json.int) - let permission_overwrites = modify.permission_overwrites - |> modification.encode("permission_overwrites", fn(overwrites) { - overwrites + |> modification.encode("permission_overwrites", fn(permissions) { + permissions |> json.array(permission_overwrite.create_encode) }) @@ -156,39 +172,41 @@ pub fn modify_encode(modify: Modify) -> Json { modify.parent_id |> modification.encode("parent_id", json.string) - let rtc_region = - modify.rtc_region - |> modification.encode("rtc_region", json.string) + let default_auto_archive_duration = + modify.default_auto_archive_duration + |> modification.encode( + "default_auto_archive_duration", + time_duration.to_int_seconds_encode, + ) - let video_quality_mode = - modify.video_quality_mode - |> modification.encode("video_quality_mode", video_quality_mode_encode) + let default_thread_rate_limit_per_user = case + modify.default_thread_rate_limit_per_user + { + Some(limit) -> [ + #( + "default_thread_rate_limit_per_user", + time_duration.to_int_seconds_encode(limit), + ), + ] + None -> [] + } [ name, + type_, position, + topic, is_nsfw, rate_limit_per_user, - bitrate, - user_limit, permission_overwrites, parent_id, - rtc_region, - video_quality_mode, + default_auto_archive_duration, + default_thread_rate_limit_per_user, ] |> list.flatten |> json.object } -@internal -pub fn video_quality_mode_encode(video_quality_mode: VideoQualityMode) -> Json { - case video_quality_mode { - Auto -> 1 - Full -> 2 - } - |> json.int -} - // PUBLIC API FUNCTIONS -------------------------------------------------------- pub fn modify( @@ -215,15 +233,15 @@ pub fn modify( pub fn new_modify() -> Modify { Modify( name: None, + type_: None, position: Skip, + topic: Skip, is_nsfw: None, rate_limit_per_user: Skip, - bitrate: Skip, - user_limit: Skip, permission_overwrites: Skip, parent_id: Skip, - rtc_region: Skip, - video_quality_mode: Skip, + default_auto_archive_duration: Skip, + default_thread_rate_limit_per_user: None, ) } @@ -231,6 +249,10 @@ pub fn modify_name(modify: Modify, new name: String) -> Modify { Modify(..modify, name: Some(name)) } +pub fn modify_type(modify: Modify, new type_: Type) -> Modify { + Modify(..modify, type_: Some(type_)) +} + pub fn modify_position( modify: Modify, position position: Modification(Int), @@ -238,22 +260,19 @@ pub fn modify_position( Modify(..modify, position:) } -pub fn modify_is_nsfw(modify: Modify, new is_nsfw: Bool) -> Modify { - Modify(..modify, is_nsfw: Some(is_nsfw)) +pub fn modify_topic(modify: Modify, topic topic: Modification(String)) -> Modify { + Modify(..modify, topic:) } -pub fn modify_bitrate( - modify: Modify, - bitrate bitrate: Modification(Int), -) -> Modify { - Modify(..modify, bitrate:) +pub fn modify_is_nsfw(modify: Modify, new is_nsfw: Bool) -> Modify { + Modify(..modify, is_nsfw: Some(is_nsfw)) } -pub fn modify_user_limit( +pub fn modify_rate_limit_per_user( modify: Modify, - limit user_limit: Modification(Int), + limit limit: Modification(Duration), ) -> Modify { - Modify(..modify, user_limit:) + Modify(..modify, rate_limit_per_user: limit) } pub fn modify_permission_overwrites( @@ -263,23 +282,20 @@ pub fn modify_permission_overwrites( Modify(..modify, permission_overwrites: overwrites) } -pub fn modify_parent_id( - modify: Modify, - id parent_id: Modification(String), -) -> Modify { - Modify(..modify, parent_id:) +pub fn modify_parent_id(modify: Modify, id id: Modification(String)) -> Modify { + Modify(..modify, parent_id: id) } -pub fn modify_rtc_region( +pub fn modify_default_auto_archive_duration( modify: Modify, - region rtc_region: Modification(String), + duration duration: Modification(Duration), ) -> Modify { - Modify(..modify, rtc_region:) + Modify(..modify, default_auto_archive_duration: duration) } -pub fn modify_video_quality_mode( +pub fn modify_default_thread_rate_limit_per_user( modify: Modify, - mode video_quality_mode: Modification(VideoQualityMode), + new limit: Duration, ) -> Modify { - Modify(..modify, video_quality_mode:) + Modify(..modify, default_thread_rate_limit_per_user: Some(limit)) } diff --git a/src/flybycord/channel/guild/thread.gleam b/src/grom/channel/guild/thread.gleam similarity index 97% rename from src/flybycord/channel/guild/thread.gleam rename to src/grom/channel/guild/thread.gleam index 3d7d975..f56c1f7 100644 --- a/src/flybycord/channel/guild/thread.gleam +++ b/src/grom/channel/guild/thread.gleam @@ -1,12 +1,3 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/guild/member.{type Member as GuildMember} -import flybycord/internal/flags -import flybycord/internal/rest -import flybycord/internal/time_duration -import flybycord/internal/time_rfc3339 -import flybycord/modification.{type Modification, Skip} -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -17,6 +8,15 @@ import gleam/option.{type Option, None, Some} import gleam/result import gleam/time/duration.{type Duration} import gleam/time/timestamp.{type Timestamp} +import grom/client.{type Client} +import grom/error +import grom/guild/member.{type Member as GuildMember} +import grom/internal/flags +import grom/internal/rest +import grom/internal/time_duration +import grom/internal/time_rfc3339 +import grom/modification.{type Modification, Skip} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/channel/guild/text.gleam b/src/grom/channel/guild/voice.gleam similarity index 54% rename from src/flybycord/channel/guild/text.gleam rename to src/grom/channel/guild/voice.gleam index d4a36ad..f0091c2 100644 --- a/src/flybycord/channel/guild/text.gleam +++ b/src/grom/channel/guild/voice.gleam @@ -1,11 +1,3 @@ -import flybycord/channel/permission_overwrite.{type PermissionOverwrite} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest -import flybycord/internal/time_duration -import flybycord/internal/time_rfc3339 -import flybycord/modification.{type Modification, Skip} -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -14,118 +6,112 @@ import gleam/list import gleam/option.{type Option, None, Some} import gleam/result import gleam/time/duration.{type Duration} -import gleam/time/timestamp.{type Timestamp} +import grom/channel/permission_overwrite.{type PermissionOverwrite} +import grom/client.{type Client} +import grom/error +import grom/internal/rest +import grom/internal/time_duration +import grom/modification.{type Modification, Skip} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- pub type Channel { Channel( id: String, - type_: Type, - guild_id: Option(String), + guild_id: String, position: Int, permission_overwrites: List(PermissionOverwrite), name: String, - topic: Option(String), is_nsfw: Bool, - last_message_id: Option(String), + bitrate: Int, + user_limit: Int, rate_limit_per_user: Duration, parent_id: Option(String), - last_pin_timestamp: Option(Timestamp), + rtc_region: Option(String), + video_quality_mode: VideoQualityMode, current_user_permissions: Option(List(Permission)), - default_auto_archive_duration: Duration, ) } pub opaque type Modify { Modify( name: Option(String), - type_: Option(Type), position: Modification(Int), - topic: Modification(String), is_nsfw: Option(Bool), rate_limit_per_user: Modification(Duration), + bitrate: Modification(Int), + user_limit: Modification(Int), permission_overwrites: Modification(List(permission_overwrite.Create)), parent_id: Modification(String), - default_auto_archive_duration: Modification(Duration), - default_thread_rate_limit_per_user: Option(Duration), + rtc_region: Modification(String), + video_quality_mode: Modification(VideoQualityMode), ) } -pub type Type { - Text - Announcement +pub type VideoQualityMode { + Auto + Full } // DECODERS -------------------------------------------------------------------- +@internal +pub fn video_quality_mode_decoder() -> decode.Decoder(VideoQualityMode) { + use variant <- decode.then(decode.int) + case variant { + 1 -> decode.success(Auto) + 2 -> decode.success(Full) + _ -> decode.failure(Auto, "VoiceQualityMode") + } +} + @internal pub fn channel_decoder() -> decode.Decoder(Channel) { use id <- decode.field("id", decode.string) - use type_ <- decode.field("type", type_decoder()) - use guild_id <- decode.optional_field( - "guild_id", - None, - decode.optional(decode.string), - ) + use guild_id <- decode.field("guild_id", decode.string) use position <- decode.field("position", decode.int) use permission_overwrites <- decode.field( "permission_overwrites", decode.list(permission_overwrite.decoder()), ) use name <- decode.field("name", decode.string) - use topic <- decode.field("topic", decode.optional(decode.string)) use is_nsfw <- decode.field("nsfw", decode.bool) - use last_message_id <- decode.field( - "last_message_id", - decode.optional(decode.string), - ) + use bitrate <- decode.field("bitrate", decode.int) + use user_limit <- decode.field("user_limit", decode.int) use rate_limit_per_user <- decode.field( "rate_limit_per_user", - time_duration.from_minutes_decoder(), + time_duration.from_int_seconds_decoder(), ) use parent_id <- decode.field("parent_id", decode.optional(decode.string)) - use last_pin_timestamp <- decode.field( - "last_pin_timestamp", - decode.optional(time_rfc3339.decoder()), + use rtc_region <- decode.field("rtc_region", decode.optional(decode.string)) + use video_quality_mode <- decode.optional_field( + "video_quality_mode", + Auto, + video_quality_mode_decoder(), ) use current_user_permissions <- decode.optional_field( "permissions", None, decode.optional(permission.decoder()), ) - use default_auto_archive_duration <- decode.field( - "default_auto_archive_duration", - time_duration.from_int_seconds_decoder(), - ) decode.success(Channel( id:, - type_:, guild_id:, position:, permission_overwrites:, name:, - topic:, is_nsfw:, - last_message_id:, + bitrate:, + user_limit:, rate_limit_per_user:, parent_id:, - last_pin_timestamp:, + rtc_region:, + video_quality_mode:, current_user_permissions:, - default_auto_archive_duration:, )) } -@internal -pub fn type_decoder() -> decode.Decoder(Type) { - use variant <- decode.then(decode.int) - case variant { - 0 -> decode.success(Text) - 5 -> decode.success(Announcement) - _ -> decode.failure(Text, "Type") - } -} - // ENCODERS -------------------------------------------------------------------- @internal @@ -135,20 +121,10 @@ pub fn modify_encode(modify: Modify) -> Json { None -> [] } - let type_ = case modify.type_ { - Some(Text) -> [#("type", json.int(0))] - Some(Announcement) -> [#("type", json.int(5))] - None -> [] - } - let position = modify.position |> modification.encode("position", json.int) - let topic = - modify.topic - |> modification.encode("topic", json.string) - let is_nsfw = case modify.is_nsfw { Some(nsfw) -> [#("nsfw", json.bool(nsfw))] None -> [] @@ -161,10 +137,18 @@ pub fn modify_encode(modify: Modify) -> Json { time_duration.to_int_seconds_encode, ) + let bitrate = + modify.bitrate + |> modification.encode("bitrate", json.int) + + let user_limit = + modify.user_limit + |> modification.encode("user_limit", json.int) + let permission_overwrites = modify.permission_overwrites - |> modification.encode("permission_overwrites", fn(permissions) { - permissions + |> modification.encode("permission_overwrites", fn(overwrites) { + overwrites |> json.array(permission_overwrite.create_encode) }) @@ -172,41 +156,39 @@ pub fn modify_encode(modify: Modify) -> Json { modify.parent_id |> modification.encode("parent_id", json.string) - let default_auto_archive_duration = - modify.default_auto_archive_duration - |> modification.encode( - "default_auto_archive_duration", - time_duration.to_int_seconds_encode, - ) + let rtc_region = + modify.rtc_region + |> modification.encode("rtc_region", json.string) - let default_thread_rate_limit_per_user = case - modify.default_thread_rate_limit_per_user - { - Some(limit) -> [ - #( - "default_thread_rate_limit_per_user", - time_duration.to_int_seconds_encode(limit), - ), - ] - None -> [] - } + let video_quality_mode = + modify.video_quality_mode + |> modification.encode("video_quality_mode", video_quality_mode_encode) [ name, - type_, position, - topic, is_nsfw, rate_limit_per_user, + bitrate, + user_limit, permission_overwrites, parent_id, - default_auto_archive_duration, - default_thread_rate_limit_per_user, + rtc_region, + video_quality_mode, ] |> list.flatten |> json.object } +@internal +pub fn video_quality_mode_encode(video_quality_mode: VideoQualityMode) -> Json { + case video_quality_mode { + Auto -> 1 + Full -> 2 + } + |> json.int +} + // PUBLIC API FUNCTIONS -------------------------------------------------------- pub fn modify( @@ -233,15 +215,15 @@ pub fn modify( pub fn new_modify() -> Modify { Modify( name: None, - type_: None, position: Skip, - topic: Skip, is_nsfw: None, rate_limit_per_user: Skip, + bitrate: Skip, + user_limit: Skip, permission_overwrites: Skip, parent_id: Skip, - default_auto_archive_duration: Skip, - default_thread_rate_limit_per_user: None, + rtc_region: Skip, + video_quality_mode: Skip, ) } @@ -249,10 +231,6 @@ pub fn modify_name(modify: Modify, new name: String) -> Modify { Modify(..modify, name: Some(name)) } -pub fn modify_type(modify: Modify, new type_: Type) -> Modify { - Modify(..modify, type_: Some(type_)) -} - pub fn modify_position( modify: Modify, position position: Modification(Int), @@ -260,19 +238,22 @@ pub fn modify_position( Modify(..modify, position:) } -pub fn modify_topic(modify: Modify, topic topic: Modification(String)) -> Modify { - Modify(..modify, topic:) -} - pub fn modify_is_nsfw(modify: Modify, new is_nsfw: Bool) -> Modify { Modify(..modify, is_nsfw: Some(is_nsfw)) } -pub fn modify_rate_limit_per_user( +pub fn modify_bitrate( + modify: Modify, + bitrate bitrate: Modification(Int), +) -> Modify { + Modify(..modify, bitrate:) +} + +pub fn modify_user_limit( modify: Modify, - limit limit: Modification(Duration), + limit user_limit: Modification(Int), ) -> Modify { - Modify(..modify, rate_limit_per_user: limit) + Modify(..modify, user_limit:) } pub fn modify_permission_overwrites( @@ -282,20 +263,23 @@ pub fn modify_permission_overwrites( Modify(..modify, permission_overwrites: overwrites) } -pub fn modify_parent_id(modify: Modify, id id: Modification(String)) -> Modify { - Modify(..modify, parent_id: id) +pub fn modify_parent_id( + modify: Modify, + id parent_id: Modification(String), +) -> Modify { + Modify(..modify, parent_id:) } -pub fn modify_default_auto_archive_duration( +pub fn modify_rtc_region( modify: Modify, - duration duration: Modification(Duration), + region rtc_region: Modification(String), ) -> Modify { - Modify(..modify, default_auto_archive_duration: duration) + Modify(..modify, rtc_region:) } -pub fn modify_default_thread_rate_limit_per_user( +pub fn modify_video_quality_mode( modify: Modify, - new limit: Duration, + mode video_quality_mode: Modification(VideoQualityMode), ) -> Modify { - Modify(..modify, default_thread_rate_limit_per_user: Some(limit)) + Modify(..modify, video_quality_mode:) } diff --git a/src/flybycord/channel/permission_overwrite.gleam b/src/grom/channel/permission_overwrite.gleam similarity index 95% rename from src/flybycord/channel/permission_overwrite.gleam rename to src/grom/channel/permission_overwrite.gleam index 9efe010..2f3f499 100644 --- a/src/flybycord/channel/permission_overwrite.gleam +++ b/src/grom/channel/permission_overwrite.gleam @@ -1,13 +1,13 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/http import gleam/http/request import gleam/json.{type Json} import gleam/option.{type Option} import gleam/result +import grom/client.{type Client} +import grom/error +import grom/internal/rest +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/channel/user/dm.gleam b/src/grom/channel/user/dm.gleam similarity index 89% rename from src/flybycord/channel/user/dm.gleam rename to src/grom/channel/user/dm.gleam index 8290f19..aef31d0 100644 --- a/src/flybycord/channel/user/dm.gleam +++ b/src/grom/channel/user/dm.gleam @@ -1,14 +1,14 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/internal/rest -import flybycord/permission.{type Permission} -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/http import gleam/http/request import gleam/json import gleam/option.{type Option, None} import gleam/result +import grom/client.{type Client} +import grom/error +import grom/internal/rest +import grom/permission.{type Permission} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/client.gleam b/src/grom/client.gleam similarity index 100% rename from src/flybycord/client.gleam rename to src/grom/client.gleam diff --git a/src/flybycord/emoji.gleam b/src/grom/emoji.gleam similarity index 97% rename from src/flybycord/emoji.gleam rename to src/grom/emoji.gleam index 321920c..d226b3f 100644 --- a/src/flybycord/emoji.gleam +++ b/src/grom/emoji.gleam @@ -1,6 +1,6 @@ -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/user.{type User} // TYPES ---------------------------------------------------------------------- diff --git a/src/flybycord/entitlement.gleam b/src/grom/entitlement.gleam similarity index 98% rename from src/flybycord/entitlement.gleam rename to src/grom/entitlement.gleam index cfda640..e7e9de1 100644 --- a/src/flybycord/entitlement.gleam +++ b/src/grom/entitlement.gleam @@ -3,10 +3,10 @@ //// An example of an entitlement is the license key for the premium version of your bot. //// See [SKU](sku.html). -import flybycord/internal/time_rfc3339 import gleam/dynamic/decode import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/internal/time_rfc3339 // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/error.gleam b/src/grom/error.gleam similarity index 100% rename from src/flybycord/error.gleam rename to src/grom/error.gleam diff --git a/src/flybycord/file.gleam b/src/grom/file.gleam similarity index 100% rename from src/flybycord/file.gleam rename to src/grom/file.gleam diff --git a/src/flybycord/guild.gleam b/src/grom/guild.gleam similarity index 97% rename from src/flybycord/guild.gleam rename to src/grom/guild.gleam index bc6f59f..98c5424 100644 --- a/src/flybycord/guild.gleam +++ b/src/grom/guild.gleam @@ -1,13 +1,3 @@ -import flybycord/client.{type Client} -import flybycord/emoji.{type Emoji} -import flybycord/error -import flybycord/guild/auto_moderation/rule.{type Rule} -import flybycord/guild/role.{type Role} -import flybycord/guild/welcome_screen.{type WelcomeScreen} -import flybycord/internal/flags -import flybycord/internal/rest -import flybycord/internal/time_rfc3339 -import flybycord/sticker.{type Sticker} import gleam/dynamic/decode import gleam/http import gleam/int @@ -15,6 +5,16 @@ import gleam/json import gleam/option.{type Option, None} import gleam/result import gleam/time/timestamp.{type Timestamp} +import grom/client.{type Client} +import grom/emoji.{type Emoji} +import grom/error +import grom/guild/auto_moderation/rule.{type Rule} +import grom/guild/role.{type Role} +import grom/guild/welcome_screen.{type WelcomeScreen} +import grom/internal/flags +import grom/internal/rest +import grom/internal/time_rfc3339 +import grom/sticker.{type Sticker} // TYPES ---------------------------------------------------------------------- diff --git a/src/flybycord/guild/audit_log.gleam b/src/grom/guild/audit_log.gleam similarity index 88% rename from src/flybycord/guild/audit_log.gleam rename to src/grom/guild/audit_log.gleam index d55bf30..0fab0d3 100644 --- a/src/flybycord/guild/audit_log.gleam +++ b/src/grom/guild/audit_log.gleam @@ -1,13 +1,3 @@ -import flybycord/channel.{type Channel} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/guild/audit_log/entry.{type Entry} -import flybycord/guild/auto_moderation/rule.{type Rule} -import flybycord/guild/scheduled_event.{type ScheduledEvent} -import flybycord/interaction/application_command.{type ApplicationCommand} -import flybycord/internal/rest -import flybycord/user.{type User} -import flybycord/webhook.{type Webhook} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -15,6 +5,16 @@ import gleam/int import gleam/json import gleam/list import gleam/result +import grom/channel.{type Channel} +import grom/client.{type Client} +import grom/error +import grom/guild/audit_log/entry.{type Entry} +import grom/guild/auto_moderation/rule.{type Rule} +import grom/guild/scheduled_event.{type ScheduledEvent} +import grom/interaction/application_command.{type ApplicationCommand} +import grom/internal/rest +import grom/user.{type User} +import grom/webhook.{type Webhook} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/audit_log/change.gleam b/src/grom/guild/audit_log/change.gleam similarity index 100% rename from src/flybycord/guild/audit_log/change.gleam rename to src/grom/guild/audit_log/change.gleam diff --git a/src/flybycord/guild/audit_log/entry.gleam b/src/grom/guild/audit_log/entry.gleam similarity index 98% rename from src/flybycord/guild/audit_log/entry.gleam rename to src/grom/guild/audit_log/entry.gleam index 7074917..dc91fc7 100644 --- a/src/flybycord/guild/audit_log/entry.gleam +++ b/src/grom/guild/audit_log/entry.gleam @@ -1,10 +1,10 @@ -import flybycord/channel/permission_overwrite -import flybycord/guild/audit_log/change.{type Change} -import flybycord/guild/auto_moderation/trigger -import flybycord/guild/integration import gleam/dynamic/decode import gleam/int import gleam/option.{type Option, None} +import grom/channel/permission_overwrite +import grom/guild/audit_log/change.{type Change} +import grom/guild/auto_moderation/trigger +import grom/guild/integration // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/auto_moderation/action.gleam b/src/grom/guild/auto_moderation/action.gleam similarity index 98% rename from src/flybycord/guild/auto_moderation/action.gleam rename to src/grom/guild/auto_moderation/action.gleam index 4af7794..9290378 100644 --- a/src/flybycord/guild/auto_moderation/action.gleam +++ b/src/grom/guild/auto_moderation/action.gleam @@ -1,9 +1,9 @@ -import flybycord/internal/time_duration import gleam/dynamic/decode import gleam/json.{type Json} import gleam/list import gleam/option.{type Option, None, Some} import gleam/time/duration.{type Duration} +import grom/internal/time_duration // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/auto_moderation/event.gleam b/src/grom/guild/auto_moderation/event.gleam similarity index 100% rename from src/flybycord/guild/auto_moderation/event.gleam rename to src/grom/guild/auto_moderation/event.gleam diff --git a/src/flybycord/guild/auto_moderation/keyword_preset.gleam b/src/grom/guild/auto_moderation/keyword_preset.gleam similarity index 100% rename from src/flybycord/guild/auto_moderation/keyword_preset.gleam rename to src/grom/guild/auto_moderation/keyword_preset.gleam diff --git a/src/flybycord/guild/auto_moderation/rule.gleam b/src/grom/guild/auto_moderation/rule.gleam similarity index 97% rename from src/flybycord/guild/auto_moderation/rule.gleam rename to src/grom/guild/auto_moderation/rule.gleam index 417095e..a6c5c4c 100644 --- a/src/flybycord/guild/auto_moderation/rule.gleam +++ b/src/grom/guild/auto_moderation/rule.gleam @@ -1,9 +1,3 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/guild/auto_moderation/action.{type Action} -import flybycord/guild/auto_moderation/event -import flybycord/guild/auto_moderation/trigger -import flybycord/internal/rest import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -11,6 +5,12 @@ import gleam/json.{type Json} import gleam/list import gleam/option.{type Option, None, Some} import gleam/result +import grom/client.{type Client} +import grom/error +import grom/guild/auto_moderation/action.{type Action} +import grom/guild/auto_moderation/event +import grom/guild/auto_moderation/trigger +import grom/internal/rest // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/auto_moderation/trigger.gleam b/src/grom/guild/auto_moderation/trigger.gleam similarity index 98% rename from src/flybycord/guild/auto_moderation/trigger.gleam rename to src/grom/guild/auto_moderation/trigger.gleam index 8f4ca33..84b2021 100644 --- a/src/flybycord/guild/auto_moderation/trigger.gleam +++ b/src/grom/guild/auto_moderation/trigger.gleam @@ -1,7 +1,7 @@ -import flybycord/guild/auto_moderation/keyword_preset import gleam/dynamic/decode import gleam/int import gleam/json.{type Json} +import grom/guild/auto_moderation/keyword_preset // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/ban.gleam b/src/grom/guild/ban.gleam similarity index 93% rename from src/flybycord/guild/ban.gleam rename to src/grom/guild/ban.gleam index f2c4ce0..ea68b05 100644 --- a/src/flybycord/guild/ban.gleam +++ b/src/grom/guild/ban.gleam @@ -1,6 +1,6 @@ -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/integration.gleam b/src/grom/guild/integration.gleam similarity index 98% rename from src/flybycord/guild/integration.gleam rename to src/grom/guild/integration.gleam index 57978e7..1ed2ec0 100644 --- a/src/flybycord/guild/integration.gleam +++ b/src/grom/guild/integration.gleam @@ -1,8 +1,8 @@ -import flybycord/internal/time_rfc3339 -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/internal/time_rfc3339 +import grom/user.{type User} // TYPES ---------------------------------------------------------------------- diff --git a/src/flybycord/guild/member.gleam b/src/grom/guild/member.gleam similarity index 97% rename from src/flybycord/guild/member.gleam rename to src/grom/guild/member.gleam index 6c0632a..41ee684 100644 --- a/src/flybycord/guild/member.gleam +++ b/src/grom/guild/member.gleam @@ -1,10 +1,10 @@ -import flybycord/internal/flags -import flybycord/internal/time_rfc3339 -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/int import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/internal/flags +import grom/internal/time_rfc3339 +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/onboarding.gleam b/src/grom/guild/onboarding.gleam similarity index 98% rename from src/flybycord/guild/onboarding.gleam rename to src/grom/guild/onboarding.gleam index 123b187..ce25cec 100644 --- a/src/flybycord/guild/onboarding.gleam +++ b/src/grom/guild/onboarding.gleam @@ -1,6 +1,6 @@ -import flybycord/emoji.{type Emoji} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/emoji.{type Emoji} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/preview.gleam b/src/grom/guild/preview.gleam similarity index 94% rename from src/flybycord/guild/preview.gleam rename to src/grom/guild/preview.gleam index 876d6ed..6125c74 100644 --- a/src/flybycord/guild/preview.gleam +++ b/src/grom/guild/preview.gleam @@ -1,8 +1,8 @@ -import flybycord/emoji.{type Emoji} -import flybycord/guild -import flybycord/sticker.{type Sticker} import gleam/dynamic/decode import gleam/option.{type Option} +import grom/emoji.{type Emoji} +import grom/guild +import grom/sticker.{type Sticker} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/role.gleam b/src/grom/guild/role.gleam similarity index 97% rename from src/flybycord/guild/role.gleam rename to src/grom/guild/role.gleam index 901cc6f..ee7d584 100644 --- a/src/flybycord/guild/role.gleam +++ b/src/grom/guild/role.gleam @@ -1,8 +1,8 @@ -import flybycord/internal/flags -import flybycord/permission.{type Permission} import gleam/dynamic/decode import gleam/int import gleam/option.{type Option, None} +import grom/internal/flags +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/scheduled_event.gleam b/src/grom/guild/scheduled_event.gleam similarity index 96% rename from src/flybycord/guild/scheduled_event.gleam rename to src/grom/guild/scheduled_event.gleam index 085e0f5..8a4336c 100644 --- a/src/flybycord/guild/scheduled_event.gleam +++ b/src/grom/guild/scheduled_event.gleam @@ -1,9 +1,9 @@ -import flybycord/guild/scheduled_event/recurrence_rule.{type RecurrenceRule} -import flybycord/internal/time_rfc3339 -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/guild/scheduled_event/recurrence_rule.{type RecurrenceRule} +import grom/internal/time_rfc3339 +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/scheduled_event/recurrence_rule.gleam b/src/grom/guild/scheduled_event/recurrence_rule.gleam similarity index 98% rename from src/flybycord/guild/scheduled_event/recurrence_rule.gleam rename to src/grom/guild/scheduled_event/recurrence_rule.gleam index aa6854d..9976b50 100644 --- a/src/flybycord/guild/scheduled_event/recurrence_rule.gleam +++ b/src/grom/guild/scheduled_event/recurrence_rule.gleam @@ -1,7 +1,7 @@ -import flybycord/internal/time_rfc3339 import gleam/dynamic/decode import gleam/option.{type Option} import gleam/time/timestamp.{type Timestamp} +import grom/internal/time_rfc3339 // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/template.gleam b/src/grom/guild/template.gleam similarity index 95% rename from src/flybycord/guild/template.gleam rename to src/grom/guild/template.gleam index 898926e..dd98588 100644 --- a/src/flybycord/guild/template.gleam +++ b/src/grom/guild/template.gleam @@ -1,8 +1,8 @@ -import flybycord/internal/time_rfc3339 -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option} import gleam/time/timestamp.{type Timestamp} +import grom/internal/time_rfc3339 +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/guild/welcome_screen.gleam b/src/grom/guild/welcome_screen.gleam similarity index 100% rename from src/flybycord/guild/welcome_screen.gleam rename to src/grom/guild/welcome_screen.gleam diff --git a/src/flybycord/guild/widget.gleam b/src/grom/guild/widget.gleam similarity index 94% rename from src/flybycord/guild/widget.gleam rename to src/grom/guild/widget.gleam index 507954f..eee648d 100644 --- a/src/flybycord/guild/widget.gleam +++ b/src/grom/guild/widget.gleam @@ -1,7 +1,7 @@ -import flybycord/channel.{type Channel} -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option} +import grom/channel.{type Channel} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/image.gleam b/src/grom/image.gleam similarity index 100% rename from src/flybycord/image.gleam rename to src/grom/image.gleam diff --git a/src/flybycord/interaction.gleam b/src/grom/interaction.gleam similarity index 79% rename from src/flybycord/interaction.gleam rename to src/grom/interaction.gleam index 9673152..e18fd81 100644 --- a/src/flybycord/interaction.gleam +++ b/src/grom/interaction.gleam @@ -1,17 +1,17 @@ -import flybycord/application -import flybycord/channel.{type Channel} -import flybycord/entitlement.{type Entitlement} -import flybycord/guild.{type Guild} -import flybycord/guild/member.{type Member} -import flybycord/interaction/application_command -import flybycord/interaction/context_type.{type ContextType} -import flybycord/interaction/resolved.{type Resolved} -import flybycord/message.{type Message} -import flybycord/message/component.{type Component} -import flybycord/permission.{type Permission} -import flybycord/user.{type User} import gleam/dict.{type Dict} import gleam/option.{type Option} +import grom/application +import grom/channel.{type Channel} +import grom/entitlement.{type Entitlement} +import grom/guild.{type Guild} +import grom/guild/member.{type Member} +import grom/interaction/application_command +import grom/interaction/context_type.{type ContextType} +import grom/interaction/resolved.{type Resolved} +import grom/message.{type Message} +import grom/message/component.{type Component} +import grom/permission.{type Permission} +import grom/user.{type User} pub type Interaction { Interaction( diff --git a/src/flybycord/interaction/application_command.gleam b/src/grom/interaction/application_command.gleam similarity index 92% rename from src/flybycord/interaction/application_command.gleam rename to src/grom/interaction/application_command.gleam index 9fa9d13..36ec163 100644 --- a/src/flybycord/interaction/application_command.gleam +++ b/src/grom/interaction/application_command.gleam @@ -1,12 +1,10 @@ -import flybycord/application -import flybycord/interaction/application_command/command_option.{ - type CommandOption, -} -import flybycord/interaction/context_type.{type ContextType} -import flybycord/permission.{type Permission} import gleam/dict.{type Dict} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/application +import grom/interaction/application_command/command_option.{type CommandOption} +import grom/interaction/context_type.{type ContextType} +import grom/permission.{type Permission} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/interaction/application_command/choice.gleam b/src/grom/interaction/application_command/choice.gleam similarity index 100% rename from src/flybycord/interaction/application_command/choice.gleam rename to src/grom/interaction/application_command/choice.gleam diff --git a/src/flybycord/interaction/application_command/command_option.gleam b/src/grom/interaction/application_command/command_option.gleam similarity index 98% rename from src/flybycord/interaction/application_command/command_option.gleam rename to src/grom/interaction/application_command/command_option.gleam index 3c60934..cd13a18 100644 --- a/src/flybycord/interaction/application_command/command_option.gleam +++ b/src/grom/interaction/application_command/command_option.gleam @@ -1,12 +1,12 @@ //// This module has been named `command_option`, because `option` is a Gleam standard library module. //// So has its underlying type. -//// This deviates from flybycord's naming convention. +//// This deviates from grom's naming convention. -import flybycord/channel -import flybycord/interaction/application_command/choice.{type Choice} import gleam/dict.{type Dict} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/channel +import grom/interaction/application_command/choice.{type Choice} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/interaction/context_type.gleam b/src/grom/interaction/context_type.gleam similarity index 100% rename from src/flybycord/interaction/context_type.gleam rename to src/grom/interaction/context_type.gleam diff --git a/src/flybycord/interaction/resolved.gleam b/src/grom/interaction/resolved.gleam similarity index 67% rename from src/flybycord/interaction/resolved.gleam rename to src/grom/interaction/resolved.gleam index feb5e64..170e3b7 100644 --- a/src/flybycord/interaction/resolved.gleam +++ b/src/grom/interaction/resolved.gleam @@ -1,12 +1,12 @@ -import flybycord/channel -import flybycord/channel/guild/thread -import flybycord/guild/member.{type Member} -import flybycord/guild/role.{type Role} -import flybycord/message.{type Message} -import flybycord/message/attachment.{type Attachment} -import flybycord/permission.{type Permission} -import flybycord/user.{type User} import gleam/option.{type Option} +import grom/channel +import grom/channel/guild/thread +import grom/guild/member.{type Member} +import grom/guild/role.{type Role} +import grom/message.{type Message} +import grom/message/attachment.{type Attachment} +import grom/permission.{type Permission} +import grom/user.{type User} pub type Resolved { Resolved( diff --git a/src/flybycord/internal/base64.gleam b/src/grom/internal/base64.gleam similarity index 100% rename from src/flybycord/internal/base64.gleam rename to src/grom/internal/base64.gleam diff --git a/src/flybycord/internal/flags.gleam b/src/grom/internal/flags.gleam similarity index 100% rename from src/flybycord/internal/flags.gleam rename to src/grom/internal/flags.gleam diff --git a/src/flybycord/internal/rest.gleam b/src/grom/internal/rest.gleam similarity index 92% rename from src/flybycord/internal/rest.gleam rename to src/grom/internal/rest.gleam index dc47781..9a4e07d 100644 --- a/src/flybycord/internal/rest.gleam +++ b/src/grom/internal/rest.gleam @@ -1,6 +1,3 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/file.{type File} import gleam/http import gleam/http/request.{type Request} import gleam/http/response.{type Response} @@ -9,6 +6,9 @@ import gleam/int import gleam/list import gleam/option.{type Option, None, Some} import gleam/result +import grom/client.{type Client} +import grom/error +import grom/file.{type File} import multipart_form import multipart_form/field @@ -48,9 +48,7 @@ pub fn new_request( |> request.prepend_header("authorization", "Bot " <> client.token) |> request.prepend_header( "user-agent", - "DiscordBot (https://github.com/folospior/flybycord, " - <> client.version() - <> ")", + "DiscordBot (https://github.com/folospior/grom, " <> client.version() <> ")", ) |> request.prepend_header("content-type", "application/json") } diff --git a/src/flybycord/internal/time_duration.gleam b/src/grom/internal/time_duration.gleam similarity index 100% rename from src/flybycord/internal/time_duration.gleam rename to src/grom/internal/time_duration.gleam diff --git a/src/flybycord/internal/time_rfc3339.gleam b/src/grom/internal/time_rfc3339.gleam similarity index 100% rename from src/flybycord/internal/time_rfc3339.gleam rename to src/grom/internal/time_rfc3339.gleam diff --git a/src/flybycord/invite.gleam b/src/grom/invite.gleam similarity index 95% rename from src/flybycord/invite.gleam rename to src/grom/invite.gleam index e1e7fd5..6bf1fbd 100644 --- a/src/flybycord/invite.gleam +++ b/src/grom/invite.gleam @@ -1,12 +1,3 @@ -import flybycord/application.{type Application} -import flybycord/channel.{type Channel} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/guild.{type Guild} -import flybycord/internal/rest -import flybycord/internal/time_duration -import flybycord/internal/time_rfc3339 -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/http import gleam/http/request @@ -15,6 +6,15 @@ import gleam/option.{type Option, None} import gleam/result import gleam/time/duration.{type Duration} import gleam/time/timestamp.{type Timestamp} +import grom/application.{type Application} +import grom/channel.{type Channel} +import grom/client.{type Client} +import grom/error +import grom/guild.{type Guild} +import grom/internal/rest +import grom/internal/time_duration +import grom/internal/time_rfc3339 +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message.gleam b/src/grom/message.gleam similarity index 93% rename from src/flybycord/message.gleam rename to src/grom/message.gleam index 0ecf295..9ab0a95 100644 --- a/src/flybycord/message.gleam +++ b/src/grom/message.gleam @@ -1,23 +1,3 @@ -import flybycord/application.{type Application} -import flybycord/channel.{type Channel} -import flybycord/client.{type Client} -import flybycord/error -import flybycord/guild/role.{type Role} -import flybycord/internal/flags -import flybycord/internal/rest -import flybycord/internal/time_rfc3339 -import flybycord/message/activity.{type Activity} -import flybycord/message/attachment.{type Attachment} -import flybycord/message/call.{type Call} -import flybycord/message/component.{type Component} -import flybycord/message/embed.{type Embed} -import flybycord/message/interaction_metadata.{type InteractionMetadata} -import flybycord/message/message_reference.{type MessageReference} -import flybycord/message/poll.{type Poll} -import flybycord/message/reaction.{type Reaction} -import flybycord/message/resolved.{type Resolved} -import flybycord/sticker -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/http import gleam/int @@ -25,6 +5,26 @@ import gleam/json import gleam/option.{type Option, None} import gleam/result import gleam/time/timestamp.{type Timestamp} +import grom/application.{type Application} +import grom/channel.{type Channel} +import grom/client.{type Client} +import grom/error +import grom/guild/role.{type Role} +import grom/internal/flags +import grom/internal/rest +import grom/internal/time_rfc3339 +import grom/message/activity.{type Activity} +import grom/message/attachment.{type Attachment} +import grom/message/call.{type Call} +import grom/message/component.{type Component} +import grom/message/embed.{type Embed} +import grom/message/interaction_metadata.{type InteractionMetadata} +import grom/message/message_reference.{type MessageReference} +import grom/message/poll.{type Poll} +import grom/message/reaction.{type Reaction} +import grom/message/resolved.{type Resolved} +import grom/sticker +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/activity.gleam b/src/grom/message/activity.gleam similarity index 100% rename from src/flybycord/message/activity.gleam rename to src/grom/message/activity.gleam diff --git a/src/flybycord/message/allowed_mentions.gleam b/src/grom/message/allowed_mentions.gleam similarity index 100% rename from src/flybycord/message/allowed_mentions.gleam rename to src/grom/message/allowed_mentions.gleam diff --git a/src/flybycord/message/attachment.gleam b/src/grom/message/attachment.gleam similarity index 95% rename from src/flybycord/message/attachment.gleam rename to src/grom/message/attachment.gleam index 1cef88f..84cda0f 100644 --- a/src/flybycord/message/attachment.gleam +++ b/src/grom/message/attachment.gleam @@ -1,10 +1,10 @@ -import flybycord/internal/base64 -import flybycord/internal/flags -import flybycord/internal/time_duration import gleam/dynamic/decode import gleam/int import gleam/option.{type Option, None} import gleam/time/duration.{type Duration} +import grom/internal/base64 +import grom/internal/flags +import grom/internal/time_duration // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/call.gleam b/src/grom/message/call.gleam similarity index 94% rename from src/flybycord/message/call.gleam rename to src/grom/message/call.gleam index 138ef3d..e14598c 100644 --- a/src/flybycord/message/call.gleam +++ b/src/grom/message/call.gleam @@ -1,7 +1,7 @@ -import flybycord/internal/time_rfc3339 import gleam/dynamic/decode import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/internal/time_rfc3339 // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component.gleam b/src/grom/message/component.gleam similarity index 73% rename from src/flybycord/message/component.gleam rename to src/grom/message/component.gleam index 85ad02c..9e57c5d 100644 --- a/src/flybycord/message/component.gleam +++ b/src/grom/message/component.gleam @@ -1,19 +1,19 @@ -import flybycord/message/component/action_row.{type ActionRow} -import flybycord/message/component/button.{type Button} -import flybycord/message/component/channel_select.{type ChannelSelect} -import flybycord/message/component/container.{type Container} -import flybycord/message/component/file.{type File} -import flybycord/message/component/media_gallery.{type MediaGallery} -import flybycord/message/component/mentionable_select.{type MentionableSelect} -import flybycord/message/component/role_select.{type RoleSelect} -import flybycord/message/component/section.{type Section} -import flybycord/message/component/separator.{type Separator} -import flybycord/message/component/string_select.{type StringSelect} -import flybycord/message/component/text_display.{type TextDisplay} -import flybycord/message/component/text_input.{type TextInput} -import flybycord/message/component/user_select.{type UserSelect} import gleam/dynamic/decode import gleam/option.{None} +import grom/message/component/action_row.{type ActionRow} +import grom/message/component/button.{type Button} +import grom/message/component/channel_select.{type ChannelSelect} +import grom/message/component/container.{type Container} +import grom/message/component/file.{type File} +import grom/message/component/media_gallery.{type MediaGallery} +import grom/message/component/mentionable_select.{type MentionableSelect} +import grom/message/component/role_select.{type RoleSelect} +import grom/message/component/section.{type Section} +import grom/message/component/separator.{type Separator} +import grom/message/component/string_select.{type StringSelect} +import grom/message/component/text_display.{type TextDisplay} +import grom/message/component/text_input.{type TextInput} +import grom/message/component/user_select.{type UserSelect} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/action_row.gleam b/src/grom/message/component/action_row.gleam similarity index 80% rename from src/flybycord/message/component/action_row.gleam rename to src/grom/message/component/action_row.gleam index fefec0e..5babb3b 100644 --- a/src/flybycord/message/component/action_row.gleam +++ b/src/grom/message/component/action_row.gleam @@ -1,12 +1,12 @@ -import flybycord/message/component/button.{type Button} -import flybycord/message/component/channel_select.{type ChannelSelect} -import flybycord/message/component/mentionable_select.{type MentionableSelect} -import flybycord/message/component/role_select.{type RoleSelect} -import flybycord/message/component/string_select.{type StringSelect} -import flybycord/message/component/text_input.{type TextInput} -import flybycord/message/component/user_select.{type UserSelect} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/message/component/button.{type Button} +import grom/message/component/channel_select.{type ChannelSelect} +import grom/message/component/mentionable_select.{type MentionableSelect} +import grom/message/component/role_select.{type RoleSelect} +import grom/message/component/string_select.{type StringSelect} +import grom/message/component/text_input.{type TextInput} +import grom/message/component/user_select.{type UserSelect} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/button.gleam b/src/grom/message/component/button.gleam similarity index 98% rename from src/flybycord/message/component/button.gleam rename to src/grom/message/component/button.gleam index 8049f4b..942918e 100644 --- a/src/flybycord/message/component/button.gleam +++ b/src/grom/message/component/button.gleam @@ -1,6 +1,6 @@ -import flybycord/emoji.{type Emoji} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/emoji.{type Emoji} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/channel_select.gleam b/src/grom/message/component/channel_select.gleam similarity index 98% rename from src/flybycord/message/component/channel_select.gleam rename to src/grom/message/component/channel_select.gleam index e6fb282..f9aabfe 100644 --- a/src/flybycord/message/component/channel_select.gleam +++ b/src/grom/message/component/channel_select.gleam @@ -1,6 +1,6 @@ -import flybycord/channel import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/channel pub type ChannelSelect { ChannelSelect( diff --git a/src/flybycord/message/component/container.gleam b/src/grom/message/component/container.gleam similarity index 84% rename from src/flybycord/message/component/container.gleam rename to src/grom/message/component/container.gleam index c1fd452..86208f4 100644 --- a/src/flybycord/message/component/container.gleam +++ b/src/grom/message/component/container.gleam @@ -1,11 +1,11 @@ -import flybycord/message/component/action_row.{type ActionRow} -import flybycord/message/component/file.{type File} -import flybycord/message/component/media_gallery.{type MediaGallery} -import flybycord/message/component/section.{type Section} -import flybycord/message/component/separator.{type Separator} -import flybycord/message/component/text_display.{type TextDisplay} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/message/component/action_row.{type ActionRow} +import grom/message/component/file.{type File} +import grom/message/component/media_gallery.{type MediaGallery} +import grom/message/component/section.{type Section} +import grom/message/component/separator.{type Separator} +import grom/message/component/text_display.{type TextDisplay} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/file.gleam b/src/grom/message/component/file.gleam similarity index 88% rename from src/flybycord/message/component/file.gleam rename to src/grom/message/component/file.gleam index 79c94f5..c5cff57 100644 --- a/src/flybycord/message/component/file.gleam +++ b/src/grom/message/component/file.gleam @@ -1,6 +1,6 @@ -import flybycord/message/component/unfurled_media_item.{type UnfurledMediaItem} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/message/component/unfurled_media_item.{type UnfurledMediaItem} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/media_gallery.gleam b/src/grom/message/component/media_gallery.gleam similarity index 92% rename from src/flybycord/message/component/media_gallery.gleam rename to src/grom/message/component/media_gallery.gleam index 2059f1f..e5aed01 100644 --- a/src/flybycord/message/component/media_gallery.gleam +++ b/src/grom/message/component/media_gallery.gleam @@ -1,6 +1,6 @@ -import flybycord/message/component/unfurled_media_item.{type UnfurledMediaItem} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/message/component/unfurled_media_item.{type UnfurledMediaItem} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/mentionable_select.gleam b/src/grom/message/component/mentionable_select.gleam similarity index 100% rename from src/flybycord/message/component/mentionable_select.gleam rename to src/grom/message/component/mentionable_select.gleam diff --git a/src/flybycord/message/component/role_select.gleam b/src/grom/message/component/role_select.gleam similarity index 100% rename from src/flybycord/message/component/role_select.gleam rename to src/grom/message/component/role_select.gleam diff --git a/src/flybycord/message/component/section.gleam b/src/grom/message/component/section.gleam similarity index 91% rename from src/flybycord/message/component/section.gleam rename to src/grom/message/component/section.gleam index add9c24..4055975 100644 --- a/src/flybycord/message/component/section.gleam +++ b/src/grom/message/component/section.gleam @@ -1,8 +1,8 @@ -import flybycord/message/component/button.{type Button} -import flybycord/message/component/text_display.{type TextDisplay} -import flybycord/message/component/unfurled_media_item.{type UnfurledMediaItem} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/message/component/button.{type Button} +import grom/message/component/text_display.{type TextDisplay} +import grom/message/component/unfurled_media_item.{type UnfurledMediaItem} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/separator.gleam b/src/grom/message/component/separator.gleam similarity index 100% rename from src/flybycord/message/component/separator.gleam rename to src/grom/message/component/separator.gleam diff --git a/src/flybycord/message/component/string_select.gleam b/src/grom/message/component/string_select.gleam similarity index 98% rename from src/flybycord/message/component/string_select.gleam rename to src/grom/message/component/string_select.gleam index 09a30e2..133c4f1 100644 --- a/src/flybycord/message/component/string_select.gleam +++ b/src/grom/message/component/string_select.gleam @@ -1,6 +1,6 @@ -import flybycord/emoji.{type Emoji} import gleam/dynamic/decode import gleam/option.{type Option as GOption, None} +import grom/emoji.{type Emoji} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/component/text_display.gleam b/src/grom/message/component/text_display.gleam similarity index 100% rename from src/flybycord/message/component/text_display.gleam rename to src/grom/message/component/text_display.gleam diff --git a/src/flybycord/message/component/text_input.gleam b/src/grom/message/component/text_input.gleam similarity index 100% rename from src/flybycord/message/component/text_input.gleam rename to src/grom/message/component/text_input.gleam diff --git a/src/flybycord/message/component/thumbnail.gleam b/src/grom/message/component/thumbnail.gleam similarity index 50% rename from src/flybycord/message/component/thumbnail.gleam rename to src/grom/message/component/thumbnail.gleam index 139597f..8b13789 100644 --- a/src/flybycord/message/component/thumbnail.gleam +++ b/src/grom/message/component/thumbnail.gleam @@ -1,2 +1 @@ - diff --git a/src/flybycord/message/component/unfurled_media_item.gleam b/src/grom/message/component/unfurled_media_item.gleam similarity index 100% rename from src/flybycord/message/component/unfurled_media_item.gleam rename to src/grom/message/component/unfurled_media_item.gleam diff --git a/src/flybycord/message/component/user_select.gleam b/src/grom/message/component/user_select.gleam similarity index 100% rename from src/flybycord/message/component/user_select.gleam rename to src/grom/message/component/user_select.gleam diff --git a/src/flybycord/message/embed.gleam b/src/grom/message/embed.gleam similarity index 99% rename from src/flybycord/message/embed.gleam rename to src/grom/message/embed.gleam index e75b864..f4cf932 100644 --- a/src/flybycord/message/embed.gleam +++ b/src/grom/message/embed.gleam @@ -1,7 +1,7 @@ -import flybycord/internal/time_rfc3339 import gleam/dynamic/decode import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/internal/time_rfc3339 // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/interaction_metadata.gleam b/src/grom/message/interaction_metadata.gleam similarity index 97% rename from src/flybycord/message/interaction_metadata.gleam rename to src/grom/message/interaction_metadata.gleam index 46cdbf0..a91a380 100644 --- a/src/flybycord/message/interaction_metadata.gleam +++ b/src/grom/message/interaction_metadata.gleam @@ -1,8 +1,8 @@ -import flybycord/application -import flybycord/user.{type User} import gleam/dict.{type Dict} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/application +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/message_reference.gleam b/src/grom/message/message_reference.gleam similarity index 100% rename from src/flybycord/message/message_reference.gleam rename to src/grom/message/message_reference.gleam diff --git a/src/flybycord/message/poll.gleam b/src/grom/message/poll.gleam similarity index 97% rename from src/flybycord/message/poll.gleam rename to src/grom/message/poll.gleam index 5ef4ec2..ae19dac 100644 --- a/src/flybycord/message/poll.gleam +++ b/src/grom/message/poll.gleam @@ -1,8 +1,8 @@ -import flybycord/emoji.{type Emoji} -import flybycord/internal/time_rfc3339 import gleam/dynamic/decode import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/emoji.{type Emoji} +import grom/internal/time_rfc3339 // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/reaction.gleam b/src/grom/message/reaction.gleam similarity index 97% rename from src/flybycord/message/reaction.gleam rename to src/grom/message/reaction.gleam index 486ef67..5525ab5 100644 --- a/src/flybycord/message/reaction.gleam +++ b/src/grom/message/reaction.gleam @@ -1,5 +1,5 @@ -import flybycord/emoji.{type Emoji} import gleam/dynamic/decode +import grom/emoji.{type Emoji} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/message/resolved.gleam b/src/grom/message/resolved.gleam similarity index 90% rename from src/flybycord/message/resolved.gleam rename to src/grom/message/resolved.gleam index a616e0a..d748261 100644 --- a/src/flybycord/message/resolved.gleam +++ b/src/grom/message/resolved.gleam @@ -1,13 +1,13 @@ -import flybycord/channel -import flybycord/channel/guild/thread -import flybycord/guild/member.{type Member} -import flybycord/guild/role.{type Role} -import flybycord/message/attachment.{type Attachment} -import flybycord/permission.{type Permission} -import flybycord/user.{type User} import gleam/dict.{type Dict} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/channel +import grom/channel/guild/thread +import grom/guild/member.{type Member} +import grom/guild/role.{type Role} +import grom/message/attachment.{type Attachment} +import grom/permission.{type Permission} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/modification.gleam b/src/grom/modification.gleam similarity index 100% rename from src/flybycord/modification.gleam rename to src/grom/modification.gleam diff --git a/src/flybycord/permission.gleam b/src/grom/permission.gleam similarity index 99% rename from src/flybycord/permission.gleam rename to src/grom/permission.gleam index 5985da2..92a1474 100644 --- a/src/flybycord/permission.gleam +++ b/src/grom/permission.gleam @@ -1,8 +1,8 @@ -import flybycord/internal/flags import gleam/dynamic/decode import gleam/int import gleam/json.{type Json} import gleam/list +import grom/internal/flags // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/sku.gleam b/src/grom/sku.gleam similarity index 98% rename from src/flybycord/sku.gleam rename to src/grom/sku.gleam index 3174d02..6121f85 100644 --- a/src/flybycord/sku.gleam +++ b/src/grom/sku.gleam @@ -2,9 +2,9 @@ //// //// For example, if you're offering a premium subscription for your bot, you must create an SKU. -import flybycord/internal/flags import gleam/dynamic/decode import gleam/int +import grom/internal/flags // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/soundboard.gleam b/src/grom/soundboard.gleam similarity index 97% rename from src/flybycord/soundboard.gleam rename to src/grom/soundboard.gleam index 0201c41..0fe7b12 100644 --- a/src/flybycord/soundboard.gleam +++ b/src/grom/soundboard.gleam @@ -1,6 +1,6 @@ -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/sticker.gleam b/src/grom/sticker.gleam similarity index 98% rename from src/flybycord/sticker.gleam rename to src/grom/sticker.gleam index cfb6ac3..5abea91 100644 --- a/src/flybycord/sticker.gleam +++ b/src/grom/sticker.gleam @@ -1,6 +1,6 @@ -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/user.{type User} // TYPES ---------------------------------------------------------------------- diff --git a/src/flybycord/user.gleam b/src/grom/user.gleam similarity index 99% rename from src/flybycord/user.gleam rename to src/grom/user.gleam index 5220fb3..2fd7464 100644 --- a/src/flybycord/user.gleam +++ b/src/grom/user.gleam @@ -1,7 +1,7 @@ -import flybycord/internal/flags import gleam/dynamic/decode import gleam/int import gleam/option.{type Option, None} +import grom/internal/flags // TYPES ---------------------------------------------------------------------- diff --git a/src/flybycord/user/current_user.gleam b/src/grom/user/current_user.gleam similarity index 94% rename from src/flybycord/user/current_user.gleam rename to src/grom/user/current_user.gleam index 1466b3f..bedc3b4 100644 --- a/src/flybycord/user/current_user.gleam +++ b/src/grom/user/current_user.gleam @@ -1,9 +1,3 @@ -import flybycord/client.{type Client} -import flybycord/error -import flybycord/guild/member.{type Member} -import flybycord/image -import flybycord/internal/rest -import flybycord/user.{type User} import gleam/bool import gleam/http import gleam/http/request @@ -13,6 +7,12 @@ import gleam/list import gleam/option.{type Option, None, Some} import gleam/result import gleam/string +import grom/client.{type Client} +import grom/error +import grom/guild/member.{type Member} +import grom/image +import grom/internal/rest +import grom/user.{type User} // TYPES ---------------------------------------------------------------------- diff --git a/src/flybycord/webhook.gleam b/src/grom/webhook.gleam similarity index 95% rename from src/flybycord/webhook.gleam rename to src/grom/webhook.gleam index c9ae15d..77659e6 100644 --- a/src/flybycord/webhook.gleam +++ b/src/grom/webhook.gleam @@ -1,8 +1,8 @@ -import flybycord/channel.{type Channel} -import flybycord/guild.{type Guild} -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/option.{type Option, None} +import grom/channel.{type Channel} +import grom/guild.{type Guild} +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/src/flybycord/webhook_event.gleam b/src/grom/webhook_event.gleam similarity index 95% rename from src/flybycord/webhook_event.gleam rename to src/grom/webhook_event.gleam index 75bdae8..0dfaf59 100644 --- a/src/flybycord/webhook_event.gleam +++ b/src/grom/webhook_event.gleam @@ -1,11 +1,11 @@ -import flybycord/entitlement.{type Entitlement} -import flybycord/guild.{type Guild} -import flybycord/internal/time_rfc3339 -import flybycord/user.{type User} import gleam/dynamic/decode import gleam/json.{type Json} import gleam/option.{type Option, None} import gleam/time/timestamp.{type Timestamp} +import grom/entitlement.{type Entitlement} +import grom/guild.{type Guild} +import grom/internal/time_rfc3339 +import grom/user.{type User} // TYPES ----------------------------------------------------------------------- diff --git a/test/flybycord_test.gleam b/test/flybycord_test.gleam index 012c0ee..e10a670 100644 --- a/test/flybycord_test.gleam +++ b/test/flybycord_test.gleam @@ -1,12 +1,12 @@ -import flybycord/client -import flybycord/file.{File} -import flybycord/internal/rest -import flybycord/user/current_user import gleam/http import gleam/http/request import gleam/json import gleeunit import gleeunit/should +import grom/client +import grom/file.{File} +import grom/internal/rest +import grom/user/current_user pub fn main() { gleeunit.main() -- knotmirror 0.0.1