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
a39dc5e4c6
[templating] Add b64urldec
and b64urlenc
functions
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-25 13:14:23 +02:00
d92824a892
[messagehook] Add actor for Discord / Slack hook posts
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-18 18:10:02 +02:00
253379e507
[clip] Add clip
actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-14 16:09:55 +02:00
ad3162e263
[docs] Move documentation from Wiki to docs-site ( #49 )
2023-08-14 15:44:23 +02:00
9ed76d64ae
[overlays] Add sounds
overlay as default
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-08-11 15:47:39 +02:00
17ad71f233
[linkcheck] Fix test broken by external changes
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-07-27 13:48:44 +02:00
a74f210cd2
[linkdetector] Add new option to enable heuristic scan
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-07-25 00:18:34 +02:00
acd542edf1
[ban] Fix Chatcommand matching
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-07-19 22:33:42 +02:00
6a0c48488b
[raffle] Fix index initialization in MySQL v8
...
which didn't work as `string` is a `LONGTEXT` field which cannot fully
be indexed while MariaDB does not have those issues.
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-07-16 00:53:28 +02:00
21557a5538
[template] Add textAPI
function
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-07-15 23:54:22 +02:00
a58b72c268
[ #16 ] Implement Raffle module ( #47 )
2023-07-14 16:15:58 +02:00
49aba55cfe
[core] Clean IPs from socket errors
...
in order not to log IPs (GDPR) and also to prevent spread of errors in
Sentry logging as IP/Port combinations are unique per connection and
therefore will spam with many unique errors. By removing the unique
information from the error the errors should be groupable again.
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-06-24 14:59:36 +02:00
c311370d1c
[core] Add cleanup for expired timers
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-06-24 14:50:45 +02:00
996cc2877d
[counter] Add counterValueAdd
template function
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-06-12 23:48:22 +02:00
620a44282a
[respond] Expose API route to send messages directly to chat
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-05-29 01:56:06 +02:00
f9c6be800b
[template] Add subCount
, subPoints
template functions
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-04-22 22:23:35 +02:00
a65d2a8fca
[linkprotect] Fix: Apply stop_on_no_action
when no links present
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-04-13 23:48:12 +02:00
d92a451ebc
[linkprotect] Add Link-, Clip-Detector and Link-Protection actor ( #42 )
2023-04-08 00:41:00 +02:00
286c4d34a3
Lint: Fix linter errors
...
made visible after update of golangci-lint
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-03-24 22:32:00 +01:00
120f88ecbd
[core] Fix type warnings for Swagger documentation
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-03-24 21:02:30 +01:00
e8d39c19a4
[core] Fix: Allow start when no tokens are available
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-03-24 20:53:02 +01:00
3213f4ac37
[core] Add validation and reset of encrypted values
...
in order to detect change of encryption pass
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-03-24 20:41:02 +01:00
4c7697261b
[core] Ensure channel has correct format in access service
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-03-17 17:08:57 +01:00
990060ce41
[commercial] Add commercial
actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-03-17 17:08:56 +01:00
2b3e0b4078
[eventmod] Add eventmod
actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-02-20 19:41:03 +01:00
7420cf5007
[core] Fix: List all configured channel permissions
...
in order to fix bot permission check when bot has not joined own channel
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-02-08 19:10:26 +01:00
75991fdb87
[core] Rewrite bot token storage logic
...
- Do not store bot-token as core-kv entry
- Hold the bot username in core-kv
- Take bot client from extended channel permissions
- Store (updated) bot tokens into extended permissions
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-02-06 19:55:46 +01:00
7b20e4d3fe
[stopexec] Add stopexec
actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-02-05 16:08:55 +01:00
897b97a833
[shield] Add shield mode actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-02-04 14:22:35 +01:00
4477874330
[shoutout] Implement actor and slash-command for shoutout API
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-01-20 12:13:59 +01:00
9ec1117490
[log] Add log
-actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-01-01 14:42:23 +01:00
9106bcbe3f
[customevent] Add scheduled events to API handler
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-12-26 18:48:46 +01:00
f9716d6591
[vip/unvip] Implement actors and chat commands
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-12-05 19:20:30 +01:00
a06d8fa1cd
Add fine-grained permission control for extended channel permissions ( #35 )
2022-12-04 17:14:15 +01:00
0a937a65d0
prepare release v3.0.0
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-11-02 22:54:52 +01:00
2c71f57d02
[core] Add config validation command
...
- Fix missing field validation for required fields
- Add validation of template fields
- Report all issues in configuration
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-10-31 17:47:06 +01:00
ffd6c9bd09
[customevent] Add scheduled custom events
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-10-31 15:51:28 +01:00
064c7432ed
[core] Extend API and replace deprecated chat commands ( #34 )
2022-10-25 18:47:30 +02:00
1409a4bd34
[lint] Fix v2 import path not carrying version
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-10-23 15:06:45 +02:00
fb2ad178f0
[overlays] Add hide
option to debug overlay
...
to filter events like `join` and `part` and not to get spammed
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-10-23 13:19:01 +02:00
c0075db1f3
Breaking: Add support for multiple database backends ( #32 )
2022-10-23 00:08:02 +02:00
af38aaa5e4
[templating] Add sprig functions, replace some built-ins
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-10-02 17:12:52 +02:00
20356abe23
[core] Allow to pass ID to channel modification
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-10-01 15:06:32 +02:00
499313fbe6
[templating] Add jsonAPI
template function
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-09-26 23:32:48 +02:00
5922c29e93
[core] Fix: Read refresh token from database
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-09-10 20:36:55 +02:00
a7533cbd8b
[core] Move storage to SQLite database ( #30 )
...
fixes #29
2022-09-10 13:39:07 +02:00
e259ca209c
Lint: Fix broken / missing nosec / nolint comments
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-09-06 00:35:20 +02:00
07a83e2fdb
Add randomString
template function
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-08-16 17:55:23 +02:00
bf9ec094bf
Add "mod" function for modulo in templating
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-07-15 19:25:05 +02:00
b0d9b5782f
[template] Add inList
function
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-06-20 21:55:24 +02:00
5a9e589ff5
[ #26 ] Fix: Modify channel module not working for editor-bots ( #27 )
2022-04-23 17:24:49 +02:00
6dd52e5320
[customevent] Add actor to create events within rules
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-04-17 16:54:12 +02:00
c51a0751f0
[overlays] Move replay into own HTTP request
...
as replaying through the socket takes ages for longer time ranges
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-04-03 15:58:39 +02:00
4c5fcc9e91
[customevent] Enforce channel to be set in event
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-31 13:26:13 +02:00
2b0b5e3dc0
[customevent] Fix: Make the response code match the docs
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-31 00:31:25 +02:00
56082ad577
[msgformat] Fix: Add missing API docs
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-31 00:27:52 +02:00
2ae4857a6a
[ban] Fix: Add missing API docs
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-31 00:24:26 +02:00
a73f27abd0
[customevent] Add API module to create custom events
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-31 00:23:19 +02:00
6ce8375fa5
[filesay] Lint: Remove dead code
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-04 23:50:38 +01:00
56f980c48f
[filesay] Add FileSay actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-04 23:35:37 +01:00
d51dd27630
[overlays] Add a simple overlay to display a template
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-02-20 14:05:31 +01:00
5f5f96a35e
[overlays] Add helper function to render template strings
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-02-20 13:52:40 +01:00
ddc52d8920
[overlays] Add parameter to limit replay message age
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-02-20 13:36:36 +01:00
8b8c7601f1
[msgformat] Add more mathematical functions
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-02-10 01:12:57 +01:00
1d317ab27b
[timeout] [ #15 ] Allow timeout reason to be set
...
fixes #15
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-02-08 20:41:24 +01:00
8a8347401e
[overlays] Add overlays server capability ( #14 )
2022-02-08 19:58:19 +01:00
fe76b23b09
[msgformat] Add module to retrieve filled template through API
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-01-20 02:03:52 +01:00
f36ae7e05f
[ban] Add HTTP API route for banning users
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-12-10 02:28:44 +01:00
8247978151
[lint] Properly format inputs
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-11-25 23:48:16 +01:00
f3ad4a1332
[ban] Enable templating for ban reason
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-11-23 14:46:50 +01:00
c884a7c532
[templating] Add multiply
and seededRandom
template functions
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-11-19 22:53:30 +01:00
8ba6d2ef08
[core] BREAKING: Allow actors to set fields those after them ( #11 )
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-11-15 21:14:40 +01:00
c10b50bbc7
[nuke] Add new moderation module
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-25 23:21:52 +02:00
77aa2e411c
[core] Implement write authorization for APIs ( #9 )
2021-10-25 21:40:52 +02:00
4ead12f536
[quotedb] Add simple page to list quotes
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-22 22:27:25 +02:00
38c31200fd
[quotedb] Lint: Justify usage of math/random
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-22 01:16:00 +02:00
0e6432c32c
[quotedb] Fix: Update method should not delete quote
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-22 01:15:40 +02:00
0f5dc7ba8e
[respond] Log message template errors even when fallback is set
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-22 00:02:18 +02:00
edd90bb293
[quotedb] Add HTTP API
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-21 23:59:53 +02:00
797b7719f0
[respond] Fix: Empty string fallback should not count as fallback
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-21 23:57:06 +02:00
c1e84f31e8
[quotedb] Add new actor
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-19 00:22:05 +02:00
2261aee955
[respond] fix broken condition for fallback message
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-10-13 14:46:54 +02:00
2df98eca66
Add "punish", "reset-punish" actors and storage manager ( #8 )
2021-10-03 15:35:58 +02:00
b59676492e
Breaking: Add configuration interface and switch to more generic config format ( #7 )
2021-09-22 15:36:45 +02:00
7c75e94ade
Add modchannel core module
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-09-10 19:52:30 +02:00
9852fc3a91
Support sending message to different channel
...
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-09-03 12:37:31 +02:00