Add ability to send the id of the channel the message is found in
This commit is contained in:
		@@ -5,6 +5,8 @@
 | 
				
			|||||||
  SERVER_ID = ""
 | 
					  SERVER_ID = ""
 | 
				
			||||||
  OUTPUT_CHANNEL_ID = ""
 | 
					  OUTPUT_CHANNEL_ID = ""
 | 
				
			||||||
  PREFIX_ENABLED = true
 | 
					  PREFIX_ENABLED = true
 | 
				
			||||||
 | 
					  SERVER_ID_ENABLED = false
 | 
				
			||||||
 | 
					  CHANNEL_ID_ENABLED = true
 | 
				
			||||||
  [SERVERS.COIN_REGEXES]
 | 
					  [SERVERS.COIN_REGEXES]
 | 
				
			||||||
    Bitcoin = "[13][a-km-zA-HJ-NP-Z1-9]{25,34}"
 | 
					    Bitcoin = "[13][a-km-zA-HJ-NP-Z1-9]{25,34}"
 | 
				
			||||||
    Ethereum = "0x[a-fA-F0-9]{40}"
 | 
					    Ethereum = "0x[a-fA-F0-9]{40}"
 | 
				
			||||||
@@ -15,6 +17,8 @@
 | 
				
			|||||||
  SERVER_ID = ""
 | 
					  SERVER_ID = ""
 | 
				
			||||||
  OUTPUT_CHANNEL_ID = ""
 | 
					  OUTPUT_CHANNEL_ID = ""
 | 
				
			||||||
  PREFIX_ENABLED = false 
 | 
					  PREFIX_ENABLED = false 
 | 
				
			||||||
 | 
					  SERVER_ID_ENABLED = false
 | 
				
			||||||
 | 
					  CHANNEL_ID_ENABLED = true
 | 
				
			||||||
  [SERVERS.COIN_REGEXES]
 | 
					  [SERVERS.COIN_REGEXES]
 | 
				
			||||||
    Ethereum = "0x[a-fA-F0-9]{40}"
 | 
					    Ethereum = "0x[a-fA-F0-9]{40}"
 | 
				
			||||||
    Solana = "[1-9A-HJ-NP-Za-km-z]{32,44}"
 | 
					    Solana = "[1-9A-HJ-NP-Za-km-z]{32,44}"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								main.go
									
									
									
									
									
								
							@@ -28,6 +28,7 @@ type ServerConfig struct {
 | 
				
			|||||||
	PrefixEnabled   bool `toml:"PREFIX_ENABLED"`
 | 
						PrefixEnabled   bool `toml:"PREFIX_ENABLED"`
 | 
				
			||||||
	AllowDuplicates bool `toml:"ALLOW_DUPLICATES"`
 | 
						AllowDuplicates bool `toml:"ALLOW_DUPLICATES"`
 | 
				
			||||||
	ServerIDEnabled bool `toml:"SERVER_ID_ENABLED"`
 | 
						ServerIDEnabled bool `toml:"SERVER_ID_ENABLED"`
 | 
				
			||||||
 | 
						ChannelIDEnabled bool `toml:"CHANNEL_ID_ENABLED"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
@@ -127,7 +128,7 @@ func checkMessageContent(s *discordgo.Session, server ServerConfig, m *discordgo
 | 
				
			|||||||
		match := regex.FindStringSubmatch(m.Content)
 | 
							match := regex.FindStringSubmatch(m.Content)
 | 
				
			||||||
		if len(match) > 0 {
 | 
							if len(match) > 0 {
 | 
				
			||||||
			matchedAddress := match[0]
 | 
								matchedAddress := match[0]
 | 
				
			||||||
			message := formatMessage(server, coin, m.Author.Username, matchedAddress, serverName)
 | 
								message := formatMessage(server, coin, m.Author.Username, matchedAddress, serverName, m)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if !server.AllowDuplicates && MessageHistory[server.ServerID].ContainsItem(message) {
 | 
								if !server.AllowDuplicates && MessageHistory[server.ServerID].ContainsItem(message) {
 | 
				
			||||||
				return 
 | 
									return 
 | 
				
			||||||
@@ -146,7 +147,7 @@ func checkEmbeds(s *discordgo.Session, server ServerConfig, m *discordgo.Message
 | 
				
			|||||||
				match := regex.FindStringSubmatch(embed.Description)
 | 
									match := regex.FindStringSubmatch(embed.Description)
 | 
				
			||||||
				if len(match) > 0 {
 | 
									if len(match) > 0 {
 | 
				
			||||||
					matchedAddress := match[0]
 | 
										matchedAddress := match[0]
 | 
				
			||||||
					message := formatMessage(server, coin, m.Author.Username, matchedAddress, serverName)
 | 
										message := formatMessage(server, coin, m.Author.Username, matchedAddress, serverName, m)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if !server.AllowDuplicates && MessageHistory[server.ServerID].ContainsItem(message) {
 | 
										if !server.AllowDuplicates && MessageHistory[server.ServerID].ContainsItem(message) {
 | 
				
			||||||
						return 
 | 
											return 
 | 
				
			||||||
@@ -160,7 +161,7 @@ func checkEmbeds(s *discordgo.Session, server ServerConfig, m *discordgo.Message
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func formatMessage(server ServerConfig, coin, username, address, serverName string) string {
 | 
					func formatMessage(server ServerConfig, coin, username, address, serverName string, m *discordgo.MessageCreate) string {
 | 
				
			||||||
	message := address
 | 
						message := address
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if server.PrefixEnabled {
 | 
						if server.PrefixEnabled {
 | 
				
			||||||
@@ -171,6 +172,10 @@ func formatMessage(server ServerConfig, coin, username, address, serverName stri
 | 
				
			|||||||
		message = fmt.Sprintf("%s (Server: %s)", message, serverName)
 | 
							message = fmt.Sprintf("%s (Server: %s)", message, serverName)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if server.ChannelIDEnabled {
 | 
				
			||||||
 | 
							message = fmt.Sprintf("%s (From: <#%s>)", message, m.ChannelID)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return message
 | 
						return message
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user