mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-16 00:52:40 +00:00
Add horoscope, !time @user, profile achievements; fix mention detection and multiple bugs
- Add !horoscope command and daily horoscope digest using Free Horoscope API - Enhance !time to support @user timezone lookups - Add profile completeness achievements (birthday, timezone, both set) - Fix Matrix mention detection in reputation and LLM passive plugins - Fix !whois reputation query (reason string mismatch and calculation) - Fix !time IANA case-sensitivity and username/city collision - Fix timezone default to empty string for achievement detection - Scope all leaderboards to room members (XP, rep, potty, insult, first, rankings, emoji) - Fix XP rank calculation to handle tied scores correctly - Replace skull emoji with bomb for bot insult reactions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
26
main.go
26
main.go
@@ -124,6 +124,14 @@ func main() {
|
||||
birthdayPlugin := plugin.NewBirthdayPlugin(client, xpPlugin)
|
||||
registry.Register(birthdayPlugin)
|
||||
|
||||
// Satirical
|
||||
esteemedPlugin := plugin.NewEsteemPlugin(client)
|
||||
registry.Register(esteemedPlugin)
|
||||
|
||||
// Horoscope
|
||||
horoscopePlugin := plugin.NewHoroscopePlugin(client)
|
||||
registry.Register(horoscopePlugin)
|
||||
|
||||
// Utility / Meta
|
||||
registry.Register(plugin.NewBotInfoPlugin(client))
|
||||
registry.Register(plugin.NewHowAmIPlugin(client))
|
||||
@@ -206,7 +214,7 @@ func main() {
|
||||
|
||||
// ---- Set up cron scheduler ----
|
||||
scheduler := cron.New()
|
||||
setupScheduledJobs(scheduler, client, wotdPlugin, holidaysPlugin, gamingPlugin, birthdayPlugin, animePlugin, moviesPlugin, concertsPlugin)
|
||||
setupScheduledJobs(scheduler, client, wotdPlugin, holidaysPlugin, gamingPlugin, birthdayPlugin, animePlugin, moviesPlugin, concertsPlugin, esteemedPlugin, horoscopePlugin)
|
||||
scheduler.Start()
|
||||
|
||||
// ---- Start syncing ----
|
||||
@@ -241,6 +249,8 @@ func setupScheduledJobs(
|
||||
anime *plugin.AnimePlugin,
|
||||
movies *plugin.MoviesPlugin,
|
||||
concerts *plugin.ConcertsPlugin,
|
||||
esteemed *plugin.EsteemPlugin,
|
||||
horoscope *plugin.HoroscopePlugin,
|
||||
) {
|
||||
rooms := getRooms()
|
||||
|
||||
@@ -259,6 +269,14 @@ func setupScheduledJobs(
|
||||
}
|
||||
})
|
||||
|
||||
// Daily horoscopes at 06:30
|
||||
c.AddFunc("30 6 * * *", func() {
|
||||
slog.Info("scheduler: posting daily horoscopes")
|
||||
for _, r := range rooms {
|
||||
horoscope.PostDailyHoroscopes(r)
|
||||
}
|
||||
})
|
||||
|
||||
// Holidays at 07:00
|
||||
c.AddFunc("0 7 * * *", func() {
|
||||
slog.Info("scheduler: posting holidays")
|
||||
@@ -312,6 +330,12 @@ func setupScheduledJobs(
|
||||
plugin.FirePendingReminders(client)
|
||||
})
|
||||
|
||||
// Esteemed community member — Wednesday & Sunday 13:00
|
||||
c.AddFunc("0 13 * * 0,3", func() {
|
||||
slog.Info("scheduler: posting esteemed member")
|
||||
esteemed.PostWeekly()
|
||||
})
|
||||
|
||||
// Database maintenance at 03:00 daily
|
||||
c.AddFunc("0 3 * * *", func() {
|
||||
slog.Info("scheduler: running database maintenance")
|
||||
|
||||
Reference in New Issue
Block a user