Include acts and joinparts
This commit is contained in:
parent
20f2859b7a
commit
2f60c81690
|
@ -7,10 +7,39 @@ import (
|
|||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/jackc/pgx/v4"
|
||||
)
|
||||
|
||||
type MessageText struct {
|
||||
t *string
|
||||
}
|
||||
|
||||
type Message struct {
|
||||
t int
|
||||
time time.Time
|
||||
userid int
|
||||
buffername string
|
||||
sender string
|
||||
message string
|
||||
}
|
||||
|
||||
func (mt MessageText) Scan(src interface{}) error {
|
||||
switch v := src.(type) {
|
||||
case string:
|
||||
*mt.t = v
|
||||
case []byte:
|
||||
*mt.t = string(v)
|
||||
case nil:
|
||||
*mt.t = ""
|
||||
default:
|
||||
*mt.t = ""
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
func logsHandler (w http.ResponseWriter, r *http.Request){
|
||||
rr := rq{w,r}
|
||||
if isAuthed,user := testAuth(rr,users); isAuthed {
|
||||
|
@ -31,20 +60,32 @@ func logsHandler (w http.ResponseWriter, r *http.Request){
|
|||
fmt.Println(err)
|
||||
}
|
||||
if uid != 0 {
|
||||
rows,err := con.Query(context.Background(), "select * from (select backlog.type, backlog.time, buffer.userid, buffer.buffername, sender.sender, backlog.message from backlog natural join sender natural join buffer where buffer.userid=$1 and type in (1) and buffer.buffername=$2 order by backlog.time asc) as test;", uid,channel )
|
||||
rows,err := con.Query(context.Background(), "select * from (select backlog.type, backlog.time, buffer.userid, buffer.buffername, sender.sender, backlog.message from backlog natural join sender natural join buffer where buffer.userid=$1 and type in (1, 4, 32, 128) and buffer.buffername=$2 order by backlog.time asc) as test;", uid,channel )
|
||||
defer rows.Close()
|
||||
if err != nil{
|
||||
fmt.Println(err)
|
||||
}
|
||||
for rows.Next() {
|
||||
var m Message
|
||||
err = rows.Scan(&m.t,&m.time,&m.userid,&m.buffername,&m.sender,&m.message)
|
||||
|
||||
err = rows.Scan(&m.t,&m.time,&m.userid,&m.buffername,&m.sender,MessageText{&m.message})
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
sendernick := strings.Split(m.sender,"!")
|
||||
fm := m.time.String()+" <"+sendernick[0]+"> "+m.message
|
||||
w.Write([]byte(fm+"\n"))
|
||||
|
||||
|
||||
time := m.time.String()
|
||||
switch m.t {
|
||||
case 1:
|
||||
w.Write([]byte(time+" <"+sendernick[0]+"> "+m.message+"\n"))
|
||||
case 4:
|
||||
w.Write([]byte(time+" * "+sendernick[0]+" "+m.message+"\n"))
|
||||
case 32:
|
||||
w.Write([]byte(time+" "+sendernick[0]+" joined "+m.message+"\n"))
|
||||
case 128:
|
||||
w.Write([]byte(time+" "+sendernick[0]+" left: "+m.message+"\n"))
|
||||
}
|
||||
}
|
||||
if rows.Err() != nil {
|
||||
fmt.Println(rows.Err())
|
||||
|
|
21
main.go
21
main.go
|
@ -1,20 +1,11 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Message struct {
|
||||
t int
|
||||
time time.Time
|
||||
userid int
|
||||
buffername string
|
||||
sender string
|
||||
message string
|
||||
}
|
||||
|
||||
type rq struct {
|
||||
w http.ResponseWriter
|
||||
r *http.Request
|
||||
|
@ -26,7 +17,15 @@ func main() {
|
|||
users = make(userList)
|
||||
users.loadFromFile("users.txt")
|
||||
http.HandleFunc("/logs/", logsHandler)
|
||||
if err := http.ListenAndServe(":"+os.Getenv("QL_LISTEN_PORT"), nil); err != nil {
|
||||
listenPort := "8087"
|
||||
if os.Getenv("QL_LISTEN_PORT") != "" {
|
||||
listenPort = os.Getenv("QL_LISTEN_PORT")
|
||||
}
|
||||
if os.Getenv("QL_DB_STRING") == ""{
|
||||
fmt.Println("require environment variable for postgres connection string: QL_DB_STRING")
|
||||
os.Exit(1)
|
||||
}
|
||||
if err := http.ListenAndServe(":"+listenPort, nil); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue