100 Commits
Author SHA1 Message Date
leander d93a851afb Merge pull request #64 from UiO-Gaming/release-please--branches--main
chore(main): release 0.1.3
2026-11-04 03:54:32 +01:00
leanderandClaude Opus 5.5 0e6718d751 fix(ci): keep the checkout token out of the published image
actions/checkout@v5 stored the job's GitHub token in .git/config, and
the image copies .git, so published images contained it. Use checkout
v7 with persist-credentials: false.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 03:53:06 +01:00
leander 1ad4e756cd Merge pull request #63 from UiO-Gaming/release-please--branches--main
chore(main): release 0.1.2
2026-11-03 02:54:01 +01:00
leanderandClaude Opus 5.5 dcbadd51f3 ci: bump the version in uv.lock in release PRs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:31:40 +01:00
leanderandClaude Opus 5.5 4e3876c850 chore: update uv.lock for the 0.1.1 release
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:31:39 +01:00
leanderandClaude Opus 5.5 eacf903abf fix: show galtinn memberships without a type or end date
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:26:47 +01:00
leander 967c67026a Merge pull request #62 from UiO-Gaming/release-please--branches--main
chore(main): release 0.1.1
2026-11-03 02:23:36 +01:00
leanderandClaude Opus 5.5 f0a55f9c4e fix: drop horizontal rules from viteboka articles
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:11:41 +01:00
leanderandClaude Opus 5.5 c48b90dbf7 fix: show the whole viteboka article when its introduction is empty
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:11:40 +01:00
leanderandClaude Opus 5.5 c30d359e7e fix: close the database pool and http session on SIGTERM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:11:40 +01:00
leander 0f7e16e640 Merge pull request #61 from UiO-Gaming/ci/publish-image
ci: publish a container image to ghcr.io on each release
2026-11-03 00:29:40 +01:00
leanderandClaude Opus 5.5 e54eaefa47 ci: publish a container image to ghcr.io on each release
Builds the image and pushes it to ghcr.io/uio-gaming/mustafa, tagged with the release version and latest. It runs as a job in the release-please workflow, because releases created with GITHUB_TOKEN don't trigger other workflows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 00:18:42 +01:00
leander 96f40a9a4f Merge pull request #60 from UiO-Gaming/ci/restricted-deploy
ci: deploy through the restricted uiogaming-deploy script
2026-11-02 22:53:00 +01:00
leanderandClaude Opus 5.5 14100e8728 ci: deploy through the restricted uiogaming-deploy script
The old workflow ran docker compose in the repo folder, which failed because the containers belong to the server's top-level compose project. The deploy key can now only run /usr/local/bin/uiogaming-deploy (see UiO-Gaming/drift), so the workflow just passes the service name. Also adds manual runs and prevents overlapping deploys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 22:47:51 +01:00
leander fab3486a83 remove redundant host network mode 2026-11-02 01:10:23 +01:00
leanderandClaude Opus 5.5 470ca028fe ci: add release-please for automated releases
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:03:40 +01:00
leanderandClaude Opus 5.5 4ba0bbfbdc update pillow to 13 to fix the dependabot alerts
moviepy 2.2.1 still caps pillow below 12, so override that constraint with uv until a moviepy release drops it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:17:01 +01:00
leander fce9b93399 Merge pull request #59 from UiO-Gaming/slop/sloppy-fixes
The big mega humongous slop cleanup (thanks dario)
2026-11-01 21:00:08 +01:00
leanderandClaude Opus 5.5 38418bffde reveal the crab rave line from the middle and outwards
Instead of fading in like the texts, the line grows from the middle to
both ends with soft edges over the same second, slowing down as it
reaches its full width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:54:30 +01:00
leanderandClaude Opus 5.5 d0bf523448 draw a solid crab rave line and space the texts evenly from it
The line was a row of underscores, which left gaps between them. Draw it
as a solid bar instead, and place the top text's baseline and the top of
the bottom text's capital letters equally far from it, whatever size the
texts end up being.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:53:39 +01:00
leanderandClaude Opus 5.5 b67381976c show the right anilist staff and keep it within the field limit
Staff sorted by ROLE come in alphabetical order of role, so /anilist manga
listed 25 assistants and editors for One Piece, which went over the
1024 characters an embed field can hold, and /anilist anime found no
director for long series. Sort by relevance instead, keep only creators
for manga and directors for anime, one per line, and stop before the
field limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:46:11 +01:00
leanderandClaude Opus 5.5 562c30f45e only count streaks in the bot's own server
Messages in other servers the bot is in and in DMs no longer count
towards streaks, and catching up on missed messages at startup only
reads that server. Streaks started elsewhere made /streak se look up a
channel in another server, which crashed with InvalidData.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:34:43 +01:00
leanderandClaude Opus 5.5 154d4de881 render user text with noto sans cjk and fit it properly
Draw text that users write with Noto Sans CJK Bold so Chinese, Japanese,
Korean, Cyrillic and Greek no longer show up as boxes. It replaces
DejaVu Sans and Impact, and Comic Sans everywhere but the CS2 bingo.
The Dockerfile makes the font available to Graphviz for /mbti.

put_text_in_box now finds the largest font size where the text, wrapped
to the box's pixel width, fits, and centers the drawn text. Long texts
used to overflow and single letters were pushed out of their box.
Words are only split when keeping them whole would halve the size.

Long crab rave texts shrink to fit the video instead of going past its
edges, and the divider line is a bit longer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:28:00 +01:00
leanderandClaude Opus 5.5 14c3caedf5 handle singular vs plural names for more counts
Use the singular form when the count is 1 for fun reply cooldowns,
channel slow mode and user limits, age in days, planned manga chapters,
film length and social credits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:53:57 +01:00
leanderandClaude Opus 5.5 8ec2483918 use norwegian number formatting
Add misc_utils.format_number, which separates thousands with a
non-breaking space and uses a decimal comma, and use it for the numbers
shown in embeds and messages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:45:18 +01:00
leander 3744b8f57f use better checkmark for docker status in botinfo 2026-11-01 19:34:05 +01:00
leanderandClaude Opus 5.5 e24523d1b3 simplify member status counting in /botinfo and /guild info
Count statuses with a Counter over discord.Status instead of one set or
counter per status, and share the emoji formatting between both commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:32:53 +01:00
leander 53c3655276 handle teams as bot owners 2026-11-01 19:26:57 +01:00
leander 8cef9d87cd handle singular vs plural names for "dager" 2026-11-01 19:15:32 +01:00
leander 1a35941227 make my own dick big again
dev is now set to the team id which meant my penis shrunk 0_o
2026-11-01 19:13:34 +01:00
leander 8797799094 output media title as nightcore filename 2026-11-01 19:11:24 +01:00
leander 22fd3d069f fix invalid mount config for logs 2026-11-01 18:19:05 +01:00
leander 81a2c8f57c Closes #57
hopefully
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:26:24 +01:00
leanderandClaude Opus 5.5 e92582a23d clean up leftover guild commands in prod and warn about duplicates in dev
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:18:31 +01:00
leanderandClaude Opus 5.5 5e6ed4d6cc add /versjon showing the branch and commit the bot runs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:12:16 +01:00
leander e6389cdacf speed up /bursdag kommende 2026-10-29 23:09:06 +01:00
leanderandClaude Opus 5.5 646a1b1342 document setup requirements and code conventions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:05:09 +01:00
leanderandClaude Opus 5.5 67a418ebe2 make import style consistent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:58:27 +01:00
leanderandClaude Opus 5.5 70c0236a16 make docstrings consistent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:55:32 +01:00
leanderandClaude Opus 5.5 1d29222fa4 rewrite the 10-man team draft as one message
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:45:39 +01:00
leanderandClaude Opus 5.5 03b79ed98a share lobby creation between 10-man and bingo and fix lobby timeouts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:43:01 +01:00
leander f957299e70 extend 10-man team leader button interaction timeout to 5 min 2026-10-29 22:36:59 +01:00
leander 86b63169ac avoid duplicate bingo entries for games smaller than 5 people 2026-10-29 22:34:57 +01:00
leanderandClaude Opus 5.5 fa863b12c2 rework /nightcore
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:30:58 +01:00
leanderandClaude Opus 5.5 73e5cd7202 render viteboka articles from html instead of stripping wikitext
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:24:33 +01:00
leander 00ae08978d rewrite ordsky last logic 2026-10-29 22:17:42 +01:00
leander 0bb4d2bbc5 correct member role config key name 2026-10-29 22:16:42 +01:00
leander 2ad305afbf add rate limiter helper class 2026-10-29 22:16:00 +01:00
leander cecc2f7666 fix cache race condition 2026-10-29 22:06:45 +01:00
leander f445a62681 clean up /mock logic 2026-10-29 21:54:54 +01:00
leander f9d4247dcb add kaomoji to /owo 2026-10-29 21:48:55 +01:00
leander 8f273caf94 funreplies rewrite. add toggling and chance setting
let the AI overlords take the wheel
2026-10-29 21:45:24 +01:00
leander 670b4e860f add social credit rules for various voice activity 2026-10-29 21:30:32 +01:00
leander a929a3efca Update contribution guidelines to include command descriptiors 2026-10-29 21:24:00 +01:00
leander 05212c9eb6 Closes #26 2026-10-29 21:23:26 +01:00
leander 02da979ee2 use bot timezone for midnight loops 2026-10-29 21:04:23 +01:00
leander a615df4ba1 use multiline_textbox to draw text 2026-10-29 20:49:41 +01:00
leander be33df21ac prefer future dates for /mennesketid 2026-10-29 20:43:19 +01:00
leander f3dda90f58 fix chapters read being divided as minutes watched 2026-10-29 20:41:10 +01:00
leander 96aa7147de run image rendering in a separate thread 2026-10-24 18:17:25 +02:00
leander d6bdc4926c use timezone-aware datetimes everywhere 2026-10-24 18:14:43 +02:00
leander a2cc923f13 use configured timezone for db sessions 2026-10-24 18:10:01 +02:00
leander 6159d0f8a3 check rcon response 2026-10-24 18:07:56 +02:00
leander 31e80f409b rewrite put_text_in_box sizing logic 2026-10-24 18:06:25 +02:00
leander 649dc2fdb2 increase credit score int size 2026-10-24 18:04:30 +02:00
leander 6801c6a21a use timestamptz for streaks 2026-10-24 18:03:41 +02:00
leander bab4ecc626 remove outdated comments 2026-10-24 05:32:52 +02:00
leander 50036ae7ea Closes #19 2026-10-24 05:25:05 +02:00
leander 930da505cd Closes #37 2026-10-24 05:21:31 +02:00
leander 01bccceb6d reaplce shared psycopg2 connection with psycopg3 async pool 2026-10-24 05:16:24 +02:00
leander b5ed18ee42 use non blocking http requests 2026-10-24 05:08:24 +02:00
leander e2283200d9 use discord.py built in num range limiter for command params 2026-10-24 05:04:35 +02:00
leander 0c0e4ff5ff DRY 2026-10-24 05:02:23 +02:00
leander 4607aa7725 replace hardcoded channel and role ids with config values 2026-10-24 04:59:21 +02:00
leander 196cb8a65b download NLTK stopword at image build time instead of container boot 2026-10-24 04:56:40 +02:00
leander 3c85452aed use word frequencies to generate wordclouds instead of repeated word strings 2026-10-24 04:55:22 +02:00
leander fd88a234d3 use bytesIO instead of temp files 2026-10-24 04:52:29 +02:00
leander aea645d874 log background loop errors 2026-10-24 04:50:56 +02:00
leander 5e7a78e7fa avoid multiple SQL queries by using ON CONFLICT 2026-10-24 04:48:49 +02:00
leander 5214d8ce31 correctly unload star_check 2026-10-24 04:47:15 +02:00
leander 37093a91b4 improve user id check on lobby kick 2026-10-24 04:46:40 +02:00
leander adfd44b3ce fix various typos 2026-10-24 04:46:02 +02:00
leander 5040fb29c7 disable yt-dlp fetching of internal urls 2026-10-24 04:45:28 +02:00
leander 6535a2a08b handle empty helligdag api response 2026-10-24 04:44:36 +02:00
leander cf9945f06e replace deprecated logger.warn with logger.warning 2026-10-24 04:43:40 +02:00
leander d68745f624 log ignored non slash command errors 2026-10-24 04:43:13 +02:00
leander 60b518f5e6 fix botinfo docker env check 2026-10-24 04:42:40 +02:00
leander 331f4bba7e check cancellation status on event update
will this fix the issue I've had all this time???
2026-10-24 04:40:43 +02:00
leander 89b0a793e4 only publish set guild's events to website 2026-10-24 04:39:14 +02:00
leander 0e695e81df handle februrary 29 birthday cases 2026-10-24 04:38:29 +02:00
leander e0ad42efe0 fix days until next birthday being one day off 2026-10-24 04:37:28 +02:00
leander 52286c0610 use consent timestamp as word cloud tracking since date 2026-10-24 04:37:05 +02:00
leander 242aa21cdf defer /mbti se 2026-10-24 04:34:17 +02:00
leander 839db9e338 avoid naming conflicts for graph keys 2026-10-24 04:33:41 +02:00
leander d24cf49d2a handle users that have left the guild 2026-10-24 04:32:40 +02:00
leander e3f2b11007 wait for git pull to finish and display results 2026-10-24 04:31:30 +02:00
leander 62bab6c144 keep reloading cogs if one fails 2026-10-24 04:30:37 +02:00
leander b66384e27e send all arguments after channel id when using custommsg command 2026-10-24 04:29:17 +02:00
leander 44a39bba5a fix guild id argument for leave command 2026-10-24 04:28:36 +02:00
leander 8a9a0a0c82 use correct help message method 2026-10-24 04:27:57 +02:00