func GenerateFireworkFor(api *anaconda.TwitterApi, t *anaconda.Tweet) error { checkFile := MakeGifFilename(t.User.ScreenName, t.Id) if Exists(checkFile) { fmt.Println("Already Exsists") return nil } v := url.Values{} v.Set("screen_name", t.User.ScreenName) v.Set("count", "30") search_result, err := api.GetUserTimeline(v) if err != nil { return err } gifFile, e := genTwitterGif(search_result, t.User.ScreenName, t.Id) if e != nil { return e } if *live { return postImageTweet(api, gifFile, t) } else { fmt.Println("Not live: ", live, t.User.ScreenName, gifFile) } return nil }
// 指定したユーザのTweetを表示する。 func ShowTimeline(api *anaconda.TwitterApi, v url.Values, screenName string) { v.Set("screen_name", screenName) tweets, err := api.GetUserTimeline(v) check(err) for _, tweet := range tweets { PrintTweet(tweet) } }
func getLatestTweets(client *anaconda.TwitterApi, screenName string, length int) (tweets []anaconda.Tweet, err error) { query := url.Values{} query.Set("screen_name", screenName) query.Set("count", fmt.Sprintf("%v", length)) query.Set("trim_user", "true") query.Set("exclude_replies", "true") query.Set("include_rts", "true") return client.GetUserTimeline(query) }
func isTweeted(subject string, api anaconda.TwitterApi) bool { tweets, err := api.GetUserTimeline(nil) if err != nil { fmt.Println("Getting User timeline failed! Error : ", err) os.Exit(1) } for _, tweet := range tweets { fmt.Println(tweet.Text) fmt.Println("searching subject :" + subject) found := strings.Contains(tweet.Text, subject) if found { return true } } return false }
func GetTweets(api anaconda.TwitterApi, username string) []anaconda.Tweet { v := url.Values{} v.Set("screen_name", username) v.Set("include_rts", "1") v.Set("count", "100") tweets, err := api.GetUserTimeline(v) if err != nil { glog.Fatal("Wasn't able to get user's timeline") } glog.V(2).Infof("Fetched %d tweets from user %s", len(tweets), username) glog.V(2).Info("Closing Polygons on tweets") // Close those polygons because ES can't handle a non-closed GeoJSON polygon for _, tweet := range tweets { ClosePlacePolygon(&tweet) } return tweets }
func GetTimelines(api *anaconda.TwitterApi, account string, since int64) timelinesTweets { myTweets := make(timelinesTweets) var max_id int64 var tweet anaconda.Tweet searchresult, _ := api.GetUsersShow(account, nil) v := url.Values{} var timeline []anaconda.Tweet var Tweettime string v.Set("user_id", searchresult.IdStr) v.Set("count", "1") //getting twitter first tweet timeline, _ = api.GetUserTimeline(v) max_id = timeline[0].Id // putting it as max_id time, _ := timeline[0].CreatedAtTime() for time.Unix() >= since { //until we don't exceed our range of interest v = url.Values{} v.Set("user_id", searchresult.IdStr) v.Set("count", "200") v.Set("max_id", strconv.FormatInt(max_id, 10)) timeline, _ = api.GetUserTimeline(v) for _, tweet = range timeline { time, _ = tweet.CreatedAtTime() myTweets[tweet.IdStr] = tweet Tweettime = fmt.Sprintf("%d-%02d-%02dT%02d:%02d:%02d", time.Year(), time.Month(), time.Day(), time.Hour(), time.Minute(), time.Second()) log.Info("\tTweet @ " + Tweettime + " : " + tweet.IdStr) max_id = tweet.Id } log.Info("\tFinished reading timeslice for " + account) } log.Info("\tFinished reading timeline for " + account) return myTweets }