added DeleteScheduledTweet

This commit is contained in:
Valentine 2024-02-23 10:58:24 +03:00
parent 7b2215391a
commit c862968cdd
2 changed files with 55 additions and 1 deletions

View file

@ -1,6 +1,10 @@
package twitterscraper package twitterscraper
import ( import (
"bytes"
"encoding/json"
"errors"
"io"
"net/url" "net/url"
"strings" "strings"
"time" "time"
@ -140,3 +144,42 @@ func (s *Scraper) FetchScheduledTweets() ([]*ScheduledTweet, error) {
tweets := timeline.parseTweets() tweets := timeline.parseTweets()
return tweets, nil return tweets, nil
} }
// DeleteScheduledTweet removes tweet from scheduled.
func (s *Scraper) DeleteScheduledTweet(id string) error {
req, err := s.newRequest("POST", "https://twitter.com/i/api/graphql/CTOVqej0JBXAZSwkp1US0g/DeleteScheduledTweet")
if err != nil {
return err
}
req.Header.Set("content-type", "application/json")
variables := map[string]interface{}{
"scheduled_tweet_id": id,
}
body := map[string]interface{}{
"variables": variables,
"queryId": "CTOVqej0JBXAZSwkp1US0g",
}
b, _ := json.Marshal(body)
req.Body = io.NopCloser(bytes.NewReader(b))
var response struct {
Data struct {
Status string `json:"scheduledtweet_delete"`
} `json:"data"`
}
err = s.RequestAPI(req, &response)
if err != nil {
return err
}
if response.Data.Status == "Done" {
return nil
}
return errors.New("scheduled tweet wasn't removed")
}

View file

@ -1,12 +1,23 @@
package twitterscraper_test package twitterscraper_test
import ( import (
"encoding/json"
"fmt"
"testing" "testing"
) )
func TestFetchScheduledTweets(t *testing.T) { func TestFetchScheduledTweets(t *testing.T) {
_, err := testScraper.FetchScheduledTweets() scheduled, err := testScraper.FetchScheduledTweets()
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
b, _ := json.Marshal(scheduled)
fmt.Println(string(b))
}
func TestDeleteScheduledTweets(t *testing.T) {
if err := testScraper.DeleteScheduledTweet("1760827700724355072"); err != nil {
t.Error(err)
}
} }