not1mm 24.12.5__py3-none-any.whl → 24.12.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- not1mm/__main__.py +22 -11
- not1mm/lib/plugin_common.py +2 -4
- not1mm/lib/version.py +1 -1
- not1mm/plugins/arrl_160m.py +98 -14
- {not1mm-24.12.5.dist-info → not1mm-24.12.5.1.dist-info}/METADATA +3 -1
- {not1mm-24.12.5.dist-info → not1mm-24.12.5.1.dist-info}/RECORD +10 -10
- {not1mm-24.12.5.dist-info → not1mm-24.12.5.1.dist-info}/LICENSE +0 -0
- {not1mm-24.12.5.dist-info → not1mm-24.12.5.1.dist-info}/WHEEL +0 -0
- {not1mm-24.12.5.dist-info → not1mm-24.12.5.1.dist-info}/entry_points.txt +0 -0
- {not1mm-24.12.5.dist-info → not1mm-24.12.5.1.dist-info}/top_level.txt +0 -0
not1mm/__main__.py
CHANGED
@@ -611,7 +611,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
611
611
|
logger.debug(f"{QT_VERSION_STR=} {PYQT_VERSION_STR=}")
|
612
612
|
x = PYQT_VERSION_STR.split(".")
|
613
613
|
old_Qt = True
|
614
|
-
# test if pyqt version is at least 6.
|
614
|
+
# test if pyqt version is at least 6.8
|
615
615
|
if len(x) == 1:
|
616
616
|
if int(x[0]) > 6:
|
617
617
|
old_Qt = False
|
@@ -619,7 +619,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
619
619
|
if int(x[0]) >= 6 and int(x[1]) >= 8:
|
620
620
|
old_Qt = False
|
621
621
|
|
622
|
-
# Featureset for wayland if pyqt is older that 6.
|
622
|
+
# Featureset for wayland if pyqt is older that 6.8
|
623
623
|
dockfeatures = (
|
624
624
|
QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable
|
625
625
|
| QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable
|
@@ -1606,6 +1606,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1606
1606
|
self.set_window_title()
|
1607
1607
|
if self.rig_control:
|
1608
1608
|
self.rig_control.set_mode(self.radio_state.get("mode"))
|
1609
|
+
self.update_rtc_xml()
|
1609
1610
|
except ModuleNotFoundError:
|
1610
1611
|
self.pref["contest"] = 1
|
1611
1612
|
self.show_message_box("Contest plugin not found")
|
@@ -2464,10 +2465,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2464
2465
|
self.worked_list = self.database.get_calls_and_bands()
|
2465
2466
|
self.send_worked_list()
|
2466
2467
|
self.clearinputs()
|
2467
|
-
|
2468
|
-
if hasattr(self.contest, "online_score_xml"):
|
2469
|
-
if self.rtc_service is not None:
|
2470
|
-
self.rtc_service.xml = self.contest.online_score_xml(self)
|
2468
|
+
self.update_rtc_xml()
|
2471
2469
|
cmd = {}
|
2472
2470
|
cmd["cmd"] = "UPDATELOG"
|
2473
2471
|
if self.log_window:
|
@@ -2475,6 +2473,17 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2475
2473
|
if self.check_window:
|
2476
2474
|
self.check_window.msg_from_main(cmd)
|
2477
2475
|
|
2476
|
+
def update_rtc_xml(self):
|
2477
|
+
"""Update RTC XML"""
|
2478
|
+
print("update the xml")
|
2479
|
+
if self.pref.get("send_rtc_scores", False):
|
2480
|
+
if self.contest is None:
|
2481
|
+
return
|
2482
|
+
if hasattr(self.contest, "online_score_xml"):
|
2483
|
+
if self.rtc_service is not None:
|
2484
|
+
self.rtc_service.xml = self.contest.online_score_xml(self)
|
2485
|
+
print(f"{self.rtc_service.xml=}")
|
2486
|
+
|
2478
2487
|
def new_contest_dialog(self) -> None:
|
2479
2488
|
"""
|
2480
2489
|
Show new contest dialog.
|
@@ -2919,6 +2928,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2919
2928
|
|
2920
2929
|
self.rtc_service = None
|
2921
2930
|
|
2931
|
+
self.send_rtc_scores = self.pref.get("send_rtc_scores", False)
|
2932
|
+
self.rtc_url = self.pref.get("rtc_url", "")
|
2933
|
+
self.rtc_user = self.pref.get("rtc_user", "")
|
2934
|
+
self.rtc_pass = self.pref.get("rtc_pass", "")
|
2935
|
+
self.rtc_interval = self.pref.get("rtc_interval", 2)
|
2936
|
+
|
2922
2937
|
if self.pref.get("send_rtc_scores", False):
|
2923
2938
|
self.rtc_service = RTCService()
|
2924
2939
|
self.rtc_service.moveToThread(self.rtc_thread)
|
@@ -3075,11 +3090,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3075
3090
|
self.esm_dict["MYCALL"] = fkey_dict.get(self.pref.get("esm_mycall", "DISABLED"))
|
3076
3091
|
self.esm_dict["QSOB4"] = fkey_dict.get(self.pref.get("esm_qsob4", "DISABLED"))
|
3077
3092
|
|
3078
|
-
self.
|
3079
|
-
self.rtc_url = self.pref.get("rtc_url", "")
|
3080
|
-
self.rtc_user = self.pref.get("rtc_user", "")
|
3081
|
-
self.rtc_pass = self.pref.get("rtc_pass", "")
|
3082
|
-
self.rtc_interval = self.pref.get("rtc_interval", 2)
|
3093
|
+
self.update_rtc_xml()
|
3083
3094
|
|
3084
3095
|
def dark_mode_state_changed(self) -> None:
|
3085
3096
|
"""Called when the Dark Mode menu state is changed."""
|
not1mm/lib/plugin_common.py
CHANGED
@@ -73,11 +73,9 @@ def gen_adif(self, cabrillo_name: str, contest_id=""):
|
|
73
73
|
"""
|
74
74
|
now = datetime.datetime.now()
|
75
75
|
date_time = now.strftime("%Y-%m-%d_%H-%M-%S")
|
76
|
-
station_callsign = self.station.get(
|
76
|
+
station_callsign = self.station.get("Call", "").upper()
|
77
77
|
filename = (
|
78
|
-
str(Path.home())
|
79
|
-
+ "/"
|
80
|
-
+ f"{station_callsign}_{cabrillo_name}_{date_time}.adi"
|
78
|
+
str(Path.home()) + "/" + f"{station_callsign}_{cabrillo_name}_{date_time}.adi"
|
81
79
|
)
|
82
80
|
log = self.database.fetch_all_contacts_asc()
|
83
81
|
try:
|
not1mm/lib/version.py
CHANGED
not1mm/plugins/arrl_160m.py
CHANGED
@@ -10,7 +10,7 @@ from pathlib import Path
|
|
10
10
|
|
11
11
|
from PyQt6 import QtWidgets
|
12
12
|
|
13
|
-
from not1mm.lib.plugin_common import gen_adif
|
13
|
+
from not1mm.lib.plugin_common import gen_adif, get_points, online_score_xml
|
14
14
|
from not1mm.lib.version import __version__
|
15
15
|
|
16
16
|
logger = logging.getLogger(__name__)
|
@@ -123,7 +123,48 @@ def points(self):
|
|
123
123
|
|
124
124
|
# Both in same country
|
125
125
|
|
126
|
-
|
126
|
+
# 2.1.1 Alaska (KL7 – AK) and Hawaii (KH6 – PAC), the Caribbean US possessions (KP1-KP5 -
|
127
|
+
# PR or VI), and all of the Pacific Ocean territories (KHØ-KH9 – PAC) participate as W/VE stations
|
128
|
+
# and count as ARRL sections.
|
129
|
+
if mypfx in [
|
130
|
+
"K",
|
131
|
+
"KL",
|
132
|
+
"KH0",
|
133
|
+
"KH1",
|
134
|
+
"KH2",
|
135
|
+
"KH3",
|
136
|
+
"KH4",
|
137
|
+
"KH5",
|
138
|
+
"KH6",
|
139
|
+
"KH7",
|
140
|
+
"KH8",
|
141
|
+
"KH9",
|
142
|
+
"KP1",
|
143
|
+
"KP2",
|
144
|
+
"KP3",
|
145
|
+
"KP4",
|
146
|
+
"KP5",
|
147
|
+
"VE",
|
148
|
+
] and pfx in [
|
149
|
+
"K",
|
150
|
+
"KL",
|
151
|
+
"KH0",
|
152
|
+
"KH1",
|
153
|
+
"KH2",
|
154
|
+
"KH3",
|
155
|
+
"KH4",
|
156
|
+
"KH5",
|
157
|
+
"KH6",
|
158
|
+
"KH7",
|
159
|
+
"KH8",
|
160
|
+
"KH9",
|
161
|
+
"KP1",
|
162
|
+
"KP2",
|
163
|
+
"KP3",
|
164
|
+
"KP4",
|
165
|
+
"KP5",
|
166
|
+
"VE",
|
167
|
+
]:
|
127
168
|
return 2
|
128
169
|
|
129
170
|
if mypfx.upper() != pfx.upper():
|
@@ -134,8 +175,10 @@ def points(self):
|
|
134
175
|
|
135
176
|
def show_mults(self):
|
136
177
|
"""Return display string for mults"""
|
137
|
-
|
138
|
-
|
178
|
+
mults = 0
|
179
|
+
if can_claim_dxcc(self):
|
180
|
+
result = self.database.fetch_country_count()
|
181
|
+
mults = int(result.get("dxcc_count", 0))
|
139
182
|
|
140
183
|
result = self.database.fetch_exchange1_unique_count()
|
141
184
|
mults2 = int(result.get("exch1_count", 0))
|
@@ -153,6 +196,7 @@ def show_qso(self):
|
|
153
196
|
|
154
197
|
def calc_score(self):
|
155
198
|
"""Return calculated score"""
|
199
|
+
mults = 0
|
156
200
|
result = self.database.fetch_points()
|
157
201
|
if result is not None:
|
158
202
|
score = result.get("Points", "0")
|
@@ -160,8 +204,9 @@ def calc_score(self):
|
|
160
204
|
score = "0"
|
161
205
|
contest_points = int(score)
|
162
206
|
|
163
|
-
|
164
|
-
|
207
|
+
if can_claim_dxcc(self):
|
208
|
+
result = self.database.fetch_country_count()
|
209
|
+
mults = int(result.get("dxcc_count", 0))
|
165
210
|
|
166
211
|
result = self.database.fetch_exchange1_unique_count()
|
167
212
|
mults2 = int(result.get("exch1_count", 0))
|
@@ -169,6 +214,37 @@ def calc_score(self):
|
|
169
214
|
return 0
|
170
215
|
|
171
216
|
|
217
|
+
def can_claim_dxcc(self):
|
218
|
+
""""""
|
219
|
+
result = self.cty_lookup(self.station.get("Call", ""))
|
220
|
+
if result:
|
221
|
+
mypfx = ""
|
222
|
+
for item in result.items():
|
223
|
+
mypfx = item[1].get("primary_pfx", "")
|
224
|
+
if mypfx in [
|
225
|
+
"K",
|
226
|
+
"KL",
|
227
|
+
"KH0",
|
228
|
+
"KH1",
|
229
|
+
"KH2",
|
230
|
+
"KH3",
|
231
|
+
"KH4",
|
232
|
+
"KH5",
|
233
|
+
"KH6",
|
234
|
+
"KH7",
|
235
|
+
"KH8",
|
236
|
+
"KH9",
|
237
|
+
"KP1",
|
238
|
+
"KP2",
|
239
|
+
"KP3",
|
240
|
+
"KP4",
|
241
|
+
"KP5",
|
242
|
+
"VE",
|
243
|
+
]:
|
244
|
+
return True
|
245
|
+
return False
|
246
|
+
|
247
|
+
|
172
248
|
def adif(self):
|
173
249
|
"""Call the generate ADIF function"""
|
174
250
|
gen_adif(self, cabrillo_name, "ARRL 160-Meter")
|
@@ -381,14 +457,6 @@ def cabrillo(self, file_encoding):
|
|
381
457
|
return
|
382
458
|
|
383
459
|
|
384
|
-
# def trigger_update(self):
|
385
|
-
# """Triggers the log window to update."""
|
386
|
-
# cmd = {}
|
387
|
-
# cmd["cmd"] = "UPDATELOG"
|
388
|
-
# cmd["station"] = platform.node()
|
389
|
-
# self.multicast_interface.send_as_json(cmd)
|
390
|
-
|
391
|
-
|
392
460
|
def recalculate_mults(self):
|
393
461
|
"""Recalculates multipliers after change in logged qso."""
|
394
462
|
# all_contacts = self.database.fetch_all_contacts_asc()
|
@@ -541,3 +609,19 @@ def check_call_history(self):
|
|
541
609
|
self.history_info.setText(f"{result.get('UserText','')}")
|
542
610
|
if self.other_2.text() == "":
|
543
611
|
self.other_2.setText(f"{result.get('Exch1', '')}")
|
612
|
+
|
613
|
+
|
614
|
+
def get_mults(self):
|
615
|
+
""""""
|
616
|
+
mults = {}
|
617
|
+
if can_claim_dxcc(self):
|
618
|
+
mults["country"] = self.database.fetch_country_count().get("dxcc_count", 0)
|
619
|
+
|
620
|
+
mults["state"] = self.database.fetch_exchange1_unique_count().get("exch1_count", 0)
|
621
|
+
|
622
|
+
return mults
|
623
|
+
|
624
|
+
|
625
|
+
def just_points(self):
|
626
|
+
""""""
|
627
|
+
return self.database.fetch_points().get("Points", "0")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.12.5
|
3
|
+
Version: 24.12.5.1
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
Project-URL: Homepage, https://github.com/mbridak/not1mm
|
@@ -238,6 +238,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
238
238
|
|
239
239
|
## Recent Changes (Polishing the Turd)
|
240
240
|
|
241
|
+
-[24-12-5-1] ARRL 160 gets rtc.
|
241
242
|
- [24-12-5] Add 'real time' score posting to external sites.
|
242
243
|
- [24-12-4] Merged PR from @alduhoo Add STATION_CALLSIGN field to ADIF output
|
243
244
|
- [24-12-3-1] Adding ARRL 160
|
@@ -619,6 +620,7 @@ On the Options TAB you can:
|
|
619
620
|
|
620
621
|
- Select to use Enter Sends Message (ESM), and configure it's function keys.
|
621
622
|
- Select whether or not to use Call History info.
|
623
|
+
- Select whether or not to send XML score info to online scoreboards.
|
622
624
|
|
623
625
|

|
624
626
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=fiXIUhVXM8mA0_zkr-srDZF-XvvkoFNVZ9LtqF2NYts,144644
|
3
3
|
not1mm/bandmap.py,sha256=zD3aUf36NVQCy0plAcZLNxYhSEM9xZ8J1Cu9vrcFPYA,31136
|
4
4
|
not1mm/checkwindow.py,sha256=VFAcKYTcoWhmIf91chwY6tyao9FQMWPiUkgDDkkWaog,9670
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
@@ -111,11 +111,11 @@ not1mm/lib/lookup.py,sha256=KECMDi9tflRDzgTLeDfDl7HGWWRHvW3HCjNHyyjoWaY,10835
|
|
111
111
|
not1mm/lib/multicast.py,sha256=KJcruI-bOuHfHXPjl3SGQhL6I9sKrygy-sdFSvxffUM,3255
|
112
112
|
not1mm/lib/n1mm.py,sha256=H54mpgJF0GAmKavM-nb5OAq2SJFWYkux4eMWWiSRxJc,6288
|
113
113
|
not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
|
114
|
-
not1mm/lib/plugin_common.py,sha256
|
114
|
+
not1mm/lib/plugin_common.py,sha256=gpYDYRu_-w8QiLNXPLjKzE47Fhgv-q7yrLu0-BwEpVY,13141
|
115
115
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
116
116
|
not1mm/lib/settings.py,sha256=j5lIMLHJ-eqIaVr_QhI82gkbOl17_C-5suRkWbHYET8,14717
|
117
117
|
not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
|
118
|
-
not1mm/lib/version.py,sha256=
|
118
|
+
not1mm/lib/version.py,sha256=szIJzvfgl4Q3uj53Wst_zg1KvKsYv2FK-7_N6YPVm_o,50
|
119
119
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
120
120
|
not1mm/plugins/10_10_fall_cw.py,sha256=AsvB2VUd6Qb2_FzZkSBkSd1_qeP8Dt-B-exF1Pzb9tk,14469
|
121
121
|
not1mm/plugins/10_10_spring_cw.py,sha256=nA4v0oqlp-ivvKqNPakb19I-wE_ElhvH5bCzDRx00JU,14474
|
@@ -123,7 +123,7 @@ not1mm/plugins/10_10_summer_phone.py,sha256=FNcTQoyZCeAW2i3SKYYDZWuJS1vmk1CO4XO1
|
|
123
123
|
not1mm/plugins/10_10_winter_phone.py,sha256=NRAKgu4oYzrpUtjUKWgCfZQf3b85sdVe9oyl-yD6kJo,14486
|
124
124
|
not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
125
|
not1mm/plugins/arrl_10m.py,sha256=-stuBD3DCdlWctxE9bWEeznZrgIfNw7VcMIE1ZmsfMo,17942
|
126
|
-
not1mm/plugins/arrl_160m.py,sha256=
|
126
|
+
not1mm/plugins/arrl_160m.py,sha256=idirBXY1XmzxdEyuodGUBsDwLN7JaNtpdix9f3lceRQ,20127
|
127
127
|
not1mm/plugins/arrl_dx_cw.py,sha256=1epTIf9TjeUCjYlpRDU54Ig3lJdXa2e5JZI9SCGE080,17400
|
128
128
|
not1mm/plugins/arrl_dx_ssb.py,sha256=IEZ6tlP9stW3Mdr5_qTBS77hjAUU43IpagyPjr0eqaQ,17403
|
129
129
|
not1mm/plugins/arrl_field_day.py,sha256=YEyXr1Ytllq12sCj54erOba0wrblwb0_bq51gj75OIQ,16478
|
@@ -164,9 +164,9 @@ not1mm/plugins/ref_ssb.py,sha256=G2Gz4kApchmOZQVnBexEokSEvdb-mZWJAfyJ1D6JDGY,204
|
|
164
164
|
not1mm/plugins/stew_perry_topband.py,sha256=Gy_vv6tgkR-3vmvsUVO0pVfHMkUJSxpt7G4secn0RH8,15084
|
165
165
|
not1mm/plugins/weekly_rtty.py,sha256=PI0_AtEdZZKGAuKnP-b2EYn9xwCN1Ablk38trbNP3Rc,19603
|
166
166
|
not1mm/plugins/winter_field_day.py,sha256=9w3tDL9ZWiENSTERc3vzDbBktvI7pnyNvlH6fDjAi08,14841
|
167
|
-
not1mm-24.12.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
168
|
-
not1mm-24.12.5.dist-info/METADATA,sha256=
|
169
|
-
not1mm-24.12.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
170
|
-
not1mm-24.12.5.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
171
|
-
not1mm-24.12.5.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
172
|
-
not1mm-24.12.5.dist-info/RECORD,,
|
167
|
+
not1mm-24.12.5.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
168
|
+
not1mm-24.12.5.1.dist-info/METADATA,sha256=tYCfOzNbIMOj91v3fsxr2pXNmOFtxfXN55CYFcKjGdc,35613
|
169
|
+
not1mm-24.12.5.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
170
|
+
not1mm-24.12.5.1.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
171
|
+
not1mm-24.12.5.1.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
172
|
+
not1mm-24.12.5.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|