Compare commits

..

No commits in common. "50513cf3cd7fe6844b5c670aed687c32019f63b7" and "afada3e9700e1824459fafdb48e372e05a1aed42" have entirely different histories.

84
main.go
View File

@ -60,8 +60,6 @@ func main() {
// Register messageCreate as a callback for the messageCreate events // Register messageCreate as a callback for the messageCreate events
dg.AddHandler(messageCreate) dg.AddHandler(messageCreate)
dg.AddHandler(message2Create)
// Open a websocket connection to Discord and begin listening // Open a websocket connection to Discord and begin listening
err = dg.Open() err = dg.Open()
if err != nil { if err != nil {
@ -116,62 +114,35 @@ func scrapeNews() string {
return html return html
} }
// Add a function to extract relevant tags from the HTML content // Function to scrape the webpage and send a message if the date matches
func extractTags(html string) []string { func sendNotifications(session *discordgo.Session, channelID string, html string) {
var tags []string // Parse the HTML content
doc, err := goquery.NewDocumentFromReader(strings.NewReader(html)) doc, err := goquery.NewDocumentFromReader(strings.NewReader(html))
if err != nil { if err != nil {
fmt.Println("Error parsing HTML:", err) fmt.Println("Error parsing HTML:", err)
return tags return
}
// Find and extract the date from the webpage
var foundDate bool
doc.Find("span.news-module-feed-item-details-date").Each(func(i int, s *goquery.Selection) {
dateString := strings.TrimSpace(s.Text())
fmt.Println("Found date:", dateString)
if dateString == time.Now().Format("January 2, 2006") {
foundDate = true
} }
// Find and extract tags with class name "news-module-feed-item-details-tag"
doc.Find("span.news-module-feed-item-details-tag").Each(func(i int, s *goquery.Selection) {
tag := strings.TrimSpace(s.Text())
tags = append(tags, tag)
}) })
return tags
}
// Define a map to associate each desired tag with its corresponding Discord channel ID // If today's date was found on the webpage, send a message to the Discord channel
var tagChannelMap = map[string]string{ if foundDate {
"Patch Notes": "556093419341086749", _, err := session.ChannelMessageSend(channelID, "Today's date was found on the Fallout news page!")
"Atomic Shop": "590581442392621067",
"News": "558335339018846228",
// Add more tags and corresponding channel IDs as needed
}
func sendNotifications(session *discordgo.Session, channelID string, html string) {
// Extract tags from the HTML content
tags := extractTags(html)
// Define today's date string
today := time.Now().Format("January 2, 2006")
// Iterate over extracted tags
for _, tag := range tags {
// Check if the tag is in the desired tags list
if tagChannelID, ok := tagChannelMap[tag]; ok {
// Check if today's date matches the tag
if tag == today {
// Send a message to the corresponding Discord channel
message := fmt.Sprintf("Today's date matches the tag '%s' on the Fallout news page!", tag)
_, err := session.ChannelMessageSend(tagChannelID, message)
if err != nil { if err != nil {
fmt.Printf("Error sending message to Discord channel %s: %s\n", tagChannelID, err) fmt.Println("Error sending message to Discord:", err)
continue return
} }
fmt.Println("Message sent to Discord channel:", tagChannelID) fmt.Println("Message sent to Discord channel")
} else { } else {
// Send a different message indicating the tag was found fmt.Println("Today's date not found on the Fallout news page")
message := fmt.Sprintf("Tag '%s' found on the Fallout news page, but it's not today's date.", tag)
_, err := session.ChannelMessageSend(tagChannelID, message)
if err != nil {
fmt.Printf("Error sending message to Discord channel %s: %s\n", tagChannelID, err)
continue
}
fmt.Println("Message sent to Discord channel:", tagChannelID)
}
}
} }
} }
@ -183,20 +154,7 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
} }
// If the message content is "!hello", respond with "Hello!" // If the message content is "!hello", respond with "Hello!"
if m.Content == "!hello1" { if m.Content == "!hello" {
_, _ = s.ChannelMessageSend(m.ChannelID, "Hello!") _, _ = s.ChannelMessageSend(m.ChannelID, "Hello!")
} }
} }
// This function will be called whenever a new message is created
func message2Create(s *discordgo.Session, m *discordgo.MessageCreate) {
// Ignore messages created by the bot itself
if m.Author.ID == s.State.User.ID {
return
}
// If the message content is "!hello", respond with "Hello!"
if m.Content == "!hello" {
_, _ = s.ChannelMessageSend(m.ChannelID, "You are SUCH a NERD")
}
}