Merge pull request #213 from velour/tweetpersist

twitter: persist last tweet id
This commit is contained in:
Chris Sexton 2019-10-20 10:58:20 -04:00 committed by GitHub
commit f53c14a153
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 7 deletions

View File

@ -17,15 +17,12 @@ type Twitter struct {
c *config.Config
b bot.Bot
api *anaconda.TwitterApi
tweetLog map[string]int64
}
func New(b bot.Bot) *Twitter {
t := Twitter{
c: b.Config(),
b: b,
tweetLog: map[string]int64{},
}
token := t.c.GetString("twitter.accesstoken", "")
secret := t.c.GetString("twitter.accesssecret", "")
@ -72,14 +69,16 @@ func (t *Twitter) check(c bot.Connector) {
continue
}
for _, tweet := range tweets {
if last, ok := t.tweetLog[u]; !ok || last < tweet.Id {
userKey := fmt.Sprintf("twitter.last.%s", u)
lastTweet := int64(t.c.GetInt(userKey, 0))
if lastTweet < tweet.Id {
link := fmt.Sprintf("https://twitter.com/%s/status/%s", u, tweet.IdStr)
log.Debug().Str("tweet", link).Msg("Unknown tweet")
for _, ch := range chs {
log.Debug().Str("ch", ch).Msg("Sending tweet")
t.b.Send(c, bot.Message, ch, link)
}
t.tweetLog[u] = tweet.Id
t.c.Set(userKey, string(tweet.Id))
}
}
}