Two bug fixes
- Search is now authenticated only - `fetch_tweet` and `search` subcommands now respect the `-n [number]` flag
This commit is contained in:
parent
a724f32470
commit
af93f44ed2
11
cmd/tests.sh
11
cmd/tests.sh
@ -270,11 +270,6 @@ test $(sqlite3 twitter.db "select is_id_fake from users where handle = '_selfopt
|
|||||||
test $(sqlite3 twitter.db "select count(*) from tweets where user_id = (select id from users where handle = '_selfoptimizer')") = 1
|
test $(sqlite3 twitter.db "select count(*) from tweets where user_id = (select id from users where handle = '_selfoptimizer')") = 1
|
||||||
|
|
||||||
|
|
||||||
# Test search
|
|
||||||
tw search "from:michaelmalice constitution"
|
|
||||||
test $(sqlite3 twitter.db "select count(*) from tweets where user_id = 44067298 and text like '%constitution%'") -gt "30" # Not sure exactly how many
|
|
||||||
|
|
||||||
|
|
||||||
# Test fetching a banned user
|
# Test fetching a banned user
|
||||||
rm profile_images/default_profile.png
|
rm profile_images/default_profile.png
|
||||||
tw fetch_user nancytracker
|
tw fetch_user nancytracker
|
||||||
@ -322,6 +317,12 @@ test "$(sqlite3 twitter.db "select count(*) from tweets where id = 1562714727968
|
|||||||
# Test that you can pass a session with the `.session` file extension too
|
# Test that you can pass a session with the `.session` file extension too
|
||||||
tw --session Offline_Twatter.session list_followed > /dev/null # Dummy operation
|
tw --session Offline_Twatter.session list_followed > /dev/null # Dummy operation
|
||||||
|
|
||||||
|
|
||||||
|
# Test search
|
||||||
|
tw --session Offline_Twatter -n 1 search "from:michaelmalice constitution" # TODO: remove `-n 1` once the authenticated cursor bug is fixed
|
||||||
|
test $(sqlite3 twitter.db "select count(*) from tweets where user_id = 44067298 and text like '%constitution%'") -gt "30" # Not sure exactly how many
|
||||||
|
|
||||||
|
|
||||||
# TODO: Maybe this file should be broken up into multiple test scripts
|
# TODO: Maybe this file should be broken up into multiple test scripts
|
||||||
|
|
||||||
echo -e "\033[32mAll tests passed. Finished successfully.\033[0m"
|
echo -e "\033[32mAll tests passed. Finished successfully.\033[0m"
|
||||||
|
@ -129,7 +129,7 @@ func main() {
|
|||||||
case "fetch_tweet_only":
|
case "fetch_tweet_only":
|
||||||
fetch_tweet_only(target)
|
fetch_tweet_only(target)
|
||||||
case "fetch_tweet":
|
case "fetch_tweet":
|
||||||
fetch_tweet_conversation(target)
|
fetch_tweet_conversation(target, *how_many)
|
||||||
case "get_user_tweets":
|
case "get_user_tweets":
|
||||||
fetch_user_feed(target, *how_many)
|
fetch_user_feed(target, *how_many)
|
||||||
case "get_user_tweets_all":
|
case "get_user_tweets_all":
|
||||||
@ -137,7 +137,7 @@ func main() {
|
|||||||
case "download_tweet_content":
|
case "download_tweet_content":
|
||||||
download_tweet_content(target)
|
download_tweet_content(target)
|
||||||
case "search":
|
case "search":
|
||||||
search(target)
|
search(target, *how_many)
|
||||||
case "follow":
|
case "follow":
|
||||||
follow_user(target, true)
|
follow_user(target, true)
|
||||||
case "unfollow":
|
case "unfollow":
|
||||||
@ -230,13 +230,13 @@ func fetch_tweet_only(tweet_identifier string) {
|
|||||||
* args:
|
* args:
|
||||||
* - tweet_url: e.g., "https://twitter.com/michaelmalice/status/1395882872729477131"
|
* - tweet_url: e.g., "https://twitter.com/michaelmalice/status/1395882872729477131"
|
||||||
*/
|
*/
|
||||||
func fetch_tweet_conversation(tweet_identifier string) {
|
func fetch_tweet_conversation(tweet_identifier string, how_many int) {
|
||||||
tweet_id, err := extract_id_from(tweet_identifier)
|
tweet_id, err := extract_id_from(tweet_identifier)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
die(err.Error(), false, -1)
|
die(err.Error(), false, -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
trove, err := scraper.GetTweetFull(tweet_id)
|
trove, err := scraper.GetTweetFull(tweet_id, how_many)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
die(err.Error(), false, -1)
|
die(err.Error(), false, -1)
|
||||||
}
|
}
|
||||||
@ -293,8 +293,8 @@ func download_user_content(handle scraper.UserHandle) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func search(query string) {
|
func search(query string, how_many int) {
|
||||||
trove, err := scraper.Search(query, 1000)
|
trove, err := scraper.Search(query, how_many)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
die(fmt.Sprintf("Error scraping search results: %s", err.Error()), false, -100)
|
die(fmt.Sprintf("Error scraping search results: %s", err.Error()), false, -100)
|
||||||
}
|
}
|
||||||
|
@ -238,15 +238,15 @@ func GetTweet(id TweetID) (Tweet, error) {
|
|||||||
*
|
*
|
||||||
* returns: the tweet, list of its replies and context, and users associated with those replies
|
* returns: the tweet, list of its replies and context, and users associated with those replies
|
||||||
*/
|
*/
|
||||||
func GetTweetFull(id TweetID) (trove TweetTrove, err error) {
|
func GetTweetFull(id TweetID, how_many int) (trove TweetTrove, err error) {
|
||||||
tweet_response, err := the_api.GetTweet(id, "")
|
tweet_response, err := the_api.GetTweet(id, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("Error getting tweet: %d\n %w", id, err)
|
err = fmt.Errorf("Error getting tweet: %d\n %w", id, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(tweet_response.GlobalObjects.Tweets) < DEFAULT_MAX_REPLIES_EAGER_LOAD &&
|
if len(tweet_response.GlobalObjects.Tweets) < how_many &&
|
||||||
tweet_response.GetCursor() != "" {
|
tweet_response.GetCursor() != "" {
|
||||||
err = the_api.GetMoreReplies(id, &tweet_response, DEFAULT_MAX_REPLIES_EAGER_LOAD)
|
err = the_api.GetMoreReplies(id, &tweet_response, how_many)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("Error getting more tweet replies: %d\n %w", id, err)
|
err = fmt.Errorf("Error getting more tweet replies: %d\n %w", id, err)
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user