database

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2024 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultElderThreshold       = 100
	DefaultBonusRateForReferred = 0.2 //20%
	DefaultBonusForReferrer     = 100
	DefaultPointsForOneRound    = 100.0
)
View Source
const (
	DefaultFirestoreProjectID = "dessage"
	DefaultDatabaseID         = "dessage-release"
	DefaultDBTimeOut          = 10 * time.Second
	DBTableNJUser             = "ninja-user"
	DBTableTWUser             = "twitter-user"
	DBTableTWUserAccToken     = "twitter-user-access-token"
	DBTableTWUserAccTokenV2   = "twitter-user-access-token_v2"
	DBTableWeb3Bindings       = "web3-bindings"
	DBTableTweetsPosted       = "tweets-posted"
	DBTableTweetsStatus       = "tweets-payment-status"
	DBTableTweetsVoted        = "tweets-voted"
	DBTableTweetsSubStatus    = "vote-status"
	DBTableTweetsImages       = "raw_img"
	DBTableTweetsThumbImages  = "thumb_img"
	DBTableUserPoints         = "user_points"
)
View Source
const (
	MaxWinHistoryQuery = 40
	DBTableGameResult  = "lottery_game_round_info"
)

Variables

This section is empty.

Functions

func InitConf

func InitConf(c *FileStoreConf)

Types

type DbManager

type DbManager struct {
	// contains filtered or unexported fields
}

func DbInst

func DbInst() *DbManager

func (*DbManager) BindingWeb3ID

func (dm *DbManager) BindingWeb3ID(bindData *Web3Binding, twMeta *TWUserInfo) (*NinjaUsrInfo, error)

func (*DbManager) CheckKolElder

func (dm *DbManager) CheckKolElder()

func (*DbManager) DelUnpaidTweet

func (dm *DbManager) DelUnpaidTweet(createTime int64, addr string) error

func (*DbManager) GetRawImg

func (dm *DbManager) GetRawImg(hash string) (*TweetImgRaw, error)

func (*DbManager) GetThumbImg

func (dm *DbManager) GetThumbImg(hash string) (*TweetImgRaw, error)

func (*DbManager) GetTwAccessToken

func (dm *DbManager) GetTwAccessToken(twitterId string) (*TwUserAccessToken, error)

func (*DbManager) GetTwAccessTokenV2

func (dm *DbManager) GetTwAccessTokenV2(twitterId string) (*TwUserAccessTokenV2, error)

func (*DbManager) MostVotedKol

func (dm *DbManager) MostVotedKol(pageSize int, startID int64, vote bool) ([]*NinjaUsrInfo, error)

func (*DbManager) NjTweetDetails

func (dm *DbManager) NjTweetDetails(createAt int64) (*NinjaTweet, error)

func (*DbManager) NjTweetDetailsByHash

func (dm *DbManager) NjTweetDetailsByHash(tHash string) (*NinjaTweet, error)

func (*DbManager) NjUserSignIn

func (dm *DbManager) NjUserSignIn(ethAddr, referrerCode, referrerID string) *NinjaUsrInfo

func (*DbManager) PointsAtSnapshot

func (dm *DbManager) PointsAtSnapshot() float64

func (*DbManager) ProcSystemPoints

func (dm *DbManager) ProcSystemPoints(ethAddr string, call PointLogic)

func (*DbManager) QueryGameWinner

func (dm *DbManager) QueryGameWinner(web3id string) ([]*ethapi.GamInfoOnChain, error)

func (*DbManager) QueryMostVotedTweets

func (dm *DbManager) QueryMostVotedTweets(pageSize int, startID int64) ([]*NinjaTweet, error)

func (*DbManager) QueryNjUsrById

func (dm *DbManager) QueryNjUsrById(web3ID string) (*NinjaUsrInfo, error)

func (*DbManager) QueryNjUsrByReferrer

func (dm *DbManager) QueryNjUsrByReferrer(referrer string) (*NinjaUsrInfo, error)

func (*DbManager) QuerySystemPoints

func (dm *DbManager) QuerySystemPoints(web3ID string) (*SysPoints, error)

func (*DbManager) QueryTwUserByTweetHash

func (dm *DbManager) QueryTwUserByTweetHash(tHash string) (*TWUserInfo, error)

func (*DbManager) QueryTweetsByFilter

func (dm *DbManager) QueryTweetsByFilter(pageSize int, param *TweetQueryParam) ([]*NinjaTweet, error)

func (*DbManager) QueryVotedTweetIDByMe

func (dm *DbManager) QueryVotedTweetIDByMe(pageSize int, startID int64, voter string) ([]*TweetVotePersonalRecord, error)

func (*DbManager) RewardForOneRound

func (dm *DbManager) RewardForOneRound(snapPointSum float64) float64

func (*DbManager) SaveRawImg

func (dm *DbManager) SaveRawImg(hash, raw string) error

func (*DbManager) SaveThumbImg

func (dm *DbManager) SaveThumbImg(hash, raw string) error

func (*DbManager) SaveTwAccessToken

func (dm *DbManager) SaveTwAccessToken(token *TwUserAccessToken) error

func (*DbManager) SaveTwAccessTokenV2

func (dm *DbManager) SaveTwAccessTokenV2(token *TwUserAccessTokenV2) error

func (*DbManager) SaveTweet

func (dm *DbManager) SaveTweet(content *NinjaTweet) error

func (*DbManager) TwitterBasicInfo

func (dm *DbManager) TwitterBasicInfo(TID string) (*TWUserInfo, error)

func (*DbManager) UpdateBasicInfo

func (dm *DbManager) UpdateBasicInfo(twData *TWUserInfo) error

func (*DbManager) UpdatePointsForSingleBets

func (dm *DbManager) UpdatePointsForSingleBets(vote *TweetVoteAction, voter string)

func (*DbManager) UpdateTweetPaymentStatus

func (dm *DbManager) UpdateTweetPaymentStatus(status *TweetPaymentStatus, web3ID string) error

func (*DbManager) UpdateTweetVoteStatic

func (dm *DbManager) UpdateTweetVoteStatic(vote *TweetVoteAction, voter string) error

type FileStoreConf

type FileStoreConf struct {
	ProjectID               string  `json:"project_id"`
	DatabaseID              string  `json:"database_id"`
	KeyFilePath             string  `json:"key_file_path"`
	TweetsPageSize          int     `json:"tweets_page_size"`
	LocalRun                bool    `json:"local_run"`
	PointForPost            float64 `json:"point_for_post"`
	PointForVote            float64 `json:"point_for_vote"`
	PointForBeVote          float64 `json:"point_for_be_vote"`
	ElderNoFirstGot         int     `json:"elder_no_first_got"`
	BonusForReferer         float64 `json:"bonus_for_referer"`
	BonusRateForReferred    float64 `json:"bonus_rate_for_referred"`
	RewardPointsForOneRound float64 `json:"reward_points_for_one_round"`
}

func (*FileStoreConf) String

func (c *FileStoreConf) String() string

type NinjaTweet

type NinjaTweet struct {
	Txt           string     `json:"text" firestore:"text"`
	TxtList       []string   `json:"text_list"  firestore:"-"`
	ImageThumb    [][]string `json:"-"  firestore:"-"`
	ImageHash     [][]string `json:"-"  firestore:"-"`
	ImageRaw      [][]string `json:"-"  firestore:"-"`
	CreateAt      int64      `json:"create_time" firestore:"create_time"`
	Web3ID        string     `json:"web3_id" firestore:"web3_id"`
	TweetUsrId    string     `json:"twitter_id" firestore:"twitter_id"`
	TweetId       string     `json:"tweet_id,omitempty" firestore:"tweet_id"`
	Signature     string     `json:"signature,omitempty" firestore:"signature"`
	PrefixedHash  string     `json:"prefixed_hash" firestore:"prefixed_hash"`
	PaymentStatus TxStatus   `json:"payment_status" firestore:"payment_status"`
	VoteCount     int        `json:"vote_count" firestore:"vote_count"`
}

func (*NinjaTweet) IsValid

func (nt *NinjaTweet) IsValid() bool

func (*NinjaTweet) String

func (nt *NinjaTweet) String() string

type NinjaUsrInfo

type NinjaUsrInfo struct {
	Address      string `json:"address" firestore:"address"`
	EthAddr      string `json:"eth_addr" firestore:"eth_addr"`
	CreateAt     int64  `json:"create_at" firestore:"create_at"`
	SignInAt     int64  `json:"signIn_at" firestore:"signIn_at"`
	TwID         string `json:"tw_id" firestore:"tw_id"`
	UpdateAt     int64  `json:"update_at"`
	TweetCount   int    `json:"tweet_count" firestore:"tweet_count"`
	VoteCount    int    `json:"vote_count" firestore:"vote_count"`
	BeVotedCount int    `json:"be_voted_count" firestore:"be_voted_count"`
	IsElder      bool   `json:"is_elder" firestore:"is_elder"`
	ReferrerCode string `json:"referrer_code" firestore:"referrer_code"`
	SelfRefCode  string `json:"self_ref_code" firestore:"self_ref_code"`
}

func NJUsrInfoMust

func NJUsrInfoMust(data []byte) (*NinjaUsrInfo, error)

func (*NinjaUsrInfo) RawData

func (nu *NinjaUsrInfo) RawData() []byte

func (*NinjaUsrInfo) RefreshSession

func (nu *NinjaUsrInfo) RefreshSession()

func (*NinjaUsrInfo) String

func (nu *NinjaUsrInfo) String() string

type PointLogic

type PointLogic func(sp *SysPoints, isNew bool)

type SysPoints

type SysPoints struct {
	EthAddr        string  `json:"eth_addr" firestore:"eth_addr"`
	Points         float64 `json:"points"  firestore:"points"`
	SnapshotPoints float64 `json:"snapshot_points"  firestore:"snapshot_points"`
	BonusToWin     float64 `json:"bonus_to_win" firestore:"bonus_to_win"`
	ReferrerAddr   string  `json:"referrer_addr" firestore:"referrer_addr"`
	CurTotalPoints float64 `json:"cur_total_points"`
}

type TWUserInfo

type TWUserInfo struct {
	ID                   string `json:"id" firestore:"id"`
	Name                 string `json:"name" firestore:"name"`
	ScreenName           string `json:"username" firestore:"username"`
	Description          string `json:"description" firestore:"description"`
	ProfileImageUrlHttps string `json:"profile_image_url" firestore:"profile_image_url"`
	Verified             bool   `json:"verified"  firestore:"verified"`
}

func (*TWUserInfo) RawData

func (t *TWUserInfo) RawData() []byte

func (*TWUserInfo) String

func (t *TWUserInfo) String() string

type TwUserAccessToken

type TwUserAccessToken struct {
	OauthToken       string `json:"oauth_token" firestore:"oauth_token"`
	OauthTokenSecret string `json:"oauth_token_secret" firestore:"oauth_token_secret"`
	UserId           string `json:"user_id" firestore:"user_id"`
	ScreenName       string `json:"screen_name" firestore:"screen_name"`
}

func (*TwUserAccessToken) GetToken

func (ut *TwUserAccessToken) GetToken() *oauth1.Token

func (*TwUserAccessToken) String

func (ut *TwUserAccessToken) String() string

type TwUserAccessTokenV2

type TwUserAccessTokenV2 struct {
	UserId string `json:"user_id" firestore:"user_id"`
	*oauth2.Token
}

type TweetImgRaw

type TweetImgRaw struct {
	Raw  string `json:"raw" firestore:"raw"`
	Hash string `json:"hash" firestore:"hash"`
}

type TweetPaymentStatus

type TweetPaymentStatus struct {
	CreateTime int64    `json:"create_time" firestore:"create_time"`
	TxHash     string   `json:"tx_hash" firestore:"tx_hash"`
	Status     TxStatus `json:"status,omitempty"  firestore:"status"`
}

type TweetQueryParam

type TweetQueryParam struct {
	StartID  int64    `json:"start_id"`
	Web3ID   string   `json:"web3_id"`
	VotedIDs []int64  `json:"voted_ids"`
	HashArr  []string `json:"hash_arr"`
	IsOwner  bool     `json:"is_owner"`
}

func (*TweetQueryParam) String

func (p *TweetQueryParam) String() string

type TweetVoteAction

type TweetVoteAction struct {
	CreateTime      int64  `json:"create_time"`
	VoteCount       int    `json:"vote_count"`
	VoteForTheTweet int    `json:"user_vote_count"`
	Slogan          string `json:"slogan"`
	TxHash          string `json:"tx_hash"`
}

type TweetVotePersonalRecord

type TweetVotePersonalRecord struct {
	CreateTime    int64 `json:"create_time" firestore:"create_time"`
	FirstVoteTime int64 `json:"first_vote_time" firestore:"first_vote_time"`
	VoteCount     int   `json:"vote_count" firestore:"vote_count"`
}

type TweetsOfUser

type TweetsOfUser struct {
	Tweets map[string]struct{} `json:"tweets"  firestore:"tweets"`
}

type TxStatus

type TxStatus int8
const (
	TxStNotPay TxStatus = iota
	TxStPending
	TxStSuccess
	TxStFailed
)

func (TxStatus) String

func (ts TxStatus) String() string

type Web3Binding

type Web3Binding struct {
	TwitterID string `json:"twitter_id" firestore:"twitter_id"`
	EthAddr   string `json:"eth_addr" firestore:"eth_addr"`
	SignUpAt  int64  `json:"sign_up_at" firestore:"sign_up_at"`
	Signature string `json:"signature" firestore:"signature"`
}

Jump to

Keyboard shortcuts

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