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
import (
"bytes"
"encoding/json"
"errors"
"io"
"net/url"
"strings"
"time"
@ -140,3 +144,42 @@ func (s *Scraper) FetchScheduledTweets() ([]*ScheduledTweet, error) {
tweets := timeline.parseTweets()
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
import (
"encoding/json"
"fmt"
"testing"
)
func TestFetchScheduledTweets(t *testing.T) {
_, err := testScraper.FetchScheduledTweets()
scheduled, err := testScraper.FetchScheduledTweets()
if err != nil {
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)
}
}