Commit Graph

139 Commits

Author SHA1 Message Date
5dd6a5323c
[core] Add locking to prevent concurrent rule executions
refs #59

ensures counter actions are not triggered concurrently by two persons

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-05-01 22:39:18 +02:00
ebf734be40
[templating] Add userExists function
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-18 00:26:14 +02:00
2c17ef58fa
[counter] Revise template parsing logic
in order to support both `counter_set` and `counter_step` set to
conditional templates and therefore i.e. combine deathcounter increase
/ decrease / set and query into one rule

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-08 19:47:15 +02:00
8154a50351
[core] Enforce field validation on config
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-08 17:40:24 +02:00
acf96c31ad
[core] Fix: Do not cache nil-TwitchClient
as client is assigned after plugins are initialized

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
293a7d9e30
[counter] Allow counterTopList to specify how to sort
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
94b040ed81
[counter] Record first seen and last updated on counters
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
b131a7be5f
[clip] Fix: Optional fields were required
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
35b47bca65
[linkcheck] Remove flaky test
caused by domaingrabber grabbing some random domain

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
e7e9877c05
[core] Remove deprecated fallback token / token migration
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
dc8f645f24
[spotify] Switch to PKCE flow, remove need for clientSecret
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
a9984b2df2
[spotify] Improve error handling / documentation
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
30482591a7
[core] Switch to go_helpers FieldCollection
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-07 13:37:13 +02:00
e8eb6cd0f4
[templating] add humanDateDiff and formatHumanDateDiff functions
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-04-02 15:19:49 +02:00
bc9c3eeb15
[spotify] Add spotifyLink template function
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-28 18:29:39 +01:00
f684abc29f
Lint: Update linter config, remove no longer required exeptions
which might be a false-negative and re-added later

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-28 00:15:53 +01:00
46db72b2cc
[overlays] Reduce socket abnormal closure to warning
resolves TWITCH-BOT-A

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-23 12:16:10 +01:00
fbfcb959c0
[overlays] Fix: JOIN / PART events spamming the database
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-15 20:48:17 +01:00
7f4470e692
[spotify] Add spotifyCurrentPlaying template function
together with Spotify integration for the bot

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-15 19:51:00 +01:00
673ed1e29a
Lint: Resolve linter issues
occurred with new Go / golangci-lint version

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-02-18 13:42:00 +01:00
99c366ada0
[kofi] Add kofi_donation event and Ko-fi webhook handler
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-02-15 18:30:42 +01:00
0ebc68254d
[linkcheck] Fix tests broken by domain grabbers
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-01-24 20:36:14 +01:00
29b0e41218
[overlays] Add WebDAV support for remote Overlay editing
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-01-01 19:52:42 +01:00
c78356f68f
Lint: Update linter config, improve code quality
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-01-01 17:52:39 +01:00
7189232093
[overlays] Add support for replaying events
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-31 14:05:39 +01:00
fa9f5591f6
[overlays] Fix: Do not spam logs with errors when overlay reloaded
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-24 14:40:41 +01:00
eb02858280
[linkcheck] Refactor: Improve wait-code
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-23 23:41:58 +01:00
24aa1b5d67
[quote] Fix: Add primary key to quote table
in order to allow migrating them using copy-database

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-17 14:39:33 +01:00
3ac5284583
[core] Fix: Properly handle channels without credentials
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-14 16:49:33 +01:00
eec4966b82
[eventsub] Fix: Clean IPs from eventsub-socket read errors
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-14 00:19:29 +01:00
5d0a5322a5
[editor] Display clear warning when ext perms are missing
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-14 00:02:14 +01:00
6455b409ce
[raffle] Add functionality to reset a raffle
in order to re-use the same raffle by wiping the entrants, resetting
time-fields to their default value and resetting status to draft

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-09 16:22:00 +01:00
35bc4fcdc6
[linkcheck] Use resolver pool to speed up detection
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-06 21:57:02 +01:00
5ec6baaf2c
[linkdetector] Add more ways of link detection in heuristic mode
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-06 21:57:02 +01:00
ee5e7359a2
[core] Add auth-cache for token auth
to speed up frontend and reduce CPU/MEM consumption on consecutive API
requests

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-06 21:57:02 +01:00
a336772303
[raffle] Add Actor to enter user into raffle using channel-points
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-06 21:57:02 +01:00
0d10b5165f
[core] Add retries for database access methods
to compensate for database temporarily not being available. This is not
suitable for longer database outages as 5 retries with a 1.5 multiplier
will not give much time to recover but should cover for cluster changes
and short network hickups.

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-04 16:19:36 +01:00
e7a493cafe
[CLI] Add database migration tooling
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-11-26 16:55:05 +01:00
9ebdaa8a71
[templating] Add scheduleSegments function
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-11-05 13:44:16 +01:00
a2ffc25a26
[raffle] Fix datatype in API documentation
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-10-30 11:36:03 +01:00
1d35bd3a4f
[templating] Add function chatterHasBadge
and fix `botHasBadge` which previously did what `chatterHasBadge` does
now which was fully incorrect behavior

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-10-26 19:07:17 +02:00
ba21a372b5
[counter] Add counterRank and counterTopList template functions
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-10-23 20:28:58 +02:00
fbc76761b4
[core] Fix: Replace deprecated follow API
- add `moderator:read:followers` scope to bot-defaults
- document requirement of bot to be mod to read followers
- adjust `GetFollowDate` method to use new channel followers endpoint

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-09-29 14:58:59 +02:00
bcc5b4eba7
[core] Update go-irc to v4.0.0
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-09-11 19:51:38 +02:00
2bec4f82ed
Mark twitch-token flag / envvar deprecated
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-09-09 11:49:26 +02:00
220a501ab8
[templating] Refactor: Move twitch functions into library package
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-09-03 13:01:57 +02:00
db3c4f4efa
[raffle] Insert newly created raffles with NULL reminder time
as MySQL 8 in opposite to MariaDB 10 does not support the time `0000-00-00 00:00:00`

fixes #51

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-26 19:11:49 +02:00
29df9e59b5
[core] Remove v2 migration
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-26 00:20:10 +02:00
b5ad112de3
[ci] Remove flaky test
The page found in the string was flaky and often unresponsive

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-25 23:44:08 +02:00
1585df5e90
[docs] Add auto-generated template documentation (#50) 2023-08-25 23:37:37 +02:00