reminderscheduler

package
v0.0.0-...-3abce5f Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2023 License: BSD-3-Clause, MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EventReminders

type EventReminders struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Events

func NewEventReminders

func NewEventReminders() *EventReminders

func (*EventReminders) AddReminderMessageToEvent

func (r *EventReminders) AddReminderMessageToEvent(msg *ReminderMessage)

func (*EventReminders) ExistsEvent

func (r *EventReminders) ExistsEvent(eventID string) bool

func (*EventReminders) ForEachReminderMessageInEvent

func (r *EventReminders) ForEachReminderMessageInEvent(
	eventID string,
	callback func(msg *ReminderMessage),
)

func (*EventReminders) RemoveEvent

func (r *EventReminders) RemoveEvent(eventID string)

func (*EventReminders) RemoveReminderMessageFromEvent

func (r *EventReminders) RemoveReminderMessageFromEvent(msg *ReminderMessage)

type MinuteReminders

type MinuteReminders struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Minutes

func NewMinuteReminders

func NewMinuteReminders() *MinuteReminders

func (*MinuteReminders) AddReminderMessageToMinute

func (r *MinuteReminders) AddReminderMessageToMinute(duration time.Duration, msg *ReminderMessage)

func (*MinuteReminders) ForEachReminderMessageInMinute

func (r *MinuteReminders) ForEachReminderMessageInMinute(
	timestamp ReminderTimestamp,
	callback func(msg *ReminderMessage),
)

func (*MinuteReminders) RemoveMinute

func (r *MinuteReminders) RemoveMinute(timestamp ReminderTimestamp)

func (*MinuteReminders) RemoveReminderMessageFromAllMinutes

func (r *MinuteReminders) RemoveReminderMessageFromAllMinutes(msg *ReminderMessage)

func (*MinuteReminders) RemoveReminderMessageFromMinute

func (r *MinuteReminders) RemoveReminderMessageFromMinute(msg *ReminderMessage, duration time.Duration)

type ReminderMessage

type ReminderMessage struct {
	sync.Mutex

	EventID      string
	EventSummary string

	KeybaseUsername string
	AccountNickname string
	CalendarID      string
	KeybaseConvID   chat1.ConvIDStr

	StartTime  time.Time
	MsgContent string

	SubscriptionReminder *list.Element
	EventReminder        *list.Element
	MinuteReminders      map[time.Duration]*list.Element
}

type ReminderScheduler

type ReminderScheduler struct {
	*base.DebugOutput
	sync.Mutex
	// contains filtered or unexported fields
}

func NewReminderScheduler

func NewReminderScheduler(
	stats *base.StatsRegistry,
	debugConfig *base.ChatDebugOutputConfig,
	db *gcalbot.DB,
	oauth *oauth2.Config,
) *ReminderScheduler

func (*ReminderScheduler) AddSubscription

func (r *ReminderScheduler) AddSubscription(account *gcalbot.Account, subscription gcalbot.Subscription)

func (*ReminderScheduler) RemoveSubscription

func (r *ReminderScheduler) RemoveSubscription(account *gcalbot.Account, subscription gcalbot.Subscription)

func (*ReminderScheduler) Run

func (r *ReminderScheduler) Run() (err error)

func (*ReminderScheduler) Shutdown

func (r *ReminderScheduler) Shutdown() (err error)

func (*ReminderScheduler) UpdateOrCreateReminderEvent

func (r *ReminderScheduler) UpdateOrCreateReminderEvent(
	account *gcalbot.Account,
	subscription *gcalbot.Subscription,
	event *calendar.Event,
) error

type ReminderTimestamp

type ReminderTimestamp string

type SubscriptionKey

type SubscriptionKey string

Subscriptions

type SubscriptionReminders

type SubscriptionReminders struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewSubscriptionReminders

func NewSubscriptionReminders() *SubscriptionReminders

func (*SubscriptionReminders) AddReminderMessageToSubscription

func (r *SubscriptionReminders) AddReminderMessageToSubscription(msg *ReminderMessage)

func (*SubscriptionReminders) ForEachReminderMessageInSubscription

func (r *SubscriptionReminders) ForEachReminderMessageInSubscription(
	keybaseUsername, accountNickname, calendarID string,
	keybaseConvID chat1.ConvIDStr,
	callback func(msg *ReminderMessage, removeReminderMessageFromSubscription func()),
)

func (*SubscriptionReminders) RemoveReminderMessageFromSubscription

func (r *SubscriptionReminders) RemoveReminderMessageFromSubscription(msg *ReminderMessage)

Jump to

Keyboard shortcuts

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