Class: XTwitterScraper::Resources::X

Inherits:
Object
  • Object
show all
Defined in:
lib/x_twitter_scraper/resources/x.rb,
lib/x_twitter_scraper/resources/x/dm.rb,
lib/x_twitter_scraper/resources/x/lists.rb,
lib/x_twitter_scraper/resources/x/media.rb,
lib/x_twitter_scraper/resources/x/users.rb,
lib/x_twitter_scraper/resources/x/tweets.rb,
lib/x_twitter_scraper/resources/x/profile.rb,
lib/x_twitter_scraper/resources/x/accounts.rb,
lib/x_twitter_scraper/resources/x/bookmarks.rb,
lib/x_twitter_scraper/resources/x/followers.rb,
lib/x_twitter_scraper/resources/x/communities.rb,
lib/x_twitter_scraper/resources/x/tweets/like.rb,
lib/x_twitter_scraper/resources/x/users/follow.rb,
lib/x_twitter_scraper/resources/x/tweets/retweet.rb,
lib/x_twitter_scraper/resources/x/communities/join.rb,
lib/x_twitter_scraper/resources/x/communities/tweets.rb

Overview

X data lookups (subscription required)

Defined Under Namespace

Classes: Accounts, Bookmarks, Communities, Dm, Followers, Lists, Media, Profile, Tweets, Users

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ X

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of X.

Parameters:



135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/x_twitter_scraper/resources/x.rb', line 135

def initialize(client:)
  @client = client
  @tweets = XTwitterScraper::Resources::X::Tweets.new(client: client)
  @users = XTwitterScraper::Resources::X::Users.new(client: client)
  @followers = XTwitterScraper::Resources::X::Followers.new(client: client)
  @dm = XTwitterScraper::Resources::X::Dm.new(client: client)
  @media = XTwitterScraper::Resources::X::Media.new(client: client)
  @profile = XTwitterScraper::Resources::X::Profile.new(client: client)
  @communities = XTwitterScraper::Resources::X::Communities.new(client: client)
  @accounts = XTwitterScraper::Resources::X::Accounts.new(client: client)
  @bookmarks = XTwitterScraper::Resources::X::Bookmarks.new(client: client)
  @lists = XTwitterScraper::Resources::X::Lists.new(client: client)
end

Instance Attribute Details

#accountsXTwitterScraper::Resources::X::Accounts (readonly)

Connected X account management



34
35
36
# File 'lib/x_twitter_scraper/resources/x.rb', line 34

def accounts
  @accounts
end

#bookmarksXTwitterScraper::Resources::X::Bookmarks (readonly)

X data lookups (subscription required)



38
39
40
# File 'lib/x_twitter_scraper/resources/x.rb', line 38

def bookmarks
  @bookmarks
end

#communitiesXTwitterScraper::Resources::X::Communities (readonly)



30
31
32
# File 'lib/x_twitter_scraper/resources/x.rb', line 30

def communities
  @communities
end

#dmXTwitterScraper::Resources::X::Dm (readonly)



19
20
21
# File 'lib/x_twitter_scraper/resources/x.rb', line 19

def dm
  @dm
end

#followersXTwitterScraper::Resources::X::Followers (readonly)

X data lookups (subscription required)



16
17
18
# File 'lib/x_twitter_scraper/resources/x.rb', line 16

def followers
  @followers
end

#listsXTwitterScraper::Resources::X::Lists (readonly)

X data lookups (subscription required)



42
43
44
# File 'lib/x_twitter_scraper/resources/x.rb', line 42

def lists
  @lists
end

#mediaXTwitterScraper::Resources::X::Media (readonly)

Media upload & download



23
24
25
# File 'lib/x_twitter_scraper/resources/x.rb', line 23

def media
  @media
end

#profileXTwitterScraper::Resources::X::Profile (readonly)

X write actions (tweets, likes, follows, DMs)



27
28
29
# File 'lib/x_twitter_scraper/resources/x.rb', line 27

def profile
  @profile
end

#tweetsXTwitterScraper::Resources::X::Tweets (readonly)



8
9
10
# File 'lib/x_twitter_scraper/resources/x.rb', line 8

def tweets
  @tweets
end

#usersXTwitterScraper::Resources::X::Users (readonly)

X data lookups (subscription required)



12
13
14
# File 'lib/x_twitter_scraper/resources/x.rb', line 12

def users
  @users
end

Instance Method Details

#get_article(tweet_id, request_options: {}) ⇒ XTwitterScraper::Models::XGetArticleResponse

Retrieve the full content of an X Article (long-form post) by tweet ID.

Parameters:

Returns:

See Also:



55
56
57
58
59
60
61
62
# File 'lib/x_twitter_scraper/resources/x.rb', line 55

def get_article(tweet_id, params = {})
  @client.request(
    method: :get,
    path: ["x/articles/%1$s", tweet_id],
    model: XTwitterScraper::Models::XGetArticleResponse,
    options: params[:request_options]
  )
end

#get_home_timeline(cursor: nil, seen_tweet_ids: nil, request_options: {}) ⇒ XTwitterScraper::Models::PaginatedTweets

Get home timeline

Parameters:

  • cursor (String)

    Pagination cursor for timeline

  • seen_tweet_ids (String)

    Comma-separated tweet IDs to exclude from results

  • request_options (XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



77
78
79
80
81
82
83
84
85
86
87
# File 'lib/x_twitter_scraper/resources/x.rb', line 77

def get_home_timeline(params = {})
  parsed, options = XTwitterScraper::XGetHomeTimelineParams.dump_request(params)
  query = XTwitterScraper::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "x/timeline",
    query: query.transform_keys(seen_tweet_ids: "seenTweetIds"),
    model: XTwitterScraper::PaginatedTweets,
    options: options
  )
end

#get_notifications(cursor: nil, type: nil, request_options: {}) ⇒ XTwitterScraper::Models::XGetNotificationsResponse

Get notifications

Parameters:

Returns:

See Also:



102
103
104
105
106
107
108
109
110
111
112
# File 'lib/x_twitter_scraper/resources/x.rb', line 102

def get_notifications(params = {})
  parsed, options = XTwitterScraper::XGetNotificationsParams.dump_request(params)
  query = XTwitterScraper::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "x/notifications",
    query: query,
    model: XTwitterScraper::Models::XGetNotificationsResponse,
    options: options
  )
end

Get trending topics

Parameters:

Returns:

See Also:



123
124
125
126
127
128
129
130
# File 'lib/x_twitter_scraper/resources/x.rb', line 123

def get_trends(params = {})
  @client.request(
    method: :get,
    path: "x/trends",
    model: XTwitterScraper::Models::XGetTrendsResponse,
    options: params[:request_options]
  )
end