twitterparse

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2019 License: MIT Imports: 12 Imported by: 1

README

twitterparse

Golang lib to fetch a Twitter user's recent tweets

TODO

Parse quoted tweets and add context Videos

Documentation

Index

Constants

View Source
const TOKEN = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"

Variables

This section is empty.

Functions

func URLFromUsername

func URLFromUsername(username string) string

Types

type GuestToken

type GuestToken string

type Profile

type Profile struct {
	GlobalObjects struct {
		Tweets map[string]*ProfileTweet `json:"tweets"`
		Users  map[string]*ProfileUser  `json:"users"`
	} `json:"globalObjects"`
}

func ParseProfile

func ParseProfile(r io.Reader) (*Profile, error)

type ProfileTweet

type ProfileTweet struct {
	CreatedAt string    `json:"created_at"`
	ID        string    `json:"id_string"`
	FullText  string    `json:"full_text"`
	Time      time.Time `json:"time"`
	UserID    string    `json:"user_id_str"`

	Entities struct {
		Media []struct {
			MediaURL string `json:"media_url_https"`
			Type     string `json:"type"`
		} `json:"media"`
	} `json:"entities"`
	ExtendedEntities struct {
		Media []struct {
			MediaURL  string `json:"media_url_https"`
			Type      string `json:"type"`
			VideoInfo struct {
				AspectRatio [2]int `json:"aspect_ratio"`
				Duration    int    `json:"duration_millis"`
				Variants    []struct {
					Bitrate     int    `json:"bitrate"`
					ContentType string `json:"content_type"`
					URL         string `json:"url"`
				} `json:"variants"`
			} `json:"video_info"`
		} `json:"media"`
	} `json:"extended_entities"`
}

type ProfileUser

type ProfileUser struct {
	ID              string `json:"id_str"`
	Name            string `json:"name"`
	ScreenName      string `json:"screen_name"`
	Location        string `json:"location"`
	Description     string `json:"description"`
	ProfileImageURL string `json:"profile_image_url_https"`
	BannerImageURL  string `json:"profile_banner_url"`
}

type Tweet

type Tweet struct {
	ID             string `json:"id"`
	Permalink      string `json:"permalink"`
	Content        string `json:"content"`
	Timestamp      int64  `json:"timestamp"`
	ISOTime        string `json:"iso_time"`
	RelativeTime   string `json:"relative_time"`
	UserName       string `json:"user_name"`
	UserHandle     string `json:"user_handle"`
	UserID         string `json:"user_id"`
	UserAvatar     string `json:"user_avatar"`
	ImageURL       string `json:"image_url"`
	Context        string `json:"context"`
	Quoted         *Tweet `json:"quoted"`
	Video          bool   `json:"video"`
	VideoThumbnail string `json:"video_thumbnail"`
	VideoSource    string `json:"video_source"`
}

func ParseTweets

func ParseTweets(r io.Reader) ([]*Tweet, error)

type TwitterClient

type TwitterClient struct {
	Client http.Client
	Token  GuestToken
}

func NewClient

func NewClient() (*TwitterClient, error)

func NewClientWithHTTPClient

func NewClientWithHTTPClient(c http.Client) (*TwitterClient, error)

func (*TwitterClient) GetProfile

func (tc *TwitterClient) GetProfile(userID string) (*Profile, error)

func (*TwitterClient) GetProfileTweets

func (tc *TwitterClient) GetProfileTweets(userID string) ([]*Tweet, error)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL