aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go70
1 files changed, 60 insertions, 10 deletions
diff --git a/main.go b/main.go
index 8e2aca9..05b4ff4 100644
--- a/main.go
+++ b/main.go
@@ -467,6 +467,14 @@ func runCommand(
}
appConfig.deleteLstate(args[1])
+ case "list":
+ if !isFromAdmin(appConfig.Admins, event) {
+ break
+ }
+
+ for key, value := range appConfig.LuaCommands {
+ client.Cmd.Reply(event, fmt.Sprintf("%s: %s", key, value.Path))
+ }
case "remind":
if len(args) < 2 { //nolint: mnd,gomnd
client.Cmd.Message(event.Source.Name, errNotEnoughArgs.Error())
@@ -538,22 +546,55 @@ func runCommand(
randomNumber := lowerLimit + rand.Intn(upperLimit-lowerLimit+1)
client.Cmd.ReplyTo(event, fmt.Sprint(randomNumber))
+ case "ua":
+ if !isFromAdmin(appConfig.Admins, event) {
+ break
+ }
+
+ if len(args) < 2 { //nolint: mnd,gomnd
+ client.Cmd.Reply(event, errNotEnoughArgs.Error())
+
+ break
+ }
+
+ var query string
+
+ if len(args) >= 3 {
+ query = strings.TrimPrefix(cmd, args[0])
+ }
+
+ log.Println("query:", query)
+ response := UserAgentsGet(args[1], query, appConfig)
+
+ // client.Cmd.Reply(event, response)
+ SendToIRC(client, event, response, appConfig.ChromaFormatter)
+
default:
_, ok := appConfig.LuaCommands[args[0]]
- if !ok {
- client.Cmd.Reply(event, errUnknCmd.Error())
+ if ok {
+ luaArgs := strings.TrimPrefix(event.Last(), appConfig.IrcNick+": ")
+ luaArgs = strings.TrimSpace(luaArgs)
+ luaArgs = strings.TrimPrefix(luaArgs, "/")
+ luaArgs = strings.TrimPrefix(luaArgs, args[0])
+ luaArgs = strings.TrimSpace(luaArgs)
+
+ result := RunLuaFunc(args[0], luaArgs, client, appConfig)
+ client.Cmd.Reply(event, result)
break
}
- luaArgs := strings.TrimPrefix(event.Last(), appConfig.IrcNick+": ")
- luaArgs = strings.TrimSpace(luaArgs)
- luaArgs = strings.TrimPrefix(luaArgs, "/")
- luaArgs = strings.TrimPrefix(luaArgs, args[0])
- luaArgs = strings.TrimSpace(luaArgs)
+ _, ok = appConfig.Aliases[args[0]]
+ if ok {
+ dummyEvent := event
+ dummyEvent.Params[len(dummyEvent.Params)-1] = appConfig.Aliases[args[0]].Alias
+
+ runCommand(client, dummyEvent, appConfig)
- result := RunLuaFunc(args[0], luaArgs, client, appConfig)
- client.Cmd.Reply(event, result)
+ break
+ }
+
+ client.Cmd.Reply(event, errUnknCmd.Error())
}
}
@@ -914,6 +955,7 @@ func runIRC(appConfig TomlConfig) {
_, err := backoff.Retry(ctx, connectToIRC, expBackoff)
if err != nil {
+ log.Println(appConfig.Name)
LogError(err)
} else {
return
@@ -959,7 +1001,15 @@ func main() {
}
for _, v := range config.Ircd {
- go runIRC(v)
+ if v.IrcServer != "" {
+ go runIRC(v)
+ } else {
+ log.Println("Could not find server for irc connection in the config file. skipping. check your config for spelling errors maybe.")
+ }
+ }
+
+ for k, v := range config.Ghost {
+ go RunGhost(v, k)
}
if *prof {