Skip to content
This repository was archived by the owner on Sep 29, 2025. It is now read-only.

Implement New Settings System#14

Merged
nixxoq merged 13 commits intodevfrom
feature/new-settings
Sep 20, 2025
Merged

Implement New Settings System#14
nixxoq merged 13 commits intodevfrom
feature/new-settings

Conversation

@Weever1337
Copy link
Collaborator

Important commits:

  1. Settings and a lot of refactors, fixes
  2. split message into chunks and do the translation a bit lazy as before

This PR includes:

  • A redesigned configuration module that simplifies working with the bot
  • An improved settings storage structure
  • Integration of the new settings system with existing functions, allowing for dynamic parameter configuration
  • Improved validation and error handling when users enter configuration-related data
  • Code refactoring to improve readability

nixxoq and others added 13 commits September 20, 2025 22:55
chore(core/db): remove old SettingsRepo trait
….. 😪

CHANGES:

---
Settings:
feat(bot/modules): implement ModuleManager, add a basic trait for implementing custom modules
feat(bot/modules): implement Currency and Cobalt modules
feat(commands/settings): add a handler for the `/settings` command

---
Core:

feat(paginator): update the paginator to build a clean paginator (without any items) and build one with existing items; apply changes from clippy
feat(dispatcher): organize imports
feat(util/enums, bot/commander): remove old currency settings enumerations
feat(chat): update the registration process for new groups and when the user has unblocked the bot
chore(core/config/json): organize imports

---
speech recognition:

chore(core/services/speech_recognition): move Speech Recognition / Paraphase functions to the core/services folder

chore(core/services/speech_recognition): `transcription_handler` now requires a reference to `teloxide.types.Message` instead of ownership (cloning) it

chore(commands/speech_recognition): use let...else construct to unwrap Message type instead of classic if-else

+ clippy, organizing imports

---
whisper:
chore(callbacks/whisper): some refactoring + add TODOs
chore(inlines/whisper): accept clippy changes

---
currency conversion:
chore(core/services/currencier): organize imports
feat(inlines/currency): check if the currency converter is enabled by the user
feat(services/currency): check if the currency converter is enabled for the group
chore(util/currency_values): move from core/services/currency to src/util folder
feat(messager): check if currency converter module is enabled for user/group before processing

---
Cobalt:

feat(keyboards/cobalt): move cobalt settings pagination to the src/modules folder; build a photo-like keyboard using Paginator impl (from paginator.rs)
chore(callbacks/cobalt_pagination): accept clippy changes + organize imports
feat(inlines/cobalter): check if the module is enabled by the user
chore(cobalt): move the main cobalt implementations to the core/services folder

and other changes, such as moving all (perhaps) keyboards to the new pagination system and a LOT OF CLIPPY changes (changes)

*Finished this commit with a song "Korn - Get Up!"*
@nixxoq nixxoq force-pushed the feature/new-settings branch from c7a54ad to 697d872 Compare September 20, 2025 19:56
@nixxoq nixxoq merged commit 697d872 into dev Sep 20, 2025
1 check passed
@Weever1337 Weever1337 deleted the feature/new-settings branch September 25, 2025 19:55
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants