rating

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChannelInfoFetcher

type ChannelInfoFetcher interface {
	FetchMemeLink(memeID string, channelID string) string
	FetchMember(memberID MemberID) Member
}

func NewSlackLinkFetcher

func NewSlackLinkFetcher(client *socketmode.Client, logger zerolog.Logger) ChannelInfoFetcher

type Connection

type Connection struct {
	*sql.DB
	Close func()
}

func NewConnection

func NewConnection(dbPath string, logger zerolog.Logger) (Connection, error)

type LoggedScanner

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

func (LoggedScanner) Scan

func (l LoggedScanner) Scan(channelID string) ([]Meme, []Member, error)

type Member

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

func NewMember

func NewMember(ID MemberID, fullName string, displayName string) Member

type MemberID

type MemberID string

func NewMemberID

func NewMemberID(value string) MemberID

type MemberStorage

type MemberStorage interface {
	Get(id MemberID) (Member, error)
	Save(members ...Member) error
}

func NewSqliteMemberStorage

func NewSqliteMemberStorage(connection Connection, logger zerolog.Logger) (MemberStorage, error)

type Meme

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

func NewMeme

func NewMeme(id string, channelID string, from MemberID, reactions Reactions, timestamp string, link string) Meme

func (Meme) Rate

func (m Meme) Rate(score int) Meme

func (Meme) Underrate

func (m Meme) Underrate(score int) Meme

type MemeScanner

type MemeScanner interface {
	Scan(channelID string) ([]Meme, []Member, error)
}

func NewSlackMemeScanner

func NewSlackMemeScanner(client *socketmode.Client, channelInfoFetcher ChannelInfoFetcher, logger zerolog.Logger) MemeScanner

type MemeStorage

type MemeStorage interface {
	Get(id string) (Meme, error)
	Save(memes ...Meme) error
}

func NewSqliteMemeStorage

func NewSqliteMemeStorage(connection Connection, logger zerolog.Logger) (MemeStorage, error)

type PeriodPreset

type PeriodPreset uint8
const (
	TopDay PeriodPreset = iota
	TopWeek
	TopMonth
	TopEver
)

func (PeriodPreset) MakeFromAndTo

func (p PeriodPreset) MakeFromAndTo(now time.Time) (time.Time, time.Time)

type Reaction

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

func NewReaction

func NewReaction(reaction string, count int) Reaction

func (Reaction) Score

func (r Reaction) Score() int

func (Reaction) String

func (r Reaction) String() string

type Reactions

type Reactions []Reaction

func NewReactions

func NewReactions(reactions []Reaction) Reactions

func (Reactions) Score

func (r Reactions) Score() int

type SQLiteMemberStorage

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

func (SQLiteMemberStorage) Get

func (SQLiteMemberStorage) Save

func (s SQLiteMemberStorage) Save(members ...Member) error

type SQLiteMemeStorage

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

func (SQLiteMemeStorage) Get

func (s SQLiteMemeStorage) Get(id string) (Meme, error)

func (SQLiteMemeStorage) Save

func (s SQLiteMemeStorage) Save(memes ...Meme) error

type SQLiteTopMemeFetcher

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

func (SQLiteTopMemeFetcher) FetchTopAuthors

func (s SQLiteTopMemeFetcher) FetchTopAuthors(criterion TopCriterion) ([]TopAuthorView, error)

func (SQLiteTopMemeFetcher) FetchTopMemes

func (s SQLiteTopMemeFetcher) FetchTopMemes(criterion TopCriterion) ([]TopMemeView, error)

type SlackLinkFetcher

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

func (SlackLinkFetcher) FetchMember

func (s SlackLinkFetcher) FetchMember(memberID MemberID) Member
func (s SlackLinkFetcher) FetchMemeLink(memeID string, channelID string) string

type SlackMemeScanner

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

func (SlackMemeScanner) Scan

func (s SlackMemeScanner) Scan(channelID string) ([]Meme, []Member, error)

type TopAuthorView

type TopAuthorView struct {
	MemberFullName string
	Score          int
}

type TopAuthorsTemplate

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

func NewTopAuthorsTemplate

func NewTopAuthorsTemplate(authors []TopAuthorView, period PeriodPreset) TopAuthorsTemplate

func (TopAuthorsTemplate) String

func (t TopAuthorsTemplate) String() string

type TopCriterion

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

func NewTopMemeCriterion

func NewTopMemeCriterion(from time.Time, to time.Time, channelID string, limit int) TopCriterion

type TopFetcher

type TopFetcher interface {
	FetchTopMemes(criterion TopCriterion) ([]TopMemeView, error)
	FetchTopAuthors(criterion TopCriterion) ([]TopAuthorView, error)
}

func NewSQLiteTopFetcher

func NewSQLiteTopFetcher(connection Connection, logger zerolog.Logger) TopFetcher

type TopMemeView

type TopMemeView struct {
	Link           string
	MemberFullName string
	Score          int
}

type TopMemesTemplate

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

func NewTopMemesTemplate

func NewTopMemesTemplate(memes []TopMemeView, period PeriodPreset) TopMemesTemplate

func (TopMemesTemplate) String

func (t TopMemesTemplate) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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