58270b1fbePoE2Trade update - Vastly improved on rate-limiting tolerance - Dynamically fetches and assigns any server-imposed rate-limits. - Implemented a rolling queue system for filter checks. - This effectively means each filter for all users will run one after the other. Increasing time between checks, but prevents rate-limiting. - Improved notification message embeds to contain more information in a cleaner format - Added "implicit mods" to the stats list for better stats report - Security implementations - PoE2 session token is now encrypted in storage - Somewhat sensitive data is now obscufated in settings reply - Improved on listing pricing display - Now says "1 x Exalted Orb" instead of simply "1 exalted" - Added approximated next check times for filters, viewable in notification messages and filters list - General minor other improvements to readibility, commands, structure, cache, and functionality
experimental
Kami2025-03-30 14:46:23 +0200
f717ad0f14PoE 2 Trading Site Implementation This update includes implementation of Path of Exile 2 trading watchlisting, allowing users to get notified on Discord about new listings within the filter criteria. - Multiple new commands - `!poe2trade` - DMs a message containing basic usage and instructions. - `!poe2trade add <filter_id> [filter_name]` - Adds a trade filter to their watchlist. - New matches will be sent to the user in a DM. - `!poe2trade remove <filter_id | all>` - Removes the specified filter from their watchlist. - If filter_id is set to `all`, it will clear all filters from their watchlist. - `!poe2trade list` - Lists the user's watchlisted filters, along with the filter nickname (if assigned). - `!poe2trade pause` - Stops watchlisting all their filters. No processing nor notifications are performed. - `!poe2trade resume` - Resumes the watchlisting of the user. - `!poe2trade set <key> <value>` - Allows admin/owner to modify settings without restarting the bot. - `!poe2trade settings` - Allows admin/owner to view current settings. - Will be updated in the future to allow non-admin users to view non-sensitive settings. - Automatic notification of new listings in a neatly-formatted embed message - Currently, notification embeds contain: item name, item icon, item level, item stats, listed price, seller name (and account hyperlink), filter information, and instructions on removing the filter from watchlist. - Notification messages are condensed to avoid spam as much as possible; multiple new listings (up to 10) will be combined into a single message containing several embeds. - Respects rate limits to avoid getting the bot locked out. - These ratelimits are set by GGG and CloudFlare, and are thus very strict. This shouldn't affect usability much however. - Several minor QoL featuresKami2025-03-26 20:42:16 +0100
d5581710a7CustomVC Rework - autoname implementation - Automatic channel naming can be toggled with `!customvc autoname` - Autoname status can be verified with `!customvc settings` - Autonaming will automatically apply game name as channel name if owner plays a game - If owner is not playing a game, channel name will default to `{userdisplayname}'s Channel´ - Currently, checks are performed every 30s, and changes applied after a 5m cooldown - Minor fix for the latest logging changes - Caller function was not correctly listed in log messages. This has been corrected.Kami2025-03-13 16:57:23 +0100
5023ea9919Reworked internal logging - All logging functionality has been moved into the Logger class - Initiated globally as globals.logger() - Logging format changed from `globals.log("message_str", "LEVEL")` => `logger.level("message_str")` - Minor changes to Twitch authenticationKami2025-03-13 14:17:43 +0100
d541f65804Experimental early implementation of expanded permissions system and runtime checksKami2025-03-08 18:11:42 +0100
d1faf7f214Fixed Twitch bug - Fixed an issue where Twitch users were not registered correctly due to recent DB changes - Log-level of unidentified users changed from warning to info - Minor changes to `!customvc` - Renamed `bitrate` -> `audio_bitrate` - Added `video_bitrate` - Changes some help text - Fixed certain subcommands which were broken after recent changes - Added `autoname` -> Automatically names the voice chat according to game being played by the owner - *Needs addiitonal work to implement all features*
kami_dev
Kami2025-03-07 02:16:47 +0100
cce0f21ab0Improved platform logging and Custom VC - Platform logs associated to a message are now associated with platform-specific IDs - Fixes for `!customvc`, specifically in relation to commands execution. - Optimized logic - Fixed limits for certain values like VC users limit - Better code integrity: now self-references as a Cog - Lots of minor other tweaks, adjustments, and improvementsKami2025-03-06 17:53:54 +0100
86ac83f34cAdded basic custom VC functionality - Supports a "VC Lobby" voice channel users can join to auto-create their own voice channel - That user is then the channel "owner". - Allows defining in-chat settings for each custom voice channel. - Empty channels auto-delete after 10s - Auto-deletes empty channels on startup - Auto-asigns the first user owner of the custom voice channel on startup if no data is retained - Supports several commands: - `!customvc` -> Displays some help text - `!customvc name <new_name>` -> Renames the voice channel - `!customvc claim` -> Claim ownership of the voice channel if the owner has left - `!customvc lock` -> Locks the voice channel, preventing non-moderators from joining - `!customvc allow <some_user>` -> Allow a user into the locked voice channel - `!customvc deny <some_user>` -> Denies a non-mod user access to the voice channel - `!customvc unlock` -> Unlocks the voice channel. Denied users are still denied - `!customvc bitrate <kbps>` -> Set the bitrate for the voice channel (Should not be used unless needed) - `!customvc op <some_user>` -> Assing someone as co-owner of the voice channel - `!customvc settings` -> Display the current voice channel settings, including the owner - *It should be noted that moderators has the same access as channel owners for moderation purposes*Kami2025-03-02 01:52:42 +0100
50617ef9abFinalized database restructure, fixed Twitch auth issue - Ironed out some issues with registering certain events into the database - Fixed the old Twitch re-auth token issue. Now automatically renews it and initiates the bot with it.Kami2025-03-01 23:14:10 +0100
d0313a6a92Massive UUI system and database overhaul - Dynamic accounts association - Accounts can now be associated dynamically, allowing multiple accounts on the same platform to be associated to the same UUID. - UUI system now supports any platform, eg. YouTube, TikTok, Kick, Twitter, etc. - More robust user lookups with enhanced fault tolerance and allowance for NULL data. - Optimized database structure with two tables for user association; one for UUID and basic info, another for platform-specific details. - Enhanced logging functionality: logs now prefix the calling function. - Enhanced user lookup debug messages, allowing easy query inspection and data validation. - Other minor fixesKami2025-03-01 01:54:51 +0100
766c3ab690Commands restructuring - Reorganized commands into separate files for better fault tolerance and feature expandability - Added basic dynamic bot status - Needs additional work. Currently very basic, planned features include fully dynamic mode with automatic alerts and such. - Minor other tweaksKami2025-02-23 17:00:45 +0100
78e24a4641Added Twitch channel game get function - This function returns the game being played on the specified channel - Implemented into quotes system: quotes automatically contain game name if quoted from a Twitch channel - Defaults to None if channel is not live - Discord quotes keep old logic: quotes never contain game informationKami2025-02-16 18:07:07 +0100
17fbb20cdcAdded Twitch multi-channel support - OokamiPup v2 can now enter sevaral community channels - Individual channel settings. By default, all commands are disabled - Channel-specific settings allow enabling/disabling individual commands per channel - Added a few more fun facts - Minor tweaks and bugfixesKami2025-02-16 15:30:17 +0100
6da1744990Added search feature to `!funfact` - Users can now search for fun facts using `!funfact search [keywords]` without brackets. Returns best match. - Also added some new facts - Minor tweaks to force-sync of Discord slash commandsKami2025-02-14 11:42:20 +0100
0f1077778fNew `!funfact`/`!fun-fact` command - This command returns a random fun fact from a list of over 500 verified fun, surprising, or good-to-know facts, with unit conversions between metric and imperial. - Also started somewhat on the new Community Engagement Score (CES) system. - Currently not implemented to any working degree. - Will grant/deduct user scores depending on community engagement and actions overall.Kami2025-02-14 01:46:24 +0100
01f002600cBug tracking, minor tweaks - Moved some constants to the globals.Constants class - config_data: returns the configuration dictionary - bot_start_time: returns the epoch bot start time - primary_discord_guild: returns a dict like `{"object": primary_guild_object, "id": primary_guild_int}` *These is initiated under globals.constants* - Improved on docstrings. Google format now standard - Reverted all commands to purely textual until further notice - `/help` is still additionally available as a slash commandKami2025-02-12 23:14:40 +0100
1b141c10fbBig quote system overhaul - Returned "quote" commands to textual commands type - Rewritten quote system backend to ensure stability - Added new quote subcommands: - `!quote search [keywords]` allow users to search for a quote using keywords, and returns the best match. If several equally good matches are found, returns one of them at random - `!quote info [quote_id]` allows users to see more info about a given quote. Grants more information on Discord - `!quote restore [quote_id]` allows users to restore a previously removed quote - `!quote last/latest/newest` allows users to get the newest quote - Added new quote features to Discord helpfile - Moved database init to globals.init_db_conn - Associated unlinked usernames now default to that of the other platform, appended with "({platform} unlinked)". This should ensure consistensy despite users not linking accounts in the UAL system - Added time_since(start, end, format) function to easily get formatted time differences, eg. for execution time reporting - Added "wfstl" and "wfetl" helper function under utility. Useful for debugging when a function starts and ends manually if needed. - Minor tweaks, corrections, bugfixesKami2025-02-12 00:15:39 +0100
71505b4de1*ignore, just wanted to try out a crappy new logo for Discord push events*Kami2025-02-11 10:56:11 +0100
66f3d03bc6Program logging rework - Logging functionality has been centralised to 'globals.log'Kami2025-02-11 10:47:48 +0100
699d8d493eAdded latency to "ping" command Ongoing bugfix for slash commands (#6)Kami2025-02-10 21:05:20 +0100
623aeab9fbFixed (?) a Twitch authentication crash - The automatic token refresh function crashed after a certain time since last token refresh. This should fix itKami2025-02-10 13:02:51 +0100
3ad6504d69mini-vacation update - Dual logging - logfile.log = permanent logfile - cur_logfile.log = current run logfile - Improved logging in general - Expanded howl replies - Discord activity logging - Twitch & Discord chat logging - Discord slash commands implementation (partial) - Config file improvements - Toggleable log levels - Settings separated (terminal and file output) - Nesting of associated values - Fixed "!ping" not fetching correct replies - Several other minor and major fixes, tweaks and improvementsKami2025-02-10 12:32:30 +0100
aed3d24e33Started implementing Universal User Identification (UUI) - added database table "users" - table allows for assigning individual users a UUID for universal processing - will support account linking in the futureKami2025-02-05 00:33:02 +0100
403ee0aed5Ensure FATAL logs always go through to consoleKami2025-02-04 13:21:33 +0100
1a97a0a78eReworked logging to optionally log to file as wellKami2025-02-04 13:16:03 +0100
63256b8984added logo to .gitignoreKami2025-02-03 23:02:44 +0100
faea372a56Cleaned up command execution debug logs for better readabilityKami2025-02-03 23:01:40 +0100
87d05d961aFixed !help not processing certain help sections correctly if example details were missing.Kami2025-02-03 22:37:20 +0100
5730840209Improved !help - Ensured it fetches the correct commands and help configuration depending on platform. - Removed certain duplicate checks that intiated functions twice or repeated value asignments. - Added the @monitor_cmd flag to commands, allowing easy command runtime diagnostics, including execution time.Kami2025-02-03 22:02:56 +0100
780ec2e540- Added basic SQL functionality with SQLite fallback. - Added basic "Quote" system/command using the new DB feature.Kami2025-02-03 12:17:55 +0100
9ef553ecb0- Added dictionary functionality - Looks up a file in the "dictionary" folder - Returns a random category string within that file - Added proper start time fetching through globals.get_bot_start_time()Kami2025-02-01 22:54:10 +0100
1635c4ef7aMerge pull request 'kami_dev' (#1) from kami_dev into main
main
kami2025-02-01 20:30:34 +0000