mirror of
				https://github.com/miaowware/qrm2.git
				synced 2025-10-31 11:20:19 -04:00 
			
		
		
		
	add command to display vanity callsign rules (#69)
* add command to display vanity callsign rules * store callsign info in a separate file for extensibility * Update callsign_info.py * Update callsign_info.py * fix gitignore, make pfx command extensible, fix US formatting
This commit is contained in:
		
							parent
							
								
									0b93e642d8
								
							
						
					
					
						commit
						f821a2e2f2
					
				| @ -13,6 +13,8 @@ from datetime import datetime | |||||||
| import discord | import discord | ||||||
| import discord.ext.commands as commands | import discord.ext.commands as commands | ||||||
| 
 | 
 | ||||||
|  | from resources import callsign_info | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class HamCog(commands.Cog): | class HamCog(commands.Cog): | ||||||
|     def __init__(self, bot: commands.Bot): |     def __init__(self, bot: commands.Bot): | ||||||
| @ -73,6 +75,33 @@ class HamCog(commands.Cog): | |||||||
|                              icon_url=str(ctx.author.avatar_url)) |                              icon_url=str(ctx.author.avatar_url)) | ||||||
|         await ctx.send(embed=embed) |         await ctx.send(embed=embed) | ||||||
| 
 | 
 | ||||||
|  |     @commands.command(name="vanities", aliases=["vanity", "pfx", "prefixes", "prefix"]) | ||||||
|  |     async def _vanity_prefixes(self, ctx: commands.Context, country: str = None): | ||||||
|  |         '''Lists valid prefixes for countries.''' | ||||||
|  |         if country is None: | ||||||
|  |             await ctx.send_help(ctx.command) | ||||||
|  |             return | ||||||
|  |         if country.lower() not in callsign_info.options: | ||||||
|  |             embed = discord.Embed(title=f'{country} not found!', | ||||||
|  |                                   description=f'Valid countries: {", ".join(callsign_info.options.keys())}', | ||||||
|  |                                   colour=self.gs.colours.bad, | ||||||
|  |                                   timestamp=datetime.utcnow()) | ||||||
|  |             embed.set_footer(text=ctx.author.name, | ||||||
|  |                              icon_url=str(ctx.author.avatar_url)) | ||||||
|  |             await ctx.send(embed=embed) | ||||||
|  |             return | ||||||
|  |         embed = discord.Embed(title=callsign_info.options[country.lower()][0], | ||||||
|  |                               description=callsign_info.options[country.lower()][1], | ||||||
|  |                               colour=self.gs.colours.good, | ||||||
|  |                               timestamp=datetime.utcnow()) | ||||||
|  |         embed.set_footer(text=ctx.author.name, | ||||||
|  |                          icon_url=str(ctx.author.avatar_url)) | ||||||
|  | 
 | ||||||
|  |         for name, val in callsign_info.options[country.lower()][2].items(): | ||||||
|  |             embed.add_field(name=name, value=val, inline=False) | ||||||
|  | 
 | ||||||
|  |         await ctx.send(embed=embed) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| def setup(bot: commands.Bot): | def setup(bot: commands.Bot): | ||||||
|     bot.add_cog(HamCog(bot)) |     bot.add_cog(HamCog(bot)) | ||||||
|  | |||||||
							
								
								
									
										57
									
								
								resources/callsign_info.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								resources/callsign_info.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | """ | ||||||
|  | Information about callsigns for the vanity prefixes command in hamcog. | ||||||
|  | --- | ||||||
|  | Copyright (C) 2019 Abigail Gold, 0x5c | ||||||
|  | 
 | ||||||
|  | This file is part of discord-qrmbot and is released under the terms of the GNU | ||||||
|  | General Public License, version 2. | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | from collections import OrderedDict | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | us_calls_title = "Valid US Vanity Callsigns" | ||||||
|  | us_calls_desc = ('#x# is the number of letters in the prefix and suffix of a callsign.' | ||||||
|  |                  'E.g., WY4RC would be a 2x2 callsign, with prefix WY and suffix RC.') | ||||||
|  | us_calls = OrderedDict([('**Group A** (Extra Only)', ('**Any:** K, N, W (1x2)\n' | ||||||
|  |                                                       '    AA-AL, KA-KZ, NA-NZ, WA-WZ (2x1)\n' | ||||||
|  |                                                       '    AA-AL (2x2)\n' | ||||||
|  |                                                       '*Except*\n' | ||||||
|  |                                                       '**Alaska:** AL, KL, NL, WL (2x1)\n' | ||||||
|  |                                                       '**Caribbean:** KP, NP, WP (2x1)\n' | ||||||
|  |                                                       '**Pacific:** AH, KH, NH, WH (2x1)')), | ||||||
|  |                         ('**Group B** (Advanced and Extra Only)', ('**Any:** K, N, W (1x2)\n' | ||||||
|  |                                                                    '    AA-AL, KA-KZ, NA-NZ, WA-WZ (2x1)\n' | ||||||
|  |                                                                    '    AA-AL (2x2)\n' | ||||||
|  |                                                                    '*Except*\n' | ||||||
|  |                                                                    '**Alaska:** AL, KL, NL, WL (2x1)\n' | ||||||
|  |                                                                    '**Caribbean:** KP, NP, WP (2x1)\n' | ||||||
|  |                                                                    '**Pacific:** AH, KH, NH, WH (2x1)')), | ||||||
|  |                         ('**Group C** (Technician, General, Advanced, Extra Only)', ('**Any Region:** K, N, W (1x3)\n' | ||||||
|  |                                                                                      '*Except*\n' | ||||||
|  |                                                                                      '**Alaska:** KL, NL, WL (2x2)\n' | ||||||
|  |                                                                                      '**Caribbean:** NP, WP (2x2)\n' | ||||||
|  |                                                                                      '**Pacific:** KH, NH, WH (2x2)')), | ||||||
|  |                         ('**Group D** (Any License Class)', ('**Any Region:** KA-KZ, WA-WZ (2x3)\n' | ||||||
|  |                                                              '*Except*\n' | ||||||
|  |                                                              '**Alaska:** KL, WL (2x3)\n' | ||||||
|  |                                                              '**Caribbean:** KP, WP (2x3)\n' | ||||||
|  |                                                              '**Pacific:** KH, WH (2x3)')), | ||||||
|  |                         ('**Unavailable**', ('- KA2AA-KA9ZZ: US Army in Japan\n' | ||||||
|  |                                              '- KC4AAA-KC4AAF: NSF in Antartica\n' | ||||||
|  |                                              '- KC4USA-KC4USZ: US Navy in Antartica\n' | ||||||
|  |                                              '- KG4AA-KG4ZZ: US Navy in Guantanamo Bay\n' | ||||||
|  |                                              '- KL9KAA-KL9KHZ: US military in Korea\n' | ||||||
|  |                                              '- KC6AA-KC6ZZ: Former US (Eastern and Western Caroline Islands), ' | ||||||
|  |                                              'now Federated States of Micronesia (V6) and Republic of Palau (T8)\n' | ||||||
|  |                                              '- KX6AA-KX6ZZ: Former US (Marshall Islands), ' | ||||||
|  |                                              'now Republic of the Marshall Islands (V73)\n' | ||||||
|  |                                              '- Any suffix SOS or QRA-QUZ\n' | ||||||
|  |                                              '- Any 2x3 with X as the first suffix letter\n' | ||||||
|  |                                              '- Any 2x3 with AF, KF, NF, or WF prefix and suffix EMA\n' | ||||||
|  |                                              '- Any 2x3 with AA-AL, NA-NZ, WC, WK, WM, WR, or WT prefix\n' | ||||||
|  |                                              '- Any 2x1, 2x2, or 2x3 with KP, NP, WP prefix and 0, 6, 7, 8, 9 number\n' | ||||||
|  |                                              '- Any 1x1 callsign'))]) | ||||||
|  | 
 | ||||||
|  | # format: country: (title, description, text) | ||||||
|  | options = {'us': (us_calls_title, us_calls_desc, us_calls)} | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user