giveaway

package
v0.0.0-...-2b93282 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsRunning

func IsRunning(owner user.User) (bool, error)

IsRunning checks if there exists at least one active giveaway for a user

func YieldGiveawayByMatch

func YieldGiveawayByMatch(match bson.M, limit int64) (giveaways chan Giveaways)

func YieldRepliesByMatch

func YieldRepliesByMatch(match bson.M, limit int64) (replies chan Replies)

Types

type Giveaway

type Giveaway struct {
	ID           primitive.ObjectID `json:"id" bson:"_id,omitempty"`
	Author       user.User          `json:"author"`
	Active       bool               `json:"active" bson:"active"`
	Replies      []typing.Reply     `json:"replies" bson:"replies"`
	Winners      []string           `json:"winners" bson:"winners"`
	TotalReplies int                `json:"total_replies" bson:"total_replies"`
	Completed    bool               `json:"completed" bson:"completed"`
	Tweet        string             `json:"tweet" bson:"tweet"`
	TweetID      string             `json:"tweet_id" bson:"tweet_id"`
	TwitterURL   string             `json:"twitter_url" bson:"twitter_url"`
	TwitterHTML  string             `json:"twitter_html" bson:"twitter_html"`
	Rewarded     bool               `json:"rewarded" bson:"rewarded"`
	ReportTweet  string             `json:"report_tweet" bson:"report_tweet"`
	WinnersTweet []string           `json:"winners_tweet" bson:"winners_tweet"`
	AmountSpent  float64            `json:"amount_spent" bson:"amount_spent"`
	CreatedAt    time.Time          `json:"created_at" bson:"created_at"`
	UpdatedAt    time.Time          `json:"updated_at" bson:"updated_at"`
	CompletedAt  time.Time          `json:"completed_at" bson:"completed_at"`
}

func Running

func Running(owner user.User) (*Giveaway, error)

Running finds the active giveaway for a user

func (*Giveaway) ClearReplies

func (g *Giveaway) ClearReplies() error

ClearReplies clears replies for a giveaway

func (*Giveaway) Close

func (g *Giveaway) Close() error

Close closes a giveaway by marking as completed and rewarding

func (*Giveaway) Complete

func (g *Giveaway) Complete() error

Complete marks a giveaway as completed

func (*Giveaway) Create

func (r *Giveaway) Create() error

Create inserts a new giveaway into the database

func (*Giveaway) Delete

func (g *Giveaway) Delete() error

Delete deletes a giveaway

func (*Giveaway) EmbedTweet

func (g *Giveaway) EmbedTweet() error

EmbedTweet embeds a tweet in the giveaway

func (*Giveaway) Find

func (g *Giveaway) Find() error

Find finds a giveaway by id

func (*Giveaway) FindByTweet

func (g *Giveaway) FindByTweet() error

FindByTweet finds a giveaway by tweet id

func (*Giveaway) InboxForReward

func (g *Giveaway) InboxForReward(user user.User)

InboxForReward sends a message to the giveaway winners

func (*Giveaway) ReplyInBatch

func (g *Giveaway) ReplyInBatch() error

ReplyInBatch saves replies in batch

func (*Giveaway) Replyies

func (g *Giveaway) Replyies() error

Replies returns all replies for a giveaway

func (*Giveaway) Reward

func (g *Giveaway) Reward() error

Reward marks a giveaway as rewarded

func (*Giveaway) Save

func (g *Giveaway) Save() error

Save updates the giveaway in database

func (*Giveaway) SaveReply

func (g *Giveaway) SaveReply(reply *typing.Reply) error

SaveReply saves the given giveaway reply

type Giveaways

type Giveaways []Giveaway

func (*Giveaways) FindGiveawaysByMatch

func (g *Giveaways) FindGiveawaysByMatch(match bson.M, limit, offset int64) error

FindGiveawaysByMatch finds giveaways by match

func (*Giveaways) FindUserGiveaways

func (g *Giveaways) FindUserGiveaways(user user.User, limit, offset, direction int64) error

FindUserGiveaways finds all giveaways for a user

type Replies

type Replies []typing.Reply

func (*Replies) FindRepliesByMatch

func (r *Replies) FindRepliesByMatch(match bson.M, limit, offset int64) error

FindRepliesByMatch finds giveaways by match

type Report

type Report struct {
	TotalReplies      int               `json:"total_replies"`
	TotalDuplicates   int               `json:"total_duplicates"`
	DuplicateReplies  map[string]string `json:"duplicate_replies"`
	TotalValidReplies int               `json:"total_valid_replies"`
	ValidReplies      map[string]string `json:"valid_replies"`
	ValidRepliesList  []string          `json:"valid_replies_list"`
}

Jump to

Keyboard shortcuts

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