0

Compare commits

...

4 Commits

Author SHA1 Message Date
eleksir
246ecf9a76 [WIP] Update TODO 2025-01-04 02:38:48 +03:00
eleksir
b923a30d17 [WIP] Implemented save goodbye message option 2025-01-04 02:38:11 +03:00
eleksir
cc860c6fca [WIP] Update TODO 2025-01-03 01:35:45 +03:00
eleksir
e54144d716 Update TODO 2025-01-02 15:12:09 +03:00
2 changed files with 73 additions and 11 deletions

50
TODO.md
View File

@@ -3,34 +3,62 @@
В качестве основы возьмём https://github.com/NicoNex/echotron В качестве основы возьмём https://github.com/NicoNex/echotron
Для реализации телеграммного фронтэнда нам надо сделать: Для реализации телеграммного фронтэнда нам надо сделать:
-1. Перелелать layout на "стандартный" гошный.
0. Парсер конфига. 0. Парсер конфига.
[V] Реализован начальный вариант парсера конфига. [V] Реализован начальный вариант парсера конфига.
1. Разгребальщик апдейтов и формирователь redis-ных сообщений. 1. Разгребальщик апдейтов и формирователь redis-ных сообщений.
[ ] Написана заглушка для парсера апдейтов bot api телеграма [ ] Написана заглушка для парсера апдейтов bot api телеграма
[V] Написан парсер прочих команд
2. Разгребальщик редисных сообщений и формирователь запросов в tg bot api. 2. Разгребальщик редисных сообщений и формирователь запросов в tg bot api.
[ ] Написан черновой вариант рагребателя
[ ] Написан черновой вариант разгребателя
[ ] Написан мигратор для группового чата. (апгрейд до супергруппы, до чата с тредами)
3. Обработчик группы команд admin, сохранение настроек в pebbledb. 3. Обработчик группы команд admin, сохранение настроек в pebbledb.
1 цензор сообщений определённого типа. 1 [V] [V] цензор сообщений определённого типа.
2 фортунка каждое утро. (+ добавить время, относительно gmt, когда показывать фортунку). 2 [ ] [V] фортунка каждое утро. (+ добавить время, относительно gmt, когда показывать фортунку).
3 Приветствие новых участников 3 [V] [V] Приветствие новых участников
4 oboobs 4 [V] [V] Прощание с теми, кто ушёл
5 obutts 5 [ ] [ ] oboobs
6 chan_msg 6 [ ] [ ] obutts
7 user ban 7 [V] [ ] chan_msg
8 user mute 1 [ ] [ ] настройка для метода banChatSenderChat()/unbanChatSenderChat()
8 [ ] [ ] user ban
9 [ ] [ ] user mute
4. [V] help
5. [V] help admin
6. [ ] Readme
7. [ ] Поддержать миграцию групп в супергруппы (итд, там меняется id и надо перекидывать настройки на новый id)
8. [ ] Поддержать парсинг ошибок отправки сообщений в телегу (в т.ч. мигратор для группового чата, также внятные сообщения в лог, если бот замьючен)
9. [ ] Поддержать leaveChat(), чтобы бот мог легально и самостоятельно покинуть чят.
10. [ ] ставить реакцию thumbsup на спасибо, пожалуйста итд, ставить сердечко, если похвалили - молодц, красава итд. (setMessageReaction() на соответствующий ответ на сообщение)
11. [ ] отслеживать участников чятика, чтобы была возможность мьютить, банить, узнавать инфу по разным участникам чятика.
12. [ ] промоут/демоут участника до админа
4. help
5. Readme.txt

View File

@@ -773,6 +773,10 @@ func Admin(msg *echotron.Update) (bool, error) {
answer += fmt.Sprintf("%sadmin приветствие - приветствуем ли новых участников чата\n", config.Csign) answer += fmt.Sprintf("%sadmin приветствие - приветствуем ли новых участников чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin greet # - где 1 - вкл, 0 - выкл приветствия новых участников чата\n", config.Csign) answer += fmt.Sprintf("%sadmin greet # - где 1 - вкл, 0 - выкл приветствия новых участников чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin приветствие # - где 1 - вкл, 0 - выкл приветствия новых участников чата\n", config.Csign) answer += fmt.Sprintf("%sadmin приветствие # - где 1 - вкл, 0 - выкл приветствия новых участников чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin goodbye - прощаемся ли с ушедшими участниками чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin прощание - прощаемся ли с ушедшими участниками чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin goodbye # - где 1 - вкл, 0 - выкл прощания с ушедшими участниками чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin прощание # - где 1 - вкл, 0 - выкл прощания с ушедшими участниками чата\n", config.Csign)
answer += fmt.Sprintf("%sadmin oboobs # - где 1 - вкл, 0 - выкл плагина oboobs\n", config.Csign) answer += fmt.Sprintf("%sadmin oboobs # - где 1 - вкл, 0 - выкл плагина oboobs\n", config.Csign)
answer += fmt.Sprintf( answer += fmt.Sprintf(
"%sadmin oboobs - показываем ли сисечки по просьбе участников чата (команды %stits, %stities, %sboobs, %sboobies, %sсиси, %sсисечки)\n", "%sadmin oboobs - показываем ли сисечки по просьбе участников чата (команды %stits, %stities, %sboobs, %sboobies, %sсиси, %sсисечки)\n",
@@ -1162,6 +1166,36 @@ func Admin(msg *echotron.Update) (bool, error) {
default: default:
answer += "Не понимаю, о чём ты." answer += "Не понимаю, о чём ты."
} }
case regexp.MustCompile("^(admin|админ)[[:space:]](goodbye|прощание)$").MatchString(c):
if GetSetting(fmt.Sprintf("%d", msg.Message.Chat.ID), "GoodbyeMsg") == "1" {
answer += "Прощаемся с ушедшими участниками чатика"
} else {
answer += "Не прощаемся с ушедшими участниками чатика"
}
case regexp.MustCompile("^(admin|админ)[[:space:]](goodbye|прощание)[[:space:]].*$").MatchString(c):
// Снова регулярка, это не оч эффективно, но зато просто.
cmdArray := regexp.MustCompile("[[:space:]]").Split(c, 3)
switch cmdArray[2] {
case "1":
if err := SaveSetting(fmt.Sprintf("%d", msg.Message.Chat.ID), "GoodbyeMsg", "1"); err != nil {
return true, err
}
answer += "Будем прощаться с ушедшими участниками чата"
case "0":
if err := SaveSetting(fmt.Sprintf("%d", msg.Message.Chat.ID), "GoodbyeMsg", "0"); err != nil {
return true, err
}
answer += "Не будем прощаться с ушедшими участниками чата"
default:
answer += "Не понимаю, о чём ты."
}
} }
resp, err := tg.SendMessage( resp, err := tg.SendMessage(