Add support for recurring events and add year to channel name (#3)
This commit is contained in:
		@ -95,3 +95,9 @@ func (discord *Discord) OnEventUpdate(handler func(*Discord, *core.Event)) {
 | 
			
		||||
		handler(discord, event)
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (discord *Discord) SetStatus(status string) {
 | 
			
		||||
	if err := discord.session.UpdateGameStatus(0, status); err != nil {
 | 
			
		||||
		log.Fatal("Failed to update status: ", err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,8 @@
 | 
			
		||||
package discord
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/bwmarrin/discordgo"
 | 
			
		||||
	"github.com/yeslayla/birdbot/core"
 | 
			
		||||
)
 | 
			
		||||
@ -8,12 +10,21 @@ import (
 | 
			
		||||
// NewEvent converts a discordgo.GuildScheduledEvent to birdbot event
 | 
			
		||||
func NewEvent(guildEvent *discordgo.GuildScheduledEvent) *core.Event {
 | 
			
		||||
	event := &core.Event{
 | 
			
		||||
		Name: guildEvent.Name,
 | 
			
		||||
		ID:   guildEvent.ID,
 | 
			
		||||
		Name:        guildEvent.Name,
 | 
			
		||||
		Description: guildEvent.Description,
 | 
			
		||||
		ID:          guildEvent.ID,
 | 
			
		||||
		Organizer: &core.User{
 | 
			
		||||
			ID: guildEvent.CreatorID,
 | 
			
		||||
		},
 | 
			
		||||
		DateTime: guildEvent.ScheduledStartTime,
 | 
			
		||||
		Image:    guildEvent.Image,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if guildEvent.ScheduledEndTime != nil {
 | 
			
		||||
		event.CompleteTime = *guildEvent.ScheduledEndTime
 | 
			
		||||
	} else {
 | 
			
		||||
		year, month, day := guildEvent.ScheduledStartTime.Date()
 | 
			
		||||
		event.CompleteTime = time.Date(year, month, day, 0, 0, 0, 0, guildEvent.ScheduledStartTime.Location())
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	event.Completed = guildEvent.Status == discordgo.GuildScheduledEventStatusCompleted
 | 
			
		||||
@ -26,3 +37,26 @@ func NewEvent(guildEvent *discordgo.GuildScheduledEvent) *core.Event {
 | 
			
		||||
 | 
			
		||||
	return event
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (discord *Discord) CreateEvent(event *core.Event) error {
 | 
			
		||||
 | 
			
		||||
	params := &discordgo.GuildScheduledEventParams{
 | 
			
		||||
		Name:               event.Name,
 | 
			
		||||
		Description:        event.Description,
 | 
			
		||||
		ScheduledStartTime: &event.DateTime,
 | 
			
		||||
		ScheduledEndTime:   &event.CompleteTime,
 | 
			
		||||
		Image:              event.Image,
 | 
			
		||||
		EntityType:         discordgo.GuildScheduledEventEntityTypeExternal,
 | 
			
		||||
		PrivacyLevel:       discordgo.GuildScheduledEventPrivacyLevelGuildOnly,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if event.Location != "" {
 | 
			
		||||
		params.EntityMetadata = &discordgo.GuildScheduledEventEntityMetadata{
 | 
			
		||||
			Location: event.Location,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err := discord.session.GuildScheduledEventCreate(discord.guildID, params)
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user