diff --git a/colorspot.py b/colorspot.py old mode 100644 new mode 100755 index a35a3bc..0c7e1d1 --- a/colorspot.py +++ b/colorspot.py @@ -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 + + +