Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import (
- "net/url"
- "os"
- "github.com/ChimeraCoder/anaconda"
- "github.com/Sirupsen/logrus"
- )
- var (
- consumerKey = getenv("TWITTER_CONSUMER_KEY")
- consumerSecret = getenv("TWITTER_CONSUMER_SECRET")
- accessToken = getenv("TWITTER_ACCESS_TOKEN")
- accessTokenSecret = getenv("TWITTER_ACCESS_TOKEN_SECRET")
- )
- type logger struct {
- *logrus.Logger
- }
- func (log *logger) Critical(args ...interface{}) {
- log.Error(args...)
- }
- func (log *logger) Criticalf(format string, args ...interface{}) {
- log.Errorf(format, args...)
- }
- func (log *logger) Notice(args ...interface{}) {
- log.Info(args...)
- }
- func (log *logger) Noticef(format string, args ...interface{}) {
- log.Infof(format, args...)
- }
- func getenv(name string) string {
- v := os.Getenv(name)
- if v == "" {
- panic("environment variable not set " + name)
- }
- return v
- }
- func main() {
- anaconda.SetConsumerKey(consumerKey)
- anaconda.SetConsumerSecret(consumerSecret)
- api := anaconda.NewTwitterApi(accessToken, accessTokenSecret)
- log := &logger{logrus.New()}
- api.SetLogger(log)
- stream := api.PublicStreamFilter(url.Values{
- "track": []string{"#2017In4Words"},
- })
- defer stream.Stop()
- for v := range stream.C {
- t, ok := v.(anaconda.Tweet)
- if !ok {
- log.Warningf("unexpected value type %T", v)
- continue
- }
- if t.RetweetedStatus != nil {
- continue
- }
- //log.Info(t.Text)
- _, err := api.Retweet(t.Id, false)
- if err != nil {
- log.Errorf("could not retweet %d %v", t.Id, err)
- continue
- }
- log.Infof("retweeted %d ", t.Id)
- rt, err := api.Favorite(t.Id)
- if err != nil {
- log.Errorf("could not favorite tweet %d ", rt.Id)
- }
- log.Infof("favorited %d ", rt.Id)
- }
- }
Add Comment
Please, Sign In to add comment