Commit graph

153 commits

Author SHA1 Message Date
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