Fixes #56 again because I did it wrong.

This commit is contained in:
Chris Sexton 2014-04-20 15:08:24 -04:00
parent 9952154433
commit 1827765a4d
2 changed files with 14 additions and 7 deletions

View File

@ -3,18 +3,21 @@
package bot
import (
"code.google.com/p/velour/irc"
"github.com/chrissexton/alepale/config"
"html/template"
"labix.org/v2/mgo"
"log"
"net/http"
"strings"
"time"
"code.google.com/p/velour/irc"
"github.com/chrissexton/alepale/config"
"labix.org/v2/mgo"
)
const actionPrefix = "\x01ACTION"
var throttle <-chan time.Time
// Bot type provides storage for bot-wide information, configs, and database connections
type Bot struct {
// Each plugin must be registered in our plugins handler. To come: a map so that this
@ -167,6 +170,14 @@ func (b *Bot) SendMessage(channel, message string) {
} else {
message = ""
}
if throttle == nil {
ratePerSec := b.Config.RatePerSec
throttle = time.Tick(time.Second / time.Duration(ratePerSec))
}
<-throttle
b.Client.Out <- m
}
}

View File

@ -91,9 +91,6 @@ func handleConnection() {
}
}()
ratePerSec := Config.RatePerSec
throttle := time.Tick(time.Second * time.Duration(1.0/ratePerSec))
for {
select {
case msg, ok := <-Client.In:
@ -105,7 +102,6 @@ func handleConnection() {
handleMsg(msg)
case <-t.C:
<-throttle // rate limit our Service.Method RPCs
Client.Out <- irc.Msg{Cmd: irc.PING, Args: []string{Client.Server}}
t = time.NewTimer(pingTime)