persistence
This commit is contained in:
parent
a707bdca62
commit
ea486916a1
|
@ -13,7 +13,6 @@ import (
|
||||||
|
|
||||||
"github.com/asdine/storm"
|
"github.com/asdine/storm"
|
||||||
|
|
||||||
"gopkg.in/telegram-bot-api.v4"
|
|
||||||
"xeserv.us/r1459"
|
"xeserv.us/r1459"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -138,8 +137,7 @@ func handleClient(c *Client) {
|
||||||
if c.DB == nil {
|
if c.DB == nil {
|
||||||
db, err := storm.Open("var/" + c.Nick + ".db")
|
db, err := storm.Open("var/" + c.Nick + ".db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.KillClient(err)
|
log.Fatal(err)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,6 +177,14 @@ func handleClient(c *Client) {
|
||||||
|
|
||||||
c.TGBot = bot
|
c.TGBot = bot
|
||||||
|
|
||||||
|
db, err := storm.Open("var/" + me.UserName + ".db")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.DB = db
|
||||||
|
|
||||||
u := tgbotapi.NewUpdate(0)
|
u := tgbotapi.NewUpdate(0)
|
||||||
u.Timeout = 60
|
u.Timeout = 60
|
||||||
|
|
||||||
|
@ -189,12 +195,24 @@ func handleClient(c *Client) {
|
||||||
|
|
||||||
go func(c *Client) {
|
go func(c *Client) {
|
||||||
for update := range updates {
|
for update := range updates {
|
||||||
|
if update.Message == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
id := update.Message.Chat.ID
|
id := update.Message.Chat.ID
|
||||||
r := &Room{}
|
r := &Room{}
|
||||||
|
|
||||||
c.DB.One("RoomID", id, r)
|
err := c.DB.One("RoomID", id, r)
|
||||||
|
if err != nil {
|
||||||
r.client = c
|
c.SendLine(&r1459.RawLine{
|
||||||
|
Source: "xeserv.us",
|
||||||
|
Verb: "PRIVMSG",
|
||||||
|
Args: []string{
|
||||||
|
c.Nick,
|
||||||
|
fmt.Sprintf("Unknown room ID %v message %#v", update.Message.Chat.ID, update.Message.Chat),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if update.Message.Text != "" {
|
if update.Message.Text != "" {
|
||||||
r.RecieveMessage(update)
|
r.RecieveMessage(update)
|
||||||
|
@ -222,7 +240,7 @@ func handleClient(c *Client) {
|
||||||
Verb: "NOTICE",
|
Verb: "NOTICE",
|
||||||
Source: "xeserv.us",
|
Source: "xeserv.us",
|
||||||
Args: []string{
|
Args: []string{
|
||||||
c.Nick, "JOIN <shortname> <id>",
|
c.Nick, "ASSOCIATE <shortname> <id>",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,10 @@ func (r *Room) Burst() []*r1459.RawLine {
|
||||||
func (r Room) RecieveMessage(update tgbotapi.Update) {
|
func (r Room) RecieveMessage(update tgbotapi.Update) {
|
||||||
c := r.client
|
c := r.client
|
||||||
|
|
||||||
|
if c == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
log.Printf("[#%v] %s %s", r.Shortname, update.Message.From.UserName, update.Message.Text)
|
log.Printf("[#%v] %s %s", r.Shortname, update.Message.From.UserName, update.Message.Text)
|
||||||
|
|
||||||
found := false
|
found := false
|
||||||
|
@ -151,7 +155,7 @@ func (r Room) RecieveMessage(update tgbotapi.Update) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, msgLine := range strings.Split(update.Message.Text, " ") {
|
for _, msgLine := range strings.Split(update.Message.Text, "\n") {
|
||||||
c.SendLine(&r1459.RawLine{
|
c.SendLine(&r1459.RawLine{
|
||||||
Verb: "PRIVMSG",
|
Verb: "PRIVMSG",
|
||||||
Source: Mask(update.Message.From.UserName),
|
Source: Mask(update.Message.From.UserName),
|
||||||
|
|
Loading…
Reference in New Issue