Add guild info to data
This commit is contained in:
		
							parent
							
								
									19b69dc548
								
							
						
					
					
						commit
						1f13dffd54
					
				
					 4 changed files with 3266 additions and 7 deletions
				
			
		|  | @ -6,9 +6,12 @@ from enum import Enum | ||||||
| 
 | 
 | ||||||
| DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") | DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") | ||||||
| PB_TOKEN = os.getenv("PB_TOKEN") | PB_TOKEN = os.getenv("PB_TOKEN") | ||||||
|  | PB_URL = os.getenv("PB_TOKEN") | ||||||
|  | PB_COLLECTION = os.getenv("PB_TOKEN") | ||||||
| 
 | 
 | ||||||
| if DISCORD_TOKEN is None or PB_TOKEN is None: | for env in [DISCORD_TOKEN, PB_TOKEN, PB_URL, PB_COLLECTION]: | ||||||
|     print("Missing Token") |     if env is None: | ||||||
|  |         print("Missing env var") | ||||||
|         quit() |         quit() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -45,11 +48,13 @@ class Member: | ||||||
| class Data: | class Data: | ||||||
|     member: dict |     member: dict | ||||||
|     channel: dict |     channel: dict | ||||||
|  |     guild: dict | ||||||
|     event: str |     event: str | ||||||
| 
 | 
 | ||||||
|     def __init__(self, member: dict, channel: dict, event: Events) -> None: |     def __init__(self, member: dict, channel: dict, guild: dict, event: Events) -> None: | ||||||
|         self.member = member |         self.member = member | ||||||
|         self.channel = channel |         self.channel = channel | ||||||
|  |         self.guild = guild | ||||||
|         self.event = event.value |         self.event = event.value | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -70,6 +75,7 @@ async def on_voice_state_update( | ||||||
| ): | ): | ||||||
|     member = {"id": user.id, "name": user.name.capitalize(), "avatar": user.avatar.url} |     member = {"id": user.id, "name": user.name.capitalize(), "avatar": user.avatar.url} | ||||||
|     channel = {} |     channel = {} | ||||||
|  |     guild = {} | ||||||
|     event = None |     event = None | ||||||
|     # User didn't connect or disconnect |     # User didn't connect or disconnect | ||||||
|     if before.channel is not None and after.channel is not None: |     if before.channel is not None and after.channel is not None: | ||||||
|  | @ -78,6 +84,11 @@ async def on_voice_state_update( | ||||||
|         if before.channel.id is not after.channel.id: |         if before.channel.id is not after.channel.id: | ||||||
|             event = Events("move") |             event = Events("move") | ||||||
|             channel = {"id": after.channel.id, "name": after.channel.name} |             channel = {"id": after.channel.id, "name": after.channel.name} | ||||||
|  |             guild = { | ||||||
|  |                 "id": after.channel.guild.id, | ||||||
|  |                 "name": after.channel.guild.name, | ||||||
|  |                 "icon": after.channel.guild.icon.url, | ||||||
|  |             } | ||||||
|         # User didn't move |         # User didn't move | ||||||
|         elif before.channel == after.channel: |         elif before.channel == after.channel: | ||||||
|             # User undeafen |             # User undeafen | ||||||
|  | @ -93,18 +104,33 @@ async def on_voice_state_update( | ||||||
|             elif not before.self_mute and after.self_mute: |             elif not before.self_mute and after.self_mute: | ||||||
|                 event = Events("mute") |                 event = Events("mute") | ||||||
|             channel = {"id": after.channel.id, "name": after.channel.name} |             channel = {"id": after.channel.id, "name": after.channel.name} | ||||||
|  |             guild = { | ||||||
|  |                 "id": after.channel.guild.id, | ||||||
|  |                 "name": after.channel.guild.name, | ||||||
|  |                 "icon": after.channel.guild.icon.url, | ||||||
|  |             } | ||||||
|     # User connected or disconnected |     # User connected or disconnected | ||||||
|     elif not before.channel or not after.channel: |     elif not before.channel or not after.channel: | ||||||
|         # User disconnected |         # User disconnected | ||||||
|         if before.channel and not after.channel: |         if before.channel and not after.channel: | ||||||
|             event = Events("leave") |             event = Events("leave") | ||||||
|             channel = {"id": before.channel.id, "name": before.channel.name} |             channel = {"id": before.channel.id, "name": before.channel.name} | ||||||
|  |             guild = { | ||||||
|  |                 "id": before.channel.guild.id, | ||||||
|  |                 "name": before.channel.guild.name, | ||||||
|  |                 "icon": before.channel.guild.icon.url, | ||||||
|  |             } | ||||||
|         # User connected |         # User connected | ||||||
|         elif not before.channel and after.channel: |         elif not before.channel and after.channel: | ||||||
|             event = Events("join") |             event = Events("join") | ||||||
|             channel = {"id": after.channel.id, "name": after.channel.name} |             channel = {"id": after.channel.id, "name": after.channel.name} | ||||||
|  |             guild = { | ||||||
|  |                 "id": after.channel.guild.id, | ||||||
|  |                 "name": after.channel.guild.name, | ||||||
|  |                 "icon": after.channel.guild.icon.url, | ||||||
|  |             } | ||||||
|     if channel and event: |     if channel and event: | ||||||
|         data = Data(member, channel, event) |         data = Data(member, channel, guild, event) | ||||||
|         r = requests.post( |         r = requests.post( | ||||||
|             f"https://{PB_URL}/api/collections/{PB_COLLECTION}/records", |             f"https://{PB_URL}/api/collections/{PB_COLLECTION}/records", | ||||||
|             json=data.__dict__, |             json=data.__dict__, | ||||||
|  |  | ||||||
|  | @ -14,5 +14,4 @@ | ||||||
|   containers."bot".startupCommand = config.processes.bot.exec; |   containers."bot".startupCommand = config.processes.bot.exec; | ||||||
|   containers."bot".registry = "docker://git.m3.fyi/metrik/"; |   containers."bot".registry = "docker://git.m3.fyi/metrik/"; | ||||||
|   containers."bot".enableLayerDeduplication = true; |   containers."bot".enableLayerDeduplication = true; | ||||||
|   #containers."processes".copyToRoot = null; |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,6 +2,6 @@ | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   languages.javascript.enable = true; |   languages.javascript.enable = true; | ||||||
|   languages.javascript.npm.enable = true; |   languages.javascript.pnpm.enable = true; | ||||||
|   languages.typescript.enable = true; |   languages.typescript.enable = true; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										3234
									
								
								src/frontend/pnpm-lock.yaml
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										3234
									
								
								src/frontend/pnpm-lock.yaml
									
										
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		
		Reference in a new issue