added colored line by continent

added own country list
added continent to table
This commit is contained in:
Michael Clemens 2022-05-19 14:15:19 +02:00
parent f1153a4c87
commit 0eff320419
1 changed files with 696 additions and 23 deletions

719
colorspot.py Normal file → Executable file
View File

@ -1,11 +1,14 @@
#!/usr/bin/env python3
import sys
import csv
import re
import json
import os
import time as bla
from telnetlib import Telnet
from colored import fg, bg, attr
import configparser
from collections import defaultdict
class ColorSpot():
@ -16,13 +19,10 @@ class ColorSpot():
self.config_file = os.path.expanduser('~/.colorspot.ini')
self.read_config(self.config, self.config_file)
self.country_data = {}
#TODO: download file and/or tell user what to do
with open('cty.json', "r") as json_file:
self.country_data = json.load(json_file)
self.qsl_countries = self.get_confirmed_countries()
@staticmethod
def read_config(config, file_name):
"""reads the configuration from the config file or
@ -34,9 +34,9 @@ class ColorSpot():
config['cluster'] = {
'host': 'dxc.nc7j.com',
'port': '7373',
'user': 'N0CALL',
'timeout': '100'}
config['colors'] = {
'use_colors': 'yes',
config['band_colors'] = {
"145": "white",
"144": "white",
"50": "white",
@ -54,6 +54,670 @@ class ColorSpot():
'alert_bg': 'indian_red_1a',
'alert_fg': 'white',
'default_bg': 'black'}
config['cont_colors'] = {
"AF": "dark_orange_3b",
"AN": "white",
"AS": "red",
"EU": "cyan",
"NA": "steel_blue_3",
"OC": "orchid",
"SA": "light_goldenrod_2a"}
config['colors']= {
'use_colors': 'yes',
'color_by' : 'continent',
'alert_bg': 'indian_red_1a',
'alert_fg': 'white',
'default_bg': 'black'}
config['aliases'] = {
'fed. rep. of germany': 'federal republic of germany'}
config['dxcc'] = {
"1A": "Sov. Mil. Order of Malta,EU",
"3A": "Monaco,EU",
"3B6": "Agalega & St. Brandon Is.,AF",
"3B7": "Agalega & St. Brandon Is.,AF",
"3B8": "Mauritius,AF",
"3B9": "Rodriguez I.,AF",
"3C": "Equatorial Guinea,AF",
"3C0": "Annobon I.,AF",
"3D2": "Fiji,OC",
"3D2": "Conway Reef,OC",
"3D2": "Rotuma I.,OC",
"3DA": "Swaziland,AF",
"3V": "Tunisia,AF",
"3W": "Viet Nam,AS",
"XV": "Viet Nam,AS",
"3X": "Guinea,AF",
"3Y": "Bouvet,AF",
"3Y": "Peter I I.,AN",
"4J": "Azerbaijan,AS",
"4K": "Azerbaijan,AS",
"4L": "Georgia,AS",
"4O": "Montenegro,EU",
"4S": "Sri Lanka,AS",
"4U_ITU": "ITU HQ,EU",
"4U_UN": "United Nations HQ,NA",
"4W": "Timor - Leste,OC",
"4X": "Israel,AS",
"4Z": "Israel,AS",
"5A": "Libya,AF",
"5B": "Cyprus,AS",
"C4": "Cyprus,AS",
"P3": "Cyprus,AS",
"5H": "Tanzania,AF",
"5I": "Tanzania,AF",
"5N": "Nigeria,AF",
"5R": "Madagascar,AF",
"5T": "Mauritania,AF",
"5U": "Niger,AF",
"5V": "Togo,AF",
"5W": "Samoa,OC",
"5X": "Uganda,AF",
"5Y": "Kenya,AF",
"5Z": "Kenya,AF",
"6V": "Senegal,AF",
"6W": "Senegal,AF",
"6Y": "Jamaica,NA",
"7O": "Yemen,AS",
"7P": "Lesotho,AF",
"7Q": "Malawi,AF",
"7T": "Algeria,AF",
"7U": "Algeria,AF",
"7V": "Algeria,AF",
"7W": "Algeria,AF",
"7X": "Algeria,AF",
"7Y": "Algeria,AF",
"8P": "Barbados,NA",
"8Q": "Maldives,AF",
"8R": "Guyana,SA",
"9A": "Croatia,EU",
"9G": "Ghana,AF",
"9H": "Malta,EU",
"9I": "Zambia,AF",
"9J": "Zambia,AF",
"9K": "Kuwait,AS",
"9L": "Sierra Leone,AF",
"9M2": "West Malaysia,AS",
"9M4": "West Malaysia,AS",
"9M6": "East Malaysia,OC",
"9M8": "East Malaysia,OC",
"9N": "Nepal,AS",
"9Q": "Dem. Rep. of Congo,AF",
"9R": "Dem. Rep. of Congo,AF",
"9S": "Dem. Rep. of Congo,AF",
"9T": "Dem. Rep. of Congo,AF",
"9U": "Burundi,AF",
"9V": "Singapore,AS",
"9X": "Rwanda,AF",
"9Y": "Trinidad & Tobago,SA",
"9Z": "Trinidad & Tobago,SA",
"A2": "Botswana,AF",
"A3": "Tonga,OC",
"A4": "Oman,AS",
"A5": "Bhutan,AS",
"A6": "United Arab Emirates,AS",
"A7": "Qatar,AS",
"A9": "Bahrain,AS",
"AP": "Pakistan,AS",
"B": "China,AS",
"BS7": "Scarborough Reef,AS",
"BV": "Taiwan,AS",
"BV9P": "Pratas I.,AS",
"C2": "Nauru,OC",
"C3": "Andorra,EU",
"C5": "The Gambia,AF",
"C6": "Bahamas,NA",
"C8": "Mozambique,AF",
"C9": "Mozambique,AF",
"CA": "Chile,SA",
"CB": "Chile,SA",
"CC": "Chile,SA",
"CD": "Chile,SA",
"CE": "Chile,SA",
"CE0": "Easter I.,SA",
"CE0": "Juan Fernandez Is.,SA",
"CE0": "San Felix & San Ambrosio,SA",
"CE9": "Antarctica,AN",
"KC4": "Antarctica,AN",
"3Y": "Antarctica,AN",
"8j1": "Antarctica,AN",
"AT0": "Antarctica,AN",
"DP0": "Antarctica,AN",
"VK0": "Antarctica,AN",
"VP8": "Antarctica,AN",
"R1AW": "Antarctica,AN",
"CM": "Cuba,NA",
"CO": "Cuba,NA",
"CN": "Morocco,AF",
"CP": "Bolivia,SA",
"CT": "Portugal,EU",
"CT3": "Madeira Is.,AF",
"CU": "Azores,EU",
"CV": "Uruguay,SA",
"CW": "Uruguay,SA",
"CX": "Uruguay,SA",
"CY0": "Sable I.,NA",
"CY9": "St. Paul I.,NA",
"D2": "Angola,AF",
"D3": "Angola,AF",
"D4": "Cape Verde,AF",
"D6": "Comoros,AF",
"DA": "Federal Republic of Germany,EU",
"DB": "Federal Republic of Germany,EU",
"DC": "Federal Republic of Germany,EU",
"DD": "Federal Republic of Germany,EU",
"DE": "Federal Republic of Germany,EU",
"DF": "Federal Republic of Germany,EU",
"DG": "Federal Republic of Germany,EU",
"DH": "Federal Republic of Germany,EU",
"DI": "Federal Republic of Germany,EU",
"DJ": "Federal Republic of Germany,EU",
"DK": "Federal Republic of Germany,EU",
"DL": "Federal Republic of Germany,EU",
"DM": "Federal Republic of Germany,EU",
"DN": "Federal Republic of Germany,EU",
"DO": "Federal Republic of Germany,EU",
"DP": "Federal Republic of Germany,EU",
"DQ": "Federal Republic of Germany,EU",
"DR": "Federal Republic of Germany,EU",
"DU": "Philippines,OC",
"DV": "Philippines,OC",
"DW": "Philippines,OC",
"DX": "Philippines,OC",
"DY": "Philippines,OC",
"DZ": "Philippines,OC",
"E3": "Eritrea,AF",
"E4": "Palestine,AS",
"E5": "N. Cook Is.,OC",
"E5": "S. Cook Is.,OC",
"E7": "Bosnia-Herzegovina,EU",
"EA": "Spain,EU",
"EB": "Spain,EU",
"EC": "Spain,EU",
"ED": "Spain,EU",
"EE": "Spain,EU",
"EF": "Spain,EU",
"EG": "Spain,EU",
"EH": "Spain,EU",
"EA6": "Balearic Is.,EU",
"EB6": "Balearic Is.,EU",
"EC6": "Balearic Is.,EU",
"ED6": "Balearic Is.,EU",
"EE6": "Balearic Is.,EU",
"EF6": "Balearic Is.,EU",
"EG6": "Balearic Is.,EU",
"EH6": "Balearic Is.,EU",
"EA8": "Canary Is.,AF",
"EB8": "Canary Is.,AF",
"EC8": "Canary Is.,AF",
"ED8": "Canary Is.,AF",
"EE8": "Canary Is.,AF",
"EF8": "Canary Is.,AF",
"EG8": "Canary Is.,AF",
"EH8": "Canary Is.,AF",
"EA9": "Ceuta & Melilla,AF",
"EB9": "Ceuta & Melilla,AF",
"EC9": "Ceuta & Melilla,AF",
"ED9": "Ceuta & Melilla,AF",
"EE9": "Ceuta & Melilla,AF",
"EF9": "Ceuta & Melilla,AF",
"EG9": "Ceuta & Melilla,AF",
"EH9": "Ceuta & Melilla,AF",
"EI": "Ireland,EU",
"EJ": "Ireland,EU",
"EK": "Armenia,AS",
"EL": "Liberia,AF",
"EP": "Iran,AS",
"EQ": "Iran,AS",
"ER": "Moldova,EU",
"ES": "Estonia,EU",
"ET": "Ethiopia,AF",
"EU": "Belarus,EU",
"EV": "Belarus,EU",
"EW": "Belarus,EU",
"EX": "Kyrgyzstan,AS",
"EY": "Tajikistan,AS",
"EZ": "Turkmenistan,AS",
"F": "France,EU",
"FG": "Guadeloupe,NA",
"FH": "Mayotte,AF",
"FJ": "Saint Barthelemy,NA",
"FK": "New Caledonia,OC",
"FK": "Chesterfield Is.,OC",
"FM": "Martinique,NA",
"FO": "Austral I.,OC",
"FO": "Clipperton I.,NA",
"FO": "French Polynesia,OC",
"FO": "Marquesas Is.,OC",
"FP": "St. Pierre & Miquelon,NA",
"FR/G": "Glorioso Is.,AF",
"FR/J": "Juan de Nova, Europa,AF",
"FR/E": "Juan de Nova, Europa,AF",
"FR": "Reunion I.,AF",
"FR/T": "Tromelin I.,AF",
"FS": "Saint Martin,NA",
"FT/W": "Crozet I.,AF",
"FT/X": "Kerguelen Is.,AF",
"FT/Z": "Amsterdam & St. Paul Is.,AF",
"FW": "Wallis & Futuna Is.,OC",
"FY": "French Guiana,SA",
"G": "England,EU",
"GX": "England,EU",
"M": "England,EU",
"GD": "Isle of Man,EU",
"GT": "Isle of Man,EU",
"GI": "Northern Ireland,EU",
"GN": "Northern Ireland,EU",
"GJ": "Jersey,EU",
"GH": "Jersey,EU",
"GM": "Scotland,EU",
"GS": "Scotland,EU",
"GU": "Guernsey,EU",
"GP": "Guernsey,EU",
"GW": "Wales,EU",
"GC": "Wales,EU",
"H4": "Solomon Is.,OC",
"H40": "Temotu Province,OC",
"HA": "Hungary,EU",
"HG": "Hungary,EU",
"HB": "Switzerland,EU",
"HB0": "Liechtenstein,EU",
"HC": "Ecuador,SA",
"HD": "Ecuador,SA",
"HC8": "Galapagos Is.,SA",
"HD8": "Galapagos Is.,SA",
"HH": "Haiti,NA",
"HI": "Dominican Republic,NA",
"HJ": "Colombia,SA",
"HK": "Colombia,SA",
"5J": "Colombia,SA",
"5K": "Colombia,SA",
"HK0": "Malpelo I.,SA",
"HK0": "San Andres & Providencia,NA",
"HL": "Republic of Korea,AS",
"6K": "Republic of Korea,AS",
"6N": "Republic of Korea,AS",
"HO": "Panama,NA",
"HP": "Panama,NA",
"HQ": "Honduras,NA",
"HR": "Honduras,NA",
"HS": "Thailand,AS",
"E2": "Thailand,AS",
"HV": "Vatican,EU",
"HZ": "Saudi Arabia,AS",
"I": "Italy,EU",
"IS0": "Sardinia,EU",
"IM0": "Sardinia,EU",
"J2": "Djibouti,AF",
"J3": "Grenada,NA",
"J5": "Guinea-Bissau,AF",
"J6": "St. Lucia,NA",
"J7": "Dominica,NA",
"J8": "St. Vincent,NA",
"JA": "Japan,AS",
"JB": "Japan,AS",
"JC": "Japan,AS",
"JD": "Japan,AS",
"JE": "Japan,AS",
"JF": "Japan,AS",
"JG": "Japan,AS",
"JH": "Japan,AS",
"JI": "Japan,AS",
"JJ": "Japan,AS",
"JK": "Japan,AS",
"JL": "Japan,AS",
"JM": "Japan,AS",
"JN": "Japan,AS",
"JO": "Japan,AS",
"JP": "Japan,AS",
"JQ": "Japan,AS",
"JR": "Japan,AS",
"JS": "Japan,AS",
"7J": "Japan,AS",
"7K": "Japan,AS",
"7L": "Japan,AS",
"7M": "Japan,AS",
"7N": "Japan,AS",
"JD1": "Minami Torishima,OC",
"JD1": "Ogasawara,AS",
"JT": "Mongolia,AS",
"JU": "Mongolia,AS",
"JV": "Mongolia,AS",
"JW": "Svalbard,EU",
"JX": "Jan Mayen,EU",
"JY": "Jordan,AS",
"K": "United States of America,NA",
"W": "United States of America,NA",
"N": "United States of America,NA",
"AA": "United States of America,NA",
"AB": "United States of America,NA",
"AC": "United States of America,NA",
"AD": "United States of America,NA",
"AE": "United States of America,NA",
"AF": "United States of America,NA",
"AG": "United States of America,NA",
"AH": "United States of America,NA",
"AI": "United States of America,NA",
"AJ": "United States of America,NA",
"AK": "United States of America,NA",
"KG4": "Guantanamo Bay,NA",
"KH0": "Mariana Is.,OC",
"KH1": "Baker & Howland Is.,OC",
"KH2": "Guam,OC",
"KH3": "Johnston I.,OC",
"KH4": "Midway I.,OC",
"KH5": "Palmyra & Jarvis Is.,OC",
"KH5K": "Kingman Reef,OC",
"KH6": "Hawaii,OC",
"KH7": "Hawaii,OC",
"KH7K": "Kure I.,OC",
"KH8": "American Samoa,OC",
"KH8": "Swains I.,OC",
"KH9": "Wake I.,OC",
"KL": "Alaska,NA",
"AL": "Alaska,NA",
"NL": "Alaska,NA",
"WL": "Alaska,NA",
"KP1": "Navassa I.,NA",
"KP2": "Virgin Is.,NA",
"KP3": "Puerto Rico,NA",
"KP4": "Puerto Rico,NA",
"KP5": "Desecheo I.,NA",
"LA": "Norway,EU",
"LB": "Norway,EU",
"LC": "Norway,EU",
"LD": "Norway,EU",
"LE": "Norway,EU",
"LF": "Norway,EU",
"LG": "Norway,EU",
"LH": "Norway,EU",
"LI": "Norway,EU",
"LJ": "Norway,EU",
"LK": "Norway,EU",
"LL": "Norway,EU",
"LM": "Norway,EU",
"LN": "Norway,EU",
"LO": "Argentina,SA",
"LP": "Argentina,SA",
"LQ": "Argentina,SA",
"LR": "Argentina,SA",
"LS": "Argentina,SA",
"LT": "Argentina,SA",
"LU": "Argentina,SA",
"LV": "Argentina,SA",
"LW": "Argentina,SA",
"LX": "Luxembourg,EU",
"LY": "Lithuania,EU",
"LZ": "Bulgaria,EU",
"OA": "Peru,SA",
"OB": "Peru,SA",
"OC": "Peru,SA",
"OD": "Lebanon,AS",
"OE": "Austria,EU",
"OF": "Finland,EU",
"OG": "Finland,EU",
"OH": "Finland,EU",
"OI": "Finland,EU",
"OH0": "Aland Is.,EU",
"OJ0": "Market Reef,EU",
"OK": "Czech Republic,EU",
"OL": "Czech Republic,EU",
"OM": "Slovak Republic,EU",
"ON": "Belgium,EU",
"OO": "Belgium,EU",
"OP": "Belgium,EU",
"OQ": "Belgium,EU",
"OR": "Belgium,EU",
"OS": "Belgium,EU",
"OT": "Belgium,EU",
"OU": "Denmark,EU",
"OV": "Denmark,EU",
"OW": "Denmark,EU",
"OZ": "Denmark,EU",
"OX": "Greenland,NA",
"OY": "Faroe Is.,EU",
"P2": "Papua New Guinea,OC",
"P4": "Aruba,SA",
"P5": "DPR of Korea,AS",
"PA": "Netherlands,EU",
"PB": "Netherlands,EU",
"PC": "Netherlands,EU",
"PD": "Netherlands,EU",
"PE": "Netherlands,EU",
"PF": "Netherlands,EU",
"PG": "Netherlands,EU",
"PH": "Netherlands,EU",
"PI": "Netherlands,EU",
"PJ2": "Bonaire, Curacao,SA",
"PJ4": "Bonaire, Curacao,SA",
"PJ9": "Bonaire, Curacao,SA",
"PJ5": "St. Maarten, Saba, St.Eustatius,NA",
"PJ6": "St. Maarten, Saba, St.Eustatius,NA",
"PJ7": "St. Maarten, Saba, St.Eustatius,NA",
"PJ8": "St. Maarten, Saba, St.Eustatius,NA",
"PP": "Brazil,SA",
"PQ": "Brazil,SA",
"PR": "Brazil,SA",
"PS": "Brazil,SA",
"PT": "Brazil,SA",
"PU": "Brazil,SA",
"PV": "Brazil,SA",
"PW": "Brazil,SA",
"PX": "Brazil,SA",
"PY": "Brazil,SA",
"PP0-PY0F": "Fernando de Noronha,SA",
"PP0-PY0S": "St. Peter & St. Paul Rocks,SA",
"PP0-PY0T": "Trindade & Martim Vaz Is.,SA",
"PZ": "Suriname,SA",
"R1FJ": "Franz Josef Land,EU",
"R1MV": "Malyj Vysotskij I.,EU",
"S0": "Western Sahara,AF",
"S2": "Bangladesh,AS",
"S5": "Slovenia,EU",
"S7": "Seychelles,AF",
"S9": "Sao Tome & Principe,AF",
"SA": "Sweden,EU",
"SB": "Sweden,EU",
"SC": "Sweden,EU",
"SD": "Sweden,EU",
"SE": "Sweden,EU",
"SF": "Sweden,EU",
"SG": "Sweden,EU",
"SH": "Sweden,EU",
"SI": "Sweden,EU",
"SJ": "Sweden,EU",
"SK": "Sweden,EU",
"SL": "Sweden,EU",
"SM": "Sweden,EU",
"SN": "Poland,EU",
"SO": "Poland,EU",
"SP": "Poland,EU",
"SQ": "Poland,EU",
"SR": "Poland,EU",
"ST": "Sudan,AF",
"SU": "Egypt,AF",
"SV": "Greece,EU",
"SW": "Greece,EU",
"SX": "Greece,EU",
"SY": "Greece,EU",
"SZ": "Greece,EU",
"J4": "Greece,EU",
"SV/A": "Mount Athos,EU",
"SV5": "Dodecanese,EU",
"J45": "Dodecanese,EU",
"SV9": "Crete,EU",
"J49": "Crete,EU",
"T2": "Tuvalu,OC",
"T30": "W. Kiribati,OC",
"T31": "C. Kiribati (British Phoenix Is.),OC",
"T32": "E. Kiribati,OC",
"T33": "Banaba I.,OC",
"T5": "Somalia,AF",
"6O": "Somalia,AF",
"T7": "San Marino,EU",
"T8": "Palau,OC",
"TA": "Turkey,EU",
"TB": "Turkey,EU",
"TC": "Turkey,EU",
"TF": "Iceland,EU",
"TG": "Guatemala,NA",
"TD": "Guatemala,NA",
"TI": "Costa Rica,NA",
"TE": "Costa Rica,NA",
"TI9": "Cocos I.,NA",
"TJ": "Cameroon,AF",
"TK": "Corsica,EU",
"TL": "Central Africa,AF",
"TN": "???,AF",
"TR": "Gabon,AF",
"TT": "Chad,AF",
"TU": "Cote d Ivoire,AF",
"TY": "Benin,AF",
"TZ": "Mali,AF",
"UA": "Russia,EU",
"UB": "Russia,EU",
"UC": "Russia,EU",
"UD": "Russia,EU",
"UE": "Russia,EU",
"UF": "Russia,EU",
"UG": "Russia,EU",
"UH": "Russia,EU",
"UI": "Russia,EU",
"R": "Russia,EU",
"UA2": "Kaliningrad,EU",
"UJ": "Uzbekistan,AS",
"UK": "Uzbekistan,AS",
"UL": "Uzbekistan,AS",
"UM": "Uzbekistan,AS",
"UN": "Kazakhstan,AS",
"UO": "Kazakhstan,AS",
"UP": "Kazakhstan,AS",
"UQ": "Kazakhstan,AS",
"UR": "Ukraine,EU",
"US": "Ukraine,EU",
"UT": "Ukraine,EU",
"UU": "Ukraine,EU",
"UV": "Ukraine,EU",
"UW": "Ukraine,EU",
"UX": "Ukraine,EU",
"UY": "Ukraine,EU",
"UZ": "Ukraine,EU",
"EM": "Ukraine,EU",
"EN": "Ukraine,EU",
"EO": "Ukraine,EU",
"V2": "Antigua & Barbuda,NA",
"V3": "Belize,NA",
"V4": "St. Kitts & Nevis,NA",
"V5": "Namibia,AF",
"V6": "Micronesia,OC",
"V7": "Marshall Is.,OC",
"V8": "Brunei Darussalam,OC",
"VE": "Canada,NA",
"VO": "Canada,NA",
"VY": "Canada,NA",
"VK": "Australia,OC",
"VK0": "Heard I.,AF",
"VK0": "Macquarie I.,OC",
"VK9C": "Cocos Is.,OC",
"VK9L": "Lord Howe I.,OC",
"VK9M": "Mellish Reef,OC",
"VK9N": "Norfolk I.,OC",
"VK9W": "Willis I.,OC",
"VK9X": "Christmas I.,OC",
"VP2E": "Anguilla,NA",
"VP2M": "Montserrat,NA",
"VP2V": "British Virgin Is.,NA",
"VP5": "Turks & Caicos Is.,NA",
"VP6": "Pitcairn I.,OC",
"VP6": "Ducie I.,OC",
"VP8": "Falkland Is.,SA",
"VP8": "South Shetland Is.,SA",
"CE9": "South Shetland Is.,SA",
"HF0": "South Shetland Is.,SA",
"4K1": "South Shetland Is.,SA",
"VP9": "Bermuda,NA",
"VQ9": "Chagos Is.,AF",
"VR": "Hong Kong,AS",
"VU": "India,AS",
"VU4": "Andaman & Nicobar Is.,AS",
"VU7": "Lakshadweep Is.,AS",
"XA": "Mexico,NA",
"XB": "Mexico,NA",
"XC": "Mexico,NA",
"XD": "Mexico,NA",
"XE": "Mexico,NA",
"XF": "Mexico,NA",
"XG": "Mexico,NA",
"XH": "Mexico,NA",
"XI": "Mexico,NA",
"XA4": "Revillagigedo,NA",
"XB4": "Revillagigedo,NA",
"XC4": "Revillagigedo,NA",
"XD4": "Revillagigedo,NA",
"XE4": "Revillagigedo,NA",
"XF4": "Revillagigedo,NA",
"XG4": "Revillagigedo,NA",
"XH4": "Revillagigedo,NA",
"XI4": "Revillagigedo,NA",
"XT": "Burkina Faso,AF",
"XU": "Cambodia,AS",
"XW": "Laos,AS",
"XX9": "Macao,AS",
"XY": "Myanmar,AS",
"XZ": "Myanmar,AS",
"YA": "Afghanistan,AS",
"YB": "Indonesia,OC",
"YC": "Indonesia,OC",
"YD": "Indonesia,OC",
"YE": "Indonesia,OC",
"YF": "Indonesia,OC",
"YG": "Indonesia,OC",
"YH": "Indonesia,OC",
"YI": "Iraq,AS",
"YJ": "Vanuatu,OC",
"YK": "Syria,AS",
"YL": "Latvia,EU",
"YN": "Nicaragua,NA",
"H6": "Nicaragua,NA",
"H7": "Nicaragua,NA",
"HT": "Nicaragua,NA",
"YO": "Romania,EU",
"YP": "Romania,EU",
"YQ": "Romania,EU",
"YR": "Romania,EU",
"YS": "El Salvador,NA",
"HU": "El Salvador,NA",
"YT": "Serbia,EU",
"YU": "Serbia,EU",
"YV": "Venezuela,SA",
"YW": "Venezuela,SA",
"YX": "Venezuela,SA",
"YY": "Venezuela,SA",
"4M": "Venezuela,SA",
"YV0": "Aves I.,NA",
"Z2": "Zimbabwe,AF",
"Z3": "Macedonia,EU",
"ZA": "Albania,EU",
"ZB2": "Gibraltar,EU",
"ZC4": "UK Sov. Base Areas on Cyprus,AS",
"ZD7": "St. Helena,AF",
"ZD8": "Ascension I.,AF",
"ZD9": "Tristan da Cunha & Gough I.,AF",
"ZF": "Cayman Is.,NA",
"ZK2": "Niue,OC",
"ZK3": "Tokelau Is.,OC",
"ZL": "New Zealand,OC",
"ZM": "New Zealand,OC",
"ZL7": "Chatham Is.,OC",
"ZL8": "Kermadec Is.,OC",
"ZL9": "Auckland & Campbell Is.,OC",
"ZP": "Paraguay,SA",
"ZR": "South Africa,AF",
"ZS": "South Africa,AF",
"ZT": "South Africa,AF",
"ZU": "South Africa,AF",
"ZS8": "Prince Edward & Marion Is.,AF"
}
with open(file_name, 'w') as configfile:
config.write(configfile)
print("\nNo configuration file found. A new configuration file has been created.")
@ -61,8 +725,7 @@ class ColorSpot():
sys.exit()
return config
@staticmethod
def get_confirmed_countries():
def get_confirmed_countries(self):
ret = []
#TODO: download file and/or tell user what to do
file = open("lotwreport.adi", "r")
@ -86,14 +749,14 @@ class ColorSpot():
return ret
@staticmethod
def get_country(call, data):
def get_call_details(call, data):
done = False
while not done:
for number in data:
for country in data[number]:
if call == country["prefix"]:
return country["areaname"]
if call in data:
return data[call].split(',')
call = call[:-1]
if call == "":
return ["-", "-"]
return None
def get_spots(self):
@ -113,33 +776,40 @@ class ColorSpot():
call_dx = re.search(freq + ' +(.+?) ', line).group(1)
time = re.search('[^ ]*$', line).group(0)[0:4]
comment = re.search(call_dx + ' +(.+?) +' + time, line).group(1)
areaname = self.get_country(call_dx, self.country_data)
#areaname = self.get_country(call_dx, self.dxcc)
call_details = self.get_call_details(call_dx, self.config['dxcc'])
areaname = call_details[0]
continent = call_details[1]
lotw_date = self.check_lotw(call_dx)
lotw = ""
if lotw_date:
lotw = "[LotW] "
try:
band_col = self.config['colors'][freq[:-5]]
if self.config['colors']['color_by'] == "band":
foreground = self.config['band_colors'][freq[:-5]]
elif self.config['colors']['color_by'] == "continent":
foreground = self.config['cont_colors'][continent]
else:
foreground = "white"
except Exception:
band_col = "white"
foreground = "white"
freq = freq.replace('.0', '')
if areaname.lower() not in self.qsl_countries:
background = self.config['colors']['alert_bg']
band_col = self.config['colors']['alert_fg']
foreground = self.config['colors']['alert_fg']
else:
background = self.config['colors']['default_bg']
sep = fg("grey_27")+'|'+fg(band_col)
sep = fg("grey_27")+'|'+fg(foreground)
row = [call_de, sep, freq, sep, call_dx, \
sep, areaname, sep, lotw + comment, sep, time]
sep, areaname, sep, continent, sep, lotw + comment, sep, time]
print(bg(background) + fg(band_col) + \
'{:9.9} {:<1} {:>7.7} {:<1} {:<10.10} {:<1} {:<16.16} {:<1} {:<30.30} {:<1} {:<4.4}'.format(*row) + attr("reset"))
print(bg(background) + fg(foreground) + \
'{:9.9} {:<1} {:>7.7} {:<1} {:<10.10} {:<1} {:<16.16} {:<1} {:<2.2} {:<1} {:<30.30} {:<1} {:<4.4}'.format(*row) + attr("reset"))
except AttributeError:
print(line)
@ -159,3 +829,6 @@ if __name__ == "__main__":
sys.exit(main())
except EOFError:
pass