models

package
v0.0.0-...-ae3587a Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2020 License: LGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GormModelWithoutID

type GormModelWithoutID struct {
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time
}

GormModelWithoutID is an alternative definition for gorm.Model without an ID

type ReplyUser

type ReplyUser struct {
	UserID   string `json:"user_id"`
	Username string `json:"username"`
}

ReplyUser abc

type TwitterPost

type TwitterPost struct {
	GormModelWithoutID

	// meta
	PostIdentifier uint64 `gorm:"primary_key:true"`
	ConversationID string
	Link           string
	Type           string

	// time, place
	DateTime time.Time
	TimeZone string
	Geo      string
	Near     string
	Place    string

	// content
	Cashtags    pq.StringArray `gorm:"type:text[]"`
	Hashtags    pq.StringArray `gorm:"type:text[]"`
	Mentions    []*TwitterUser `gorm:"many2many:post_mentions;association_foreignkey:username;foreignkey:postIdentifier"`
	Photos      pq.StringArray `gorm:"type:text[]"`
	QuoteURL    string
	ReplyTo     []*TwitterUser `gorm:"many2many:post_replies;association_foreignkey:username;foreignkey:postIdentifier"`
	Retweet     bool
	RetweetDate string
	RetweetID   string
	Source      string
	Tweet       string
	URLs        pq.StringArray `gorm:"type:text[]"`
	Video       int

	// reactions
	LikesCount   int
	RepliesCount int
	RetweetCount int

	UserID          string
	Username        string
	RetweetUserID   string
	RetweetUsername string
}

TwitterPost is the struct containing all processed twitter post fields

func ConvertTwitterPost

func ConvertTwitterPost(raw *TwitterPostRaw) *TwitterPost

ConvertTwitterPost converts the raw TwitterPost structure from kafka into the database model

type TwitterPostRaw

type TwitterPostRaw struct {
	// meta
	ID             int    `json:"id"`
	IDstr          string `json:"id_str"`
	ConversationID string `json:"conversation_id"`
	Link           string `json:"link"`
	Type           string `json:"type"`

	// time, place
	DateStamp string `json:"datestamp"`
	DateTime  int    `json:"datetime"`
	TimeStamp string `json:"timestamp"`
	TimeZone  string `json:"timezone"`
	Geo       string `json:"geo"`
	Near      string `json:"near"`
	Place     string `json:"place"`

	// content
	Cashtags    []string    `json:"cashtags"`
	Hashtags    []string    `json:"hashtags"`
	Mentions    []string    `json:"mentions"`
	Photos      []string    `json:"photos"`
	QuoteURL    string      `json:"quote_url"`
	ReplyTo     []ReplyUser `json:"reply_to"`
	Retweet     bool        `json:"retweet"`
	RetweetDate string      `json:"retweet_date"`
	RetweetID   string      `json:"retweet_id"`
	Source      string      `json:"source"`
	Tweet       string      `json:"tweet"`
	URLs        []string    `json:"urls"`
	Video       int         `json:"video"`

	// reactions
	LikesCount   string `json:"likes_count"`
	RepliesCount string `json:"replies_count"`
	RetweetCount string `json:"retweet_count"`

	// user info
	Name      string `json:"name"`
	UserID    int    `json:"user_id"`
	UserIDstr string `json:"user_id_str"`
	UserName  string `json:"username"`
	UserRt    string `json:"user_rt"`
	UserRtID  string `json:"user_tr_id"`
}

TwitterPostRaw is the struct containing all raw twitter post fields

type TwitterUser

type TwitterUser struct {
	GormModelWithoutID

	// Meta
	UserIdentifier string
	URL            string
	Type           string

	// User info
	Name            string
	Username        string `gorm:"primary_key:true"`
	Bio             string
	Avatar          string
	BackgroundImage string

	// Profile stats
	Location   string
	JoinDate   time.Time
	IsPrivate  bool
	IsVerified bool

	// Follows
	Following     int
	FollowingList []*TwitterUser `gorm:"many2many:twitter_followings;association_jointable_foreignkey:following_user_id"`
	Followers     int
	FollowersList []*TwitterUser `gorm:"many2many:twitter_followers;association_jointable_foreignkey:followers_user_id"`

	// Usage stats
	Tweets     int
	Likes      int
	MediaCount int
}

TwitterUser holds the follow graph info, only relating userNames

func ConvertTwitterUser

func ConvertTwitterUser(raw *TwitterUserRaw) *TwitterUser

ConvertTwitterUser converts the raw TwitterUser structure from kafka into the database model

type TwitterUserRaw

type TwitterUserRaw struct {
	// Meta
	ID   string `json:"id"`
	URL  string `json:"url"`
	Type string `json:"type"`

	// User info
	Name            string `json:"name"`
	Username        string `json:"username"`
	Bio             string `json:"bio"`
	Avatar          string `json:"avatar"`
	BackgroundImage string `json:"background_image"`

	// Profile stats
	Location   string `json:"location"`
	JoinDate   string `json:"join_date"`
	JoinTime   string `json:"join_time"`
	IsPrivate  int    `json:"is_private"`
	IsVerified int    `json:"is_verified"`

	// Follows
	Following     int      `json:"following"`
	FollowingList []string `json:"following_list"`
	Followers     int      `json:"followers"`
	FollowersList []string `json:"followers_list"`

	// Usage stats
	Tweets     int `json:"tweets"`
	Likes      int `json:"likes"`
	MediaCount int `json:"media_count"`
}

TwitterUserRaw holds the follow graph info, only relating userNames

Jump to

Keyboard shortcuts

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