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