Bosun 用Go编写的Twitter Collector

示例

以下内容可以另存为main.go。更新EDITME设置并生成可执行文件后,可以将其用作连续的外部收集器。

package main

import (
    "fmt"
    "log"
    "net/url"
    "strconv"
    "time"

    "github.com/ChimeraCoder/anaconda"
)

func main() {
    anaconda.SetConsumerKey("EDITME")
    anaconda.SetConsumerSecret("EDITME")
    api := anaconda.NewTwitterApi("EDITME", "EDITME")
    v := url.Values{}
    sr, err := api.GetSearch("stackoverflow", nil)
    if err != nil {
        log.Println(err)
    }
    var since_id int64 = 0
    for _, tweet := range sr {
        iftweet.Id> since_id {
            since_id = tweet.Id
        }
    }
    count := 0
    for {
        now := time.Now().Unix()
        v.Set("result_type", "recent")
        v.Set("since_id", strconv.FormatInt(since_id, 10))
        sr, err := api.GetSearch("stackoverflow", nil)
        if err != nil {
            log.Println(err)
        }
        for _, tweet := range sr {
            iftweet.Id> since_id {
                count += 1
                since_id = tweet.Id
            }
        }
        fmt.Println("twitter.tweet_count", now, count, "query=stackoverflow")
        time.Sleep(time.Second * 30)
    }
}