Compare commits
5 Commits
master
...
dda015e47e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dda015e47e | ||
|
|
246ecf9a76 | ||
|
|
b923a30d17 | ||
|
|
cc860c6fca | ||
|
|
e54144d716 |
50
TODO.md
50
TODO.md
@@ -3,34 +3,62 @@
|
||||
В качестве основы возьмём https://github.com/NicoNex/echotron
|
||||
|
||||
Для реализации телеграммного фронтэнда нам надо сделать:
|
||||
-1. Перелелать layout на "стандартный" гошный.
|
||||
|
||||
0. Парсер конфига.
|
||||
|
||||
[V] Реализован начальный вариант парсера конфига.
|
||||
|
||||
1. Разгребальщик апдейтов и формирователь redis-ных сообщений.
|
||||
|
||||
[ ] Написана заглушка для парсера апдейтов bot api телеграма
|
||||
|
||||
[V] Написан парсер прочих команд
|
||||
|
||||
2. Разгребальщик редисных сообщений и формирователь запросов в tg bot api.
|
||||
[ ] Написан черновой вариант рагребателя
|
||||
|
||||
[ ] Написан черновой вариант разгребателя
|
||||
|
||||
[ ] Написан мигратор для группового чата. (апгрейд до супергруппы, до чата с тредами)
|
||||
|
||||
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
|
||||
|
||||
@@ -496,7 +496,7 @@ func cmdParser(me echotron.APIResponseUser, cmd *echotron.Update) (bool, error)
|
||||
"кис", "drink", "праздник", "fox", "лис", "frog", "лягушка", "horse", "лошадь", "лошадка", "monkeyuser",
|
||||
"owl", "сова", "сыч", "rabbit", "bunny", "кролик", "snail", "улитка", "tits", "boobs", "tities", "boobies",
|
||||
"сиси", "сисечки", "butt", "booty", "ass", "попа", "попка", "xkcd", "dig", "копать", "fish", "fishing",
|
||||
"рыба", "рыбка", "рыбалка", "karma", "карма", "fuck",
|
||||
"рыба", "рыбка", "рыбалка", "karma", "карма", "fuck", "weather", "погода", "w", "п", "погодка", "погадка",
|
||||
}
|
||||
|
||||
for _, c := range cmds {
|
||||
@@ -719,11 +719,11 @@ func Help(cmd *echotron.Update) (bool, error) {
|
||||
help += fmt.Sprintf("%sroll | %sdice | %sкости - бросить кости", config.Csign, config.Csign, config.Csign)
|
||||
help += fmt.Sprintf("%ssnail | %sулитка - улитка", config.Csign, config.Csign)
|
||||
help += fmt.Sprintf("%sver | %sversion | %sверсия - что-то про версию ПО", config.Csign, config.Csign, config.Csign)
|
||||
help += fmt.Sprintf("%sw город | %sп город - погода в указанном городе", config.Csign, config.Csign)
|
||||
help += fmt.Sprintf("%sweather город - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sпогода город - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sпогодка город - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sпогадка город - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sw <город> | %sп <город> - погода в указанном городе", config.Csign, config.Csign)
|
||||
help += fmt.Sprintf("%sweather <город> - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sпогода <город> - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sпогодка <город> - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sпогадка <город> - погода в указанном городе", config.Csign)
|
||||
help += fmt.Sprintf("%sxkcd - рандомный стрип с сайта xkcd.ru", config.Csign)
|
||||
help += fmt.Sprintf("%skarma фраза | %sкарма фраза - посмотреть карму фразы", config.Csign, config.Csign)
|
||||
help += "```\n"
|
||||
@@ -773,6 +773,10 @@ func Admin(msg *echotron.Update) (bool, error) {
|
||||
answer += fmt.Sprintf("%sadmin приветствие - приветствуем ли новых участников чата\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 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 - показываем ли сисечки по просьбе участников чата (команды %stits, %stities, %sboobs, %sboobies, %sсиси, %sсисечки)\n",
|
||||
@@ -1162,6 +1166,36 @@ func Admin(msg *echotron.Update) (bool, error) {
|
||||
default:
|
||||
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(
|
||||
|
||||
Reference in New Issue
Block a user