Initial commit
This commit is contained in:
		
							
								
								
									
										58
									
								
								discordnotifier/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								discordnotifier/__init__.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
			
		||||
import discord, boto3, configparser, os, sys
 | 
			
		||||
 | 
			
		||||
version = "0.0.0"
 | 
			
		||||
 | 
			
		||||
# Get token at: https://discord.com/developers/applications/
 | 
			
		||||
config = configparser.ConfigParser()
 | 
			
		||||
config_path = "discord_config.ini"
 | 
			
		||||
 | 
			
		||||
if not os.path.exists(config_path):
 | 
			
		||||
    with open(config_path, "w") as file_writer:
 | 
			
		||||
        file_writer.write("""[discord]
 | 
			
		||||
        token = {PUT TOKEN HERE}
 | 
			
		||||
        ignore_user = {PUT USERNAME HERE}
 | 
			
		||||
        [aws]
 | 
			
		||||
        topic = {PUT TOPIC HERE}
 | 
			
		||||
        profile = default""".replace("    ",""))
 | 
			
		||||
    print(f"Please update '{config_path}'!")
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
config.read(config_path)
 | 
			
		||||
session = boto3.session.Session(profile_name=config["aws"]["profile"])
 | 
			
		||||
bot_token = config["discord"]["token"]
 | 
			
		||||
sns = session.resource('sns').Topic(config["aws"]["topic"])
 | 
			
		||||
if sns == None:
 | 
			
		||||
    print("SNS was configured poorly!")
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
class Notifier(discord.Client):
 | 
			
		||||
    async def on_ready(self):
 | 
			
		||||
        print(f"Logged in as {self.user}")
 | 
			
		||||
 | 
			
		||||
        guilds = ""
 | 
			
		||||
        for guild in self.guilds:
 | 
			
		||||
            guilds = guilds + ", " + str(guild)
 | 
			
		||||
        print(f"Watching servers: {guilds[2:]}")
 | 
			
		||||
 | 
			
		||||
    async def on_message(self, message):
 | 
			
		||||
        if "do you see me?" in message.content.lower():
 | 
			
		||||
            print(f"I see {message.author}")
 | 
			
		||||
            await message.channel.send(":eye: You have been seen! :eye:")
 | 
			
		||||
 | 
			
		||||
        if str(message.author) in [str(self.user), "The Genuine Wonder#2859"]:
 | 
			
		||||
            return
 | 
			
		||||
        
 | 
			
		||||
        # Format and print mesage
 | 
			
		||||
        formatted_message = f"<{message.author}> \"{message.content}\" from #{message.channel} on {message.guild}"
 | 
			
		||||
        print(formatted_message)
 | 
			
		||||
 | 
			
		||||
        # Send notification to SNS
 | 
			
		||||
        sns.publish(Message=formatted_message)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    client = Notifier()
 | 
			
		||||
    client.run(bot_token)
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
		Reference in New Issue
	
	Block a user