Remove old, unneeded debugging files
This commit is contained in:
parent
a204d66a44
commit
c53d8ae24c
@ -1,62 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"fmt"
|
|
||||||
"offline_twitter/scraper"
|
|
||||||
// "time"
|
|
||||||
"strconv"
|
|
||||||
"log"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
const INCLUDE_REPLIES = true;
|
|
||||||
|
|
||||||
// input: e.g., "https://twitter.com/michaelmalice/status/1395882872729477131"
|
|
||||||
func parse_tweet(url string) (scraper.TweetID, error) {
|
|
||||||
parts := strings.Split(url, "/")
|
|
||||||
if len(parts) != 6 {
|
|
||||||
return 0, fmt.Errorf("Tweet format isn't right (%d)", len(parts))
|
|
||||||
}
|
|
||||||
if parts[0] != "https:" || parts[1] != "" || parts[2] != "twitter.com" || parts[4] != "status" {
|
|
||||||
return 0, fmt.Errorf("Tweet format isn't right")
|
|
||||||
}
|
|
||||||
id, err := strconv.Atoi(parts[5])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return scraper.TweetID(id), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
if len(os.Args) < 2 {
|
|
||||||
log.Fatal("Must provide tweet! Exiting...")
|
|
||||||
}
|
|
||||||
|
|
||||||
tweet_id, err := parse_tweet(os.Args[1])
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
if INCLUDE_REPLIES {
|
|
||||||
tweets, retweets, users, err := scraper.GetTweetFull(tweet_id)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
for _, t := range tweets {
|
|
||||||
fmt.Printf("%v\n", t)
|
|
||||||
}
|
|
||||||
for _, t := range retweets {
|
|
||||||
fmt.Printf("%v\n", t)
|
|
||||||
}
|
|
||||||
for _, u := range users {
|
|
||||||
fmt.Printf("%v\n", u)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
tweet, err := scraper.GetTweet(tweet_id)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
fmt.Printf("%v\n", tweet)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,128 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"fmt"
|
|
||||||
"offline_twitter/scraper"
|
|
||||||
"log"
|
|
||||||
"sort"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
if len(os.Args) < 2 {
|
|
||||||
log.Fatal("Must provide a user handle! Exiting...")
|
|
||||||
}
|
|
||||||
handle := scraper.UserHandle(os.Args[1])
|
|
||||||
|
|
||||||
user, err := scraper.GetUser(handle)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal("Error getting user profile: " + err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
tweets, retweets, users, err := scraper.GetUserFeedFor(user.ID, 1)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal("Error getting user feed: " + err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
display_feed(user, tweets, retweets, users)
|
|
||||||
|
|
||||||
fmt.Printf("Got a total of %d tweets, %d retweets, from %d users\n", len(tweets), len(retweets), len(users))
|
|
||||||
}
|
|
||||||
|
|
||||||
func display_feed(user scraper.User, tweets []scraper.Tweet, retweets []scraper.Retweet, users []scraper.User) {
|
|
||||||
sort.Slice(tweets, func(i, j int) bool { return !tweets[i].PostedAt.Before(tweets[j].PostedAt) })
|
|
||||||
tweet_map := make(map[scraper.TweetID]scraper.Tweet)
|
|
||||||
for _, t := range tweets {
|
|
||||||
tweet_map[t.ID] = t
|
|
||||||
}
|
|
||||||
|
|
||||||
sort.Slice(retweets, func(i, j int) bool { return !retweets[i].RetweetedAt.Before(retweets[j].RetweetedAt) })
|
|
||||||
users_dict := make(map[scraper.UserID]scraper.User)
|
|
||||||
for _, u := range users {
|
|
||||||
users_dict[u.ID] = u
|
|
||||||
}
|
|
||||||
|
|
||||||
i := 0
|
|
||||||
j := 0
|
|
||||||
for i < len(tweets) && j < len(retweets) {
|
|
||||||
if !tweets[i].PostedAt.Before(retweets[j].RetweetedAt) {
|
|
||||||
tweet := tweets[i]
|
|
||||||
if tweet.UserID != user.ID {
|
|
||||||
i += 1
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
user, ok := users_dict[tweet.UserID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("User not found: %q", tweet.UserID)
|
|
||||||
}
|
|
||||||
|
|
||||||
print_tweet(tweets[i], user)
|
|
||||||
i += 1
|
|
||||||
} else {
|
|
||||||
retweet := retweets[j]
|
|
||||||
if retweet.RetweetedByID != user.ID {
|
|
||||||
j += 1
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
tweet, ok := tweet_map[retweet.TweetID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("Tweet not found: %q", retweet.TweetID)
|
|
||||||
}
|
|
||||||
original_poster, ok := users_dict[tweet.UserID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("User not found: %q", tweet.UserID)
|
|
||||||
}
|
|
||||||
retweeter, ok := users_dict[retweet.RetweetedByID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("User not found: %q", retweet.RetweetedByID)
|
|
||||||
}
|
|
||||||
print_retweet(retweet, tweet, original_poster, retweeter)
|
|
||||||
j += 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for i < len(tweets) {
|
|
||||||
tweet := tweets[i]
|
|
||||||
if tweet.UserID != user.ID {
|
|
||||||
i += 1
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
user, ok := users_dict[tweet.UserID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("User not found: %q", tweet.UserID)
|
|
||||||
}
|
|
||||||
|
|
||||||
print_tweet(tweets[i], user)
|
|
||||||
i += 1
|
|
||||||
}
|
|
||||||
for j < len(retweets) {
|
|
||||||
retweet := retweets[j]
|
|
||||||
if retweet.RetweetedByID != user.ID {
|
|
||||||
j += 1
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
tweet, ok := tweet_map[retweet.TweetID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("Tweet not found: %q", retweet.TweetID)
|
|
||||||
}
|
|
||||||
original_poster, ok := users_dict[tweet.UserID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("User not found: %q", tweet.UserID)
|
|
||||||
}
|
|
||||||
retweeter, ok := users_dict[retweet.RetweetedByID]
|
|
||||||
if !ok {
|
|
||||||
log.Fatalf("User not found: %q", retweet.RetweetedByID)
|
|
||||||
}
|
|
||||||
print_retweet(retweet, tweet, original_poster, retweeter)
|
|
||||||
j += 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func print_tweet(tweet scraper.Tweet, user scraper.User) {
|
|
||||||
fmt.Printf("%s => %s\n Replies: %d Retweets: %d Likes: %d\n", user.DisplayName, tweet.Text, tweet.NumReplies, tweet.NumRetweets, tweet.NumLikes)
|
|
||||||
}
|
|
||||||
|
|
||||||
func print_retweet(retweet scraper.Retweet, original_tweet scraper.Tweet, original_poster scraper.User, retweeter scraper.User) {
|
|
||||||
fmt.Printf("%s [retweet] %s => %s\n Replies: %d Retweets: %d Likes: %d\n", retweeter.DisplayName, original_poster.DisplayName, original_tweet.Text, original_tweet.NumReplies, original_tweet.NumRetweets, original_tweet.NumLikes)
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"fmt"
|
|
||||||
"offline_twitter/scraper"
|
|
||||||
"log"
|
|
||||||
)
|
|
||||||
|
|
||||||
// const INCLUDE_REPLIES = true;
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
if len(os.Args) < 2 {
|
|
||||||
log.Fatal("Must provide tweet!")
|
|
||||||
}
|
|
||||||
|
|
||||||
user_handle := scraper.UserHandle(os.Args[1])
|
|
||||||
|
|
||||||
user, err := scraper.GetUser(user_handle)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Printf("%v\n", user)
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user