58 Commits

Author SHA1 Message Date
6868b2e95e
Feat: Integrate Tenor GIF search and custom emoji/sticker support
This commit introduces two main enhancements to Gurt's capabilities:

1.  **Tenor GIF Integration:**
    *   The AI can now request Tenor GIFs via a `request_tenor_gif_query` field in its response schema.
    *   `api.py` handles these requests by searching Tenor (using the new `TENOR_API_KEY` from config) and appending the GIF URL to the AI's message content.
    *   System prompts have been updated to instruct the AI on how to request GIFs.

2.  **Custom Emoji & Sticker Learning and Usage:**
    *   Introduces an `EmojiManager` (in the new `gurt/emojis.py`) to store and manage mappings of custom emoji/sticker names to their URLs. This data is persisted to `EMOJI_STORAGE_FILE`.
    *   Gurt now automatically learns custom emojis and stickers (and their URLs) from user messages via the `on_message` listener in `listeners.py`.
    *   The AI can be prompted to use these learned emojis/stickers by referencing their `:name:`.
    *   `api.py` processes AI responses to identify known custom emojis/stickers. For stickers, their URL is appended to the content if mentioned.
    *   A `learnemoji` command has been added for manually teaching Gurt emojis/stickers, although automatic learning is the primary mechanism.
    *   System prompts are updated to guide the AI on using custom emojis/stickers.
2025-05-28 14:30:26 -06:00
cde506052f
feat: Add tools for user avatar data and role color
Introduces `get_user_avatar_data` to retrieve a user's avatar as base64 encoded image data, allowing the AI to "see" the profile picture directly. This includes special handling in `process_requested_tools` to attach the image as a `types.Part` in the prompt.

Also adds `get_user_highest_role_color` to fetch the color and details of a user's highest-positioned role.
2025-05-28 08:44:35 -06:00
e8eaff4b9a
Refactor: Clarify User ID usage and enhance author attribution
This commit improves user identification in two key areas:

1.  **AI Response Context:**
    In `gurt/api.py`, messages processed by the AI now include a more informative author string, combining the user's display name and username (e.g., "DisplayName (Username: actual_username)"). This provides richer context about message authors.

2.  **Tool Definitions:**
    Descriptions for tools in `gurt/config.py` and `gurt/prompt.py` (e.g., `search_user_messages`, `get_user_facts`) and their parameters have been updated to explicitly state that user identification relies on "User ID". This enhances clarity for the AI model and developers.
2025-05-27 22:48:15 -06:00
3ff850a9b3
feat: Add channel ignore functionality
Implement `/gurtignore` commands to manage channels Gurt should ignore.
- Add `gurtignore add` to add a channel to the ignore list.
- Add `gurtignore remove` to remove a channel from the ignore list.
- Add `gurtignore list` to display currently ignored channels.
- Update `GurtCog` and `config.py` to support ignored channel IDs and file management.
- Ensure ignore commands are owner-only.
- Modify `listeners.py` to prevent Gurt from processing messages in ignored channels.
2025-05-27 22:19:36 -06:00
542be94a0f
fix: Update model configuration to use the latest version of Gemini 2025-05-27 17:08:06 -06:00
4012ab9e9d
dkkk 2025-04-30 22:32:13 -06:00
ae54167cc4
aa 2025-04-30 13:50:21 -06:00
2673729888
aa 2025-04-30 12:37:05 -06:00
c40a364558
aa 2025-04-30 11:33:44 -06:00
4516bc910e
aa 2025-04-30 11:27:57 -06:00
d2a8e29efc
aaaa 2025-04-30 11:09:56 -06:00
10b0f8bafa
a 2025-04-30 11:09:35 -06:00
c737c0136c
aaaa 2025-04-30 11:07:46 -06:00
8ed6189642
aaaa 2025-04-30 10:57:06 -06:00
990f4dd8e3
aa 2025-04-30 10:45:24 -06:00
4b8a6a9c9a
aaa 2025-04-30 10:37:44 -06:00
262cebe7c6
rfrf 2025-04-30 10:36:46 -06:00
5cad3d181b
aa 2025-04-30 10:31:05 -06:00
5b656cc811
aa 2025-04-30 10:00:01 -06:00
1605de35ab
aa 2025-04-30 09:39:36 -06:00
Slipstream
58a80cd06e
Update config.py 2025-04-30 08:40:06 -06:00
Slipstream
4e524c7ead
Update config.py 2025-04-30 07:58:31 -06:00
46138a8823
aaa 2025-04-30 00:10:22 -06:00
c1485f5dd1
aa 2025-04-29 19:38:06 -06:00
34ff5d4997
aa 2025-04-29 19:35:46 -06:00
7cc0065039
aa 2025-04-29 19:17:26 -06:00
8050bc1c01
aa 2025-04-29 17:59:35 -06:00
3a556d2cfe
fue 2025-04-29 17:58:37 -06:00
95adc4d847
aafaf 2025-04-29 17:44:33 -06:00
d45a90b18e
aa 2025-04-29 17:42:29 -06:00
51a39320b7
aa 2025-04-29 17:24:00 -06:00
677ed86892
a 2025-04-29 17:15:48 -06:00
5ee063f6d2
aa 2025-04-29 16:16:11 -06:00
287b02d015
aa 2025-04-29 15:47:52 -06:00
17bb8ce328
aa 2025-04-29 15:45:19 -06:00
cbaf8b44b7
aa 2025-04-29 15:42:53 -06:00
3df1ff5a43
aa 2025-04-29 13:40:17 -06:00
061d7c9a3f
jjdjd 2025-04-29 12:29:18 -06:00
561f77f226
aa 2025-04-29 12:19:32 -06:00
6f77a3a2f2
aa 2025-04-29 10:07:18 -06:00
5bda2195dd
Merge branch 'master' of https://github.com/Slipstreamm/discordbot 2025-04-29 09:53:45 -06:00
e3eb4b6190
aa 2025-04-29 09:53:44 -06:00
Slipstream
f4e86467e1
Update config.py 2025-04-29 09:15:22 -06:00
6f0a9ae68a
aaa 2025-04-28 19:22:19 -06:00
78370cdc6e
ijop 2025-04-28 17:30:26 -06:00
eaa68b9e54
a 2025-04-28 16:47:54 -06:00
3e6e65a996
ghggse 2025-04-28 00:55:30 -06:00
f2d2d2da49
a 2025-04-28 00:51:12 -06:00
918f3c39b7
aa 2025-04-28 00:31:44 -06:00
f355194c81
aa 2025-04-27 20:56:27 -06:00