Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b249a495a4 |
+1
-1
@@ -35,7 +35,7 @@ steps:
|
||||
- tag
|
||||
|
||||
- name: go-build-1.14
|
||||
image: golang:1.13
|
||||
image: golang:1.14
|
||||
commands:
|
||||
- go mod download
|
||||
- CGO_ENABLED=0 go build -ldflags "-w -s" .
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
## 1. Build Server
|
||||
# Use Go 1.11
|
||||
FROM golang:1.11 AS build
|
||||
# Use Go 1.14
|
||||
FROM golang:1.14 AS build
|
||||
|
||||
# Load repository into docker
|
||||
WORKDIR /project
|
||||
|
||||
@@ -4,5 +4,5 @@ go 1.13
|
||||
|
||||
require (
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||
github.com/gissleh/irc v0.0.0-20200717144508-ec7511e0dfd4
|
||||
github.com/gissleh/irc v0.0.0-20200720173331-512ba5aa6fca
|
||||
)
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
git.aiterp.net/gisle/irc v0.0.0-20190317212656-36c2a5ea38d3 h1:2UYpXoDYcgeIGxRX+5K2e/CK0BNAQUZ6xU/9JjQYwDk=
|
||||
git.aiterp.net/gisle/irc v0.0.0-20190317212656-36c2a5ea38d3/go.mod h1:7uklwlzI0XI2O8ttooTH0suUpUmQ8Pviplg36smc1Aw=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/gissleh/irc v0.0.0-20200717144508-ec7511e0dfd4 h1:2rT4geKF5Zb0TyJjqp8ylUXwfrwIvMESdERItJtmtDI=
|
||||
github.com/gissleh/irc v0.0.0-20200717144508-ec7511e0dfd4/go.mod h1:dUQ3oIxO/lK/Ga5Dq72/1tH861WBDJFkkBtbnqg6ZXc=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
github.com/gissleh/irc v0.0.0-20200720173331-512ba5aa6fca h1:vTL3kM7PkVnTy77i2/ewaC0VDmSEF7sAOMDTNIs6rKY=
|
||||
github.com/gissleh/irc v0.0.0-20200720173331-512ba5aa6fca/go.mod h1:h2/fPlbnb11gFpitk0HGxYLgK+bCKGh55QSYNo36X8M=
|
||||
|
||||
+9
-3
@@ -76,6 +76,10 @@ func (bot *Bot) Connect(server string, ssl bool, maxRetries int) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
func (bot *Bot) ClientState() irc.ClientState {
|
||||
return bot.client.State()
|
||||
}
|
||||
|
||||
func (bot *Bot) addChannel(channelName string) *Channel {
|
||||
if bot.channels[channelName] != nil {
|
||||
return bot.channels[channelName]
|
||||
@@ -156,12 +160,14 @@ func (bot *Bot) loop() {
|
||||
}
|
||||
}
|
||||
|
||||
if len(joins) > 0 {
|
||||
bot.client.Join(joins...)
|
||||
}
|
||||
if len(parts) > 0 {
|
||||
log.Println("Leaving", strings.Join(parts, ", "))
|
||||
bot.client.Part(parts...)
|
||||
}
|
||||
if len(joins) > 0 {
|
||||
log.Println("Joining", strings.Join(joins, ", "))
|
||||
bot.client.Join(joins...)
|
||||
}
|
||||
}
|
||||
|
||||
case <-bot.loopCtx.Done():
|
||||
|
||||
@@ -132,7 +132,7 @@ func (channel *Channel) loop() {
|
||||
if target != nil {
|
||||
me, ok := target.UserList().User(channel.client.Nick())
|
||||
if !ok || !strings.ContainsRune(me.Modes, 'o') {
|
||||
channel.client.Say(channel.name, "This unit require operator privileges to serve this request.")
|
||||
channel.client.Say(channel.name, "This unit has insufficient privileges.")
|
||||
break
|
||||
}
|
||||
|
||||
|
||||
@@ -14,10 +14,14 @@ type Config struct {
|
||||
User string `json:"user"`
|
||||
RealName string `json:"realName"`
|
||||
} `json:"bot"`
|
||||
Debug struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Listen string `json:"listen"`
|
||||
} `json:"debug"`
|
||||
Server struct {
|
||||
Address string `json:"server"`
|
||||
SSL bool `json:"ssl"`
|
||||
}
|
||||
} `json:"server"`
|
||||
API struct {
|
||||
Endpoint string `json:"endpoint"`
|
||||
Username string `json:"username"`
|
||||
@@ -32,7 +36,7 @@ type Config struct {
|
||||
} `json:"commands"`
|
||||
Names struct {
|
||||
ChanServ string `json:"chanserv"`
|
||||
}
|
||||
} `json:"names"`
|
||||
}
|
||||
|
||||
var mutex sync.Mutex
|
||||
|
||||
@@ -2,7 +2,9 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
@@ -31,6 +33,23 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if conf.Debug.Enabled {
|
||||
mux := http.NewServeMux()
|
||||
|
||||
mux.HandleFunc("/state", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(200)
|
||||
_ = json.NewEncoder(w).Encode(bot.ClientState())
|
||||
})
|
||||
|
||||
go func() {
|
||||
err := http.ListenAndServe(conf.Debug.Listen, mux)
|
||||
if err != nil {
|
||||
log.Println("Failed to setup debug listener", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
// Listen for a quit signal.
|
||||
interrupt := make(chan os.Signal, 1)
|
||||
signal.Notify(interrupt, os.Interrupt)
|
||||
|
||||
Reference in New Issue
Block a user