not1mm 24.11.3__py3-none-any.whl → 24.11.5__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.
Files changed (48) hide show
  1. not1mm/__main__.py +8 -2
  2. not1mm/lib/lookup.py +2 -2
  3. not1mm/lib/version.py +1 -1
  4. not1mm/plugins/10_10_fall_cw.py +1 -1
  5. not1mm/plugins/10_10_spring_cw.py +1 -1
  6. not1mm/plugins/10_10_summer_phone.py +1 -1
  7. not1mm/plugins/10_10_winter_phone.py +1 -1
  8. not1mm/plugins/arrl_10m.py +1 -1
  9. not1mm/plugins/arrl_dx_cw.py +1 -1
  10. not1mm/plugins/arrl_dx_ssb.py +1 -1
  11. not1mm/plugins/arrl_field_day.py +1 -1
  12. not1mm/plugins/arrl_ss_cw.py +1 -1
  13. not1mm/plugins/arrl_ss_phone.py +1 -1
  14. not1mm/plugins/arrl_vhf_jan.py +1 -1
  15. not1mm/plugins/arrl_vhf_jun.py +1 -1
  16. not1mm/plugins/arrl_vhf_sep.py +1 -1
  17. not1mm/plugins/canada_day.py +1 -1
  18. not1mm/plugins/cq_160_cw.py +1 -1
  19. not1mm/plugins/cq_160_ssb.py +1 -1
  20. not1mm/plugins/cq_wpx_cw.py +1 -1
  21. not1mm/plugins/cq_wpx_rtty.py +1 -1
  22. not1mm/plugins/cq_wpx_ssb.py +1 -1
  23. not1mm/plugins/cq_ww_rtty.py +1 -1
  24. not1mm/plugins/cq_ww_ssb.py +1 -1
  25. not1mm/plugins/cwt.py +16 -9
  26. not1mm/plugins/helvetia.py +102 -1
  27. not1mm/plugins/iaru_fieldday_r1_cw.py +1 -1
  28. not1mm/plugins/iaru_fieldday_r1_ssb.py +1 -1
  29. not1mm/plugins/iaru_hf.py +1 -1
  30. not1mm/plugins/icwc_mst.py +1 -1
  31. not1mm/plugins/jidx_cw.py +1 -1
  32. not1mm/plugins/jidx_ph.py +1 -1
  33. not1mm/plugins/k1usn_sst.py +13 -1
  34. not1mm/plugins/naqp_cw.py +13 -4
  35. not1mm/plugins/naqp_rtty.py +13 -6
  36. not1mm/plugins/naqp_ssb.py +13 -4
  37. not1mm/plugins/phone_weekly_test.py +1 -1
  38. not1mm/plugins/ref_cw.py +1 -1
  39. not1mm/plugins/ref_ssb.py +1 -1
  40. not1mm/plugins/stew_perry_topband.py +1 -1
  41. not1mm/plugins/weekly_rtty.py +1 -1
  42. not1mm/plugins/winter_field_day.py +13 -1
  43. {not1mm-24.11.3.dist-info → not1mm-24.11.5.dist-info}/METADATA +14 -3
  44. {not1mm-24.11.3.dist-info → not1mm-24.11.5.dist-info}/RECORD +48 -48
  45. {not1mm-24.11.3.dist-info → not1mm-24.11.5.dist-info}/LICENSE +0 -0
  46. {not1mm-24.11.3.dist-info → not1mm-24.11.5.dist-info}/WHEEL +0 -0
  47. {not1mm-24.11.3.dist-info → not1mm-24.11.5.dist-info}/entry_points.txt +0 -0
  48. {not1mm-24.11.3.dist-info → not1mm-24.11.5.dist-info}/top_level.txt +0 -0
not1mm/__main__.py CHANGED
@@ -737,12 +737,16 @@ class MainWindow(QtWidgets.QMainWindow):
737
737
  group = {}
738
738
  fields = line.strip().split(",")
739
739
  # ['4U1WB','MDC','DC','89','']
740
+ number_of_fields = len(fields)
740
741
  count = 0
741
742
  try:
742
743
  for item in item_names:
743
744
  if item == "":
744
745
  continue
745
- group[item] = fields[count]
746
+ if count < number_of_fields:
747
+ group[item] = fields[count]
748
+ else:
749
+ group[item] = ""
746
750
  count += 1
747
751
  group_list.append(group)
748
752
  # database.add_callhistory_item(group)
@@ -1736,13 +1740,14 @@ class MainWindow(QtWidgets.QMainWindow):
1736
1740
  "[Shift-Tab]\tMove cursor left One field.\n"
1737
1741
  "[SPACE]\tWhen in the callsign field, will move the input to the\n"
1738
1742
  "\tfirst field needed for the exchange.\n"
1739
- "[Enter]\tSubmits the fields to the log.\n"
1743
+ "[Enter]\tSubmits the fields to the log. Unless ESM is enabled.\n"
1740
1744
  "[F1-F12]\tSend (CW or Voice) macros.\n"
1741
1745
  "[CTRL-G]\tTune to a spot matching partial text in the callsign\n"
1742
1746
  "\tentry field (CAT Required).\n"
1743
1747
  "[CTRL-M]\tMark Callsign to the bandmap window to work later."
1744
1748
  "[CTRL-S]\tSpot Callsign to the cluster.\n"
1745
1749
  "[CTRL-SHIFT-K] Open CW text input field.\n"
1750
+ "[CTRL-=]\tLog the contact without sending the ESM macros.\n"
1746
1751
  )
1747
1752
 
1748
1753
  def filepicker(self, action: str) -> str:
@@ -2284,6 +2289,7 @@ class MainWindow(QtWidgets.QMainWindow):
2284
2289
  self.dupe_indicator.hide()
2285
2290
  self.contact = self.database.empty_contact.copy()
2286
2291
  self.heading_distance.setText("")
2292
+ self.history_info.setText("")
2287
2293
  self.dx_entity.setText("")
2288
2294
 
2289
2295
  if self.contest:
not1mm/lib/lookup.py CHANGED
@@ -183,7 +183,7 @@ class QRZlookup:
183
183
  Lookup a call on QRZ
184
184
  """
185
185
  logger.info("%s", call)
186
- _response = None
186
+ root = {}
187
187
  if self.session:
188
188
  payload = {"s": self.session, "callsign": call}
189
189
  try:
@@ -208,7 +208,7 @@ class QRZlookup:
208
208
  self.qrzurl, params=payload, timeout=3.0
209
209
  )
210
210
  baseroot = xmltodict.parse(query_result.text)
211
- root = baseroot.get("QRZDatabase")
211
+ root = baseroot.get("QRZDatabase", {})
212
212
  return root.get("Callsign")
213
213
 
214
214
 
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.11.3"
3
+ __version__ = "24.11.5"
@@ -194,7 +194,7 @@ def cabrillo(self, file_encoding):
194
194
  logger.debug("%s", filename)
195
195
  log = self.database.fetch_all_contacts_asc()
196
196
  try:
197
- with open(filename, "w", encoding="utf-8") as file_descriptor:
197
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
198
198
  output_cabrillo_line(
199
199
  "START-OF-LOG: 3.0",
200
200
  "\r\n",
@@ -193,7 +193,7 @@ def cabrillo(self, file_encoding):
193
193
  logger.debug("%s", filename)
194
194
  log = self.database.fetch_all_contacts_asc()
195
195
  try:
196
- with open(filename, "w", encoding="utf-8") as file_descriptor:
196
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
197
197
  output_cabrillo_line(
198
198
  "START-OF-LOG: 3.0",
199
199
  "\r\n",
@@ -195,7 +195,7 @@ def cabrillo(self, file_encoding):
195
195
  logger.debug("%s", filename)
196
196
  log = self.database.fetch_all_contacts_asc()
197
197
  try:
198
- with open(filename, "w", encoding="utf-8") as file_descriptor:
198
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
199
199
  output_cabrillo_line(
200
200
  "START-OF-LOG: 3.0",
201
201
  "\r\n",
@@ -195,7 +195,7 @@ def cabrillo(self, file_encoding):
195
195
  logger.debug("%s", filename)
196
196
  log = self.database.fetch_all_contacts_asc()
197
197
  try:
198
- with open(filename, "w", encoding="utf-8") as file_descriptor:
198
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
199
199
  output_cabrillo_line(
200
200
  "START-OF-LOG: 3.0",
201
201
  "\r\n",
@@ -277,7 +277,7 @@ def cabrillo(self, file_encoding):
277
277
  logger.debug("%s", filename)
278
278
  log = self.database.fetch_all_contacts_asc()
279
279
  try:
280
- with open(filename, "w", encoding="utf-8") as file_descriptor:
280
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
281
281
  output_cabrillo_line(
282
282
  "START-OF-LOG: 3.0",
283
283
  "\r\n",
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
219
219
  logger.debug("%s", filename)
220
220
  log = self.database.fetch_all_contacts_asc()
221
221
  try:
222
- with open(filename, "w", encoding="utf-8") as file_descriptor:
222
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
223
223
  output_cabrillo_line(
224
224
  "START-OF-LOG: 3.0",
225
225
  "\r\n",
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
219
219
  logger.debug("%s", filename)
220
220
  log = self.database.fetch_all_contacts_asc()
221
221
  try:
222
- with open(filename, "w", encoding="utf-8") as file_descriptor:
222
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
223
223
  output_cabrillo_line(
224
224
  "START-OF-LOG: 3.0",
225
225
  "\r\n",
@@ -173,7 +173,7 @@ def cabrillo(self, file_encoding):
173
173
  logger.debug("%s", filename)
174
174
  log = self.database.fetch_all_contacts_asc()
175
175
  try:
176
- with open(filename, "w", encoding="utf-8") as file_descriptor:
176
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
177
177
  output_cabrillo_line(
178
178
  "START-OF-LOG: 3.0",
179
179
  "\r\n",
@@ -216,7 +216,7 @@ def cabrillo(self, file_encoding):
216
216
  logger.debug("%s", filename)
217
217
  log = self.database.fetch_all_contacts_asc()
218
218
  try:
219
- with open(filename, "w", encoding="utf-8") as file_descriptor:
219
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
220
220
  output_cabrillo_line(
221
221
  "START-OF-LOG: 3.0",
222
222
  "\r\n",
@@ -206,7 +206,7 @@ def cabrillo(self, file_encoding):
206
206
  logger.debug("%s", filename)
207
207
  log = self.database.fetch_all_contacts_asc()
208
208
  try:
209
- with open(filename, "w", encoding="utf-8") as file_descriptor:
209
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
210
210
  output_cabrillo_line(
211
211
  "START-OF-LOG: 3.0",
212
212
  "\r\n",
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
256
256
  logger.debug("%s", filename)
257
257
  log = self.database.fetch_all_contacts_asc()
258
258
  try:
259
- with open(filename, "w", encoding="utf-8") as file_descriptor:
259
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
260
260
  output_cabrillo_line(
261
261
  "START-OF-LOG: 3.0",
262
262
  "\r\n",
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
224
224
  logger.debug("%s", filename)
225
225
  log = self.database.fetch_all_contacts_asc()
226
226
  try:
227
- with open(filename, "w", encoding="utf-8") as file_descriptor:
227
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
228
228
  output_cabrillo_line(
229
229
  "START-OF-LOG: 3.0",
230
230
  "\r\n",
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
224
224
  logger.debug("%s", filename)
225
225
  log = self.database.fetch_all_contacts_asc()
226
226
  try:
227
- with open(filename, "w", encoding="utf-8") as file_descriptor:
227
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
228
228
  output_cabrillo_line(
229
229
  "START-OF-LOG: 3.0",
230
230
  "\r\n",
@@ -247,7 +247,7 @@ def cabrillo(self, file_encoding):
247
247
  logger.debug("%s", filename)
248
248
  log = self.database.fetch_all_contacts_asc()
249
249
  try:
250
- with open(filename, "w", encoding="utf-8") as file_descriptor:
250
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
251
251
  output_cabrillo_line(
252
252
  "START-OF-LOG: 3.0",
253
253
  "\r\n",
@@ -234,7 +234,7 @@ def cabrillo(self, file_encoding):
234
234
  logger.debug("%s", filename)
235
235
  log = self.database.fetch_all_contacts_asc()
236
236
  try:
237
- with open(filename, "w", encoding="utf-8") as file_descriptor:
237
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
238
238
  output_cabrillo_line(
239
239
  "START-OF-LOG: 3.0",
240
240
  "\r\n",
@@ -234,7 +234,7 @@ def cabrillo(self, file_encoding):
234
234
  logger.debug("%s", filename)
235
235
  log = self.database.fetch_all_contacts_asc()
236
236
  try:
237
- with open(filename, "w", encoding="utf-8") as file_descriptor:
237
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
238
238
  output_cabrillo_line(
239
239
  "START-OF-LOG: 3.0",
240
240
  "\r\n",
@@ -266,7 +266,7 @@ def cabrillo(self, file_encoding):
266
266
  logger.debug("%s", filename)
267
267
  log = self.database.fetch_all_contacts_asc()
268
268
  try:
269
- with open(filename, "w", encoding="utf-8") as file_descriptor:
269
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
270
270
  output_cabrillo_line(
271
271
  "START-OF-LOG: 3.0",
272
272
  "\r\n",
@@ -265,7 +265,7 @@ def cabrillo(self, file_encoding):
265
265
  logger.debug("%s", filename)
266
266
  log = self.database.fetch_all_contacts_asc()
267
267
  try:
268
- with open(filename, "w", encoding="utf-8") as file_descriptor:
268
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
269
269
  output_cabrillo_line(
270
270
  "START-OF-LOG: 3.0",
271
271
  "\r\n",
@@ -231,7 +231,7 @@ def cabrillo(self, file_encoding):
231
231
  logger.debug("%s", filename)
232
232
  log = self.database.fetch_all_contacts_asc()
233
233
  try:
234
- with open(filename, "w", encoding="utf-8") as file_descriptor:
234
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
235
235
  output_cabrillo_line(
236
236
  "START-OF-LOG: 3.0",
237
237
  "\r\n",
@@ -254,7 +254,7 @@ def cabrillo(self, file_encoding):
254
254
  logger.debug("%s", filename)
255
255
  log = self.database.fetch_all_contacts_asc()
256
256
  try:
257
- with open(filename, "w", encoding="utf-8") as file_descriptor:
257
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
258
258
  output_cabrillo_line(
259
259
  "START-OF-LOG: 3.0",
260
260
  "\r\n",
@@ -230,7 +230,7 @@ def cabrillo(self, file_encoding):
230
230
  logger.debug("%s", filename)
231
231
  log = self.database.fetch_all_contacts_asc()
232
232
  try:
233
- with open(filename, "w", encoding="utf-8") as file_descriptor:
233
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
234
234
  output_cabrillo_line(
235
235
  "START-OF-LOG: 3.0",
236
236
  "\r\n",
not1mm/plugins/cwt.py CHANGED
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
224
224
  logger.debug("%s", filename)
225
225
  log = self.database.fetch_all_contacts_asc()
226
226
  try:
227
- with open(filename, "w", encoding="utf-8") as file_descriptor:
227
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
228
228
  output_cabrillo_line(
229
229
  "START-OF-LOG: 3.0",
230
230
  "\r\n",
@@ -478,13 +478,11 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
478
478
  if self.other_2.text() == "" or self.other_1.text() == "":
479
479
  self.make_button_green(self.esm_dict["AGN"])
480
480
  buttons_to_send.append(self.esm_dict["AGN"])
481
- elif self.other_1.text().isalpha() and self.other_2.text().isalpha():
481
+ else:
482
482
  self.make_button_green(self.esm_dict["QRZ"])
483
483
  buttons_to_send.append(self.esm_dict["QRZ"])
484
484
  buttons_to_send.append("LOGIT")
485
- else:
486
- self.make_button_green(self.esm_dict["AGN"])
487
- buttons_to_send.append(self.esm_dict["AGN"])
485
+
488
486
  if with_enter is True and bool(len(buttons_to_send)):
489
487
  for button in buttons_to_send:
490
488
  if button:
@@ -502,13 +500,11 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
502
500
  if self.other_2.text() == "" or self.other_1.text() == "":
503
501
  self.make_button_green(self.esm_dict["AGN"])
504
502
  buttons_to_send.append(self.esm_dict["AGN"])
505
- elif self.other_1.text().isalpha() and self.other_2.text().isalpha():
503
+ else:
506
504
  self.make_button_green(self.esm_dict["EXCH"])
507
505
  buttons_to_send.append(self.esm_dict["EXCH"])
508
506
  buttons_to_send.append("LOGIT")
509
- else:
510
- self.make_button_green(self.esm_dict["AGN"])
511
- buttons_to_send.append(self.esm_dict["AGN"])
507
+
512
508
  if with_enter is True and bool(len(buttons_to_send)):
513
509
  for button in buttons_to_send:
514
510
  if button:
@@ -516,3 +512,14 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
516
512
  self.save_contact()
517
513
  continue
518
514
  self.process_function_key(button)
515
+
516
+
517
+ def check_call_history(self):
518
+ """"""
519
+ result = self.database.fetch_call_history(self.callsign.text())
520
+ if result:
521
+ self.history_info.setText(f"{result.get('UserText','')}")
522
+ if self.other_1.text() == "":
523
+ self.other_1.setText(f"{result.get('Name', '')}")
524
+ if self.other_2.text() == "":
525
+ self.other_2.setText(f"{result.get('Exch1', '')}")
@@ -349,7 +349,7 @@ def cabrillo(self, file_encoding):
349
349
  logger.debug("%s", filename)
350
350
  log = self.database.fetch_all_contacts_asc()
351
351
  try:
352
- with open(filename, "w", encoding="utf-8") as file_descriptor:
352
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
353
353
  output_cabrillo_line(
354
354
  "START-OF-LOG: 3.0",
355
355
  "\r\n",
@@ -522,3 +522,104 @@ def cabrillo(self, file_encoding):
522
522
  logger.critical("cabrillo: IO error: %s, writing to %s", exception, filename)
523
523
  self.show_message_box(f"Error saving Cabrillo: {exception} {filename}")
524
524
  return
525
+
526
+
527
+ def check_call_history(self):
528
+ """"""
529
+ result = self.database.fetch_call_history(self.callsign.text())
530
+ print(f"{result=}")
531
+ if result:
532
+ self.history_info.setText(f"{result.get('UserText','')}")
533
+ if self.other_2.text() == "":
534
+ self.other_2.setText(f"{result.get('Exch1', '')}")
535
+
536
+
537
+ def process_esm(self, new_focused_widget=None, with_enter=False):
538
+ """ESM State Machine"""
539
+
540
+ # self.pref["run_state"]
541
+
542
+ # -----===== Assigned F-Keys =====-----
543
+ # self.esm_dict["CQ"]
544
+ # self.esm_dict["EXCH"]
545
+ # self.esm_dict["QRZ"]
546
+ # self.esm_dict["AGN"]
547
+ # self.esm_dict["HISCALL"]
548
+ # self.esm_dict["MYCALL"]
549
+ # self.esm_dict["QSOB4"]
550
+
551
+ # ----==== text fields ====----
552
+ # self.callsign
553
+ # self.sent
554
+ # self.receive
555
+ # self.other_1
556
+ # self.other_2
557
+
558
+ if new_focused_widget is not None:
559
+ self.current_widget = self.inputs_dict.get(new_focused_widget)
560
+
561
+ # print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
562
+
563
+ for a_button in [
564
+ self.esm_dict["CQ"],
565
+ self.esm_dict["EXCH"],
566
+ self.esm_dict["QRZ"],
567
+ self.esm_dict["AGN"],
568
+ self.esm_dict["HISCALL"],
569
+ self.esm_dict["MYCALL"],
570
+ self.esm_dict["QSOB4"],
571
+ ]:
572
+ if a_button is not None:
573
+ self.restore_button_color(a_button)
574
+
575
+ buttons_to_send = []
576
+
577
+ if self.pref.get("run_state"):
578
+ if self.current_widget == "callsign":
579
+ if len(self.callsign.text()) < 3:
580
+ self.make_button_green(self.esm_dict["CQ"])
581
+ buttons_to_send.append(self.esm_dict["CQ"])
582
+ elif len(self.callsign.text()) > 2:
583
+ self.make_button_green(self.esm_dict["HISCALL"])
584
+ self.make_button_green(self.esm_dict["EXCH"])
585
+ buttons_to_send.append(self.esm_dict["HISCALL"])
586
+ buttons_to_send.append(self.esm_dict["EXCH"])
587
+
588
+ elif self.current_widget == "other_2":
589
+ if self.other_2.text() == "":
590
+ self.make_button_green(self.esm_dict["AGN"])
591
+ buttons_to_send.append(self.esm_dict["AGN"])
592
+ else:
593
+ self.make_button_green(self.esm_dict["QRZ"])
594
+ buttons_to_send.append(self.esm_dict["QRZ"])
595
+ buttons_to_send.append("LOGIT")
596
+
597
+ if with_enter is True and bool(len(buttons_to_send)):
598
+ for button in buttons_to_send:
599
+ if button:
600
+ if button == "LOGIT":
601
+ self.save_contact()
602
+ continue
603
+ self.process_function_key(button)
604
+ else:
605
+ if self.current_widget == "callsign":
606
+ if len(self.callsign.text()) > 2:
607
+ self.make_button_green(self.esm_dict["MYCALL"])
608
+ buttons_to_send.append(self.esm_dict["MYCALL"])
609
+
610
+ elif self.current_widget == "other_2":
611
+ if self.other_2.text() == "":
612
+ self.make_button_green(self.esm_dict["AGN"])
613
+ buttons_to_send.append(self.esm_dict["AGN"])
614
+ else:
615
+ self.make_button_green(self.esm_dict["EXCH"])
616
+ buttons_to_send.append(self.esm_dict["EXCH"])
617
+ buttons_to_send.append("LOGIT")
618
+
619
+ if with_enter is True and bool(len(buttons_to_send)):
620
+ for button in buttons_to_send:
621
+ if button:
622
+ if button == "LOGIT":
623
+ self.save_contact()
624
+ continue
625
+ self.process_function_key(button)
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
256
256
  logger.debug("%s", filename)
257
257
  log = self.database.fetch_all_contacts_asc()
258
258
  try:
259
- with open(filename, "w", encoding="utf-8") as file_descriptor:
259
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
260
260
  output_cabrillo_line(
261
261
  "START-OF-LOG: 3.0",
262
262
  "\r\n",
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
256
256
  logger.debug("%s", filename)
257
257
  log = self.database.fetch_all_contacts_asc()
258
258
  try:
259
- with open(filename, "w", encoding="utf-8") as file_descriptor:
259
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
260
260
  output_cabrillo_line(
261
261
  "START-OF-LOG: 3.0",
262
262
  "\r\n",
not1mm/plugins/iaru_hf.py CHANGED
@@ -213,7 +213,7 @@ def cabrillo(self, file_encoding):
213
213
  logger.debug("%s", filename)
214
214
  log = self.database.fetch_all_contacts_asc()
215
215
  try:
216
- with open(filename, "w", encoding="utf-8") as file_descriptor:
216
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
217
217
  output_cabrillo_line(
218
218
  "START-OF-LOG: 3.0",
219
219
  "\r\n",
@@ -209,7 +209,7 @@ def cabrillo(self, file_encoding):
209
209
  logger.debug("%s", filename)
210
210
  log = self.database.fetch_all_contacts_asc()
211
211
  try:
212
- with open(filename, "w", encoding="utf-8") as file_descriptor:
212
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
213
213
  output_cabrillo_line(
214
214
  "START-OF-LOG: 3.0",
215
215
  "\r\n",
not1mm/plugins/jidx_cw.py CHANGED
@@ -272,7 +272,7 @@ def cabrillo(self, file_encoding):
272
272
  mults = show_mults(self)
273
273
  log = self.database.fetch_all_contacts_asc()
274
274
  try:
275
- with open(filename, "w", encoding="utf-8") as file_descriptor:
275
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
276
276
  output_cabrillo_line(
277
277
  "START-OF-LOG: 2.0", "\r\n", file_descriptor, file_encoding
278
278
  )
not1mm/plugins/jidx_ph.py CHANGED
@@ -243,7 +243,7 @@ def cabrillo(self, file_encoding):
243
243
  mults = show_mults(self)
244
244
  log = self.database.fetch_all_contacts_asc()
245
245
  try:
246
- with open(filename, "w", encoding="utf-8") as file_descriptor:
246
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
247
247
  output_cabrillo_line(
248
248
  "START-OF-LOG: 2.0", "\r\n", file_descriptor, file_encoding
249
249
  )
@@ -193,7 +193,7 @@ def cabrillo(self, file_encoding):
193
193
  logger.debug("%s", filename)
194
194
  log = self.database.fetch_all_contacts_asc()
195
195
  try:
196
- with open(filename, "w", encoding="utf-8") as file_descriptor:
196
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
197
197
  output_cabrillo_line(
198
198
  "START-OF-LOG: 3.0",
199
199
  "\r\n",
@@ -491,3 +491,15 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
491
491
  self.save_contact()
492
492
  continue
493
493
  self.process_function_key(button)
494
+
495
+
496
+ def check_call_history(self):
497
+ """"""
498
+ result = self.database.fetch_call_history(self.callsign.text())
499
+ print(f"{result=}")
500
+ if result:
501
+ self.history_info.setText(f"{result.get('UserText','')}")
502
+ if self.other_1.text() == "":
503
+ self.other_1.setText(f"{result.get('Name', '')}")
504
+ if self.other_2.text() == "":
505
+ self.other_2.setText(f"{result.get('Exch1', '')}")
not1mm/plugins/naqp_cw.py CHANGED
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
219
219
  logger.debug("%s", filename)
220
220
  log = self.database.fetch_all_contacts_asc()
221
221
  try:
222
- with open(filename, "w", encoding="utf-8") as file_descriptor:
222
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
223
223
  output_cabrillo_line(
224
224
  "START-OF-LOG: 3.0",
225
225
  "\r\n",
@@ -477,9 +477,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
477
477
 
478
478
  elif self.current_widget == "other_1" or self.current_widget == "other_2":
479
479
  continent = self.contact.get("Continent")
480
- print(
481
- f"{self.current_widget=} {self.other_1.text().isalpha()=} {self.other_2.text().isalpha()=} {continent=}"
482
- )
483
480
  if self.other_1.text() == "" or (
484
481
  self.other_2.text() == "" and continent == "NA"
485
482
  ):
@@ -544,3 +541,15 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
544
541
  self.save_contact()
545
542
  continue
546
543
  self.process_function_key(button)
544
+
545
+
546
+ def check_call_history(self):
547
+ """"""
548
+ result = self.database.fetch_call_history(self.callsign.text())
549
+ print(f"{result=}")
550
+ if result:
551
+ self.history_info.setText(f"{result.get('UserText','')}")
552
+ if self.other_1.text() == "":
553
+ self.other_1.setText(f"{result.get('Name', '')}")
554
+ if self.other_2.text() == "":
555
+ self.other_2.setText(f"{result.get('State', '')}")
@@ -222,7 +222,7 @@ def cabrillo(self, file_encoding):
222
222
  logger.debug("%s", filename)
223
223
  log = self.database.fetch_all_contacts_asc()
224
224
  try:
225
- with open(filename, "w", encoding="utf-8") as file_descriptor:
225
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
226
226
  output_cabrillo_line(
227
227
  "START-OF-LOG: 3.0",
228
228
  "\r\n",
@@ -549,8 +549,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
549
549
  if new_focused_widget is not None:
550
550
  self.current_widget = self.inputs_dict.get(new_focused_widget)
551
551
 
552
- # print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
553
-
554
552
  for a_button in [
555
553
  self.F1,
556
554
  self.F2,
@@ -582,9 +580,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
582
580
 
583
581
  elif self.current_widget == "other_1" or self.current_widget == "other_2":
584
582
  continent = self.contact.get("Continent")
585
- print(
586
- f"{self.current_widget=} {self.other_1.text().isalpha()=} {self.other_2.text().isalpha()=} {continent=}"
587
- )
588
583
  if self.other_1.text() == "" or (
589
584
  self.other_2.text() == "" and continent == "NA"
590
585
  ):
@@ -653,3 +648,15 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
653
648
  continue
654
649
  sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
655
650
  self.fldigi_util.send_string(sendstring)
651
+
652
+
653
+ def check_call_history(self):
654
+ """"""
655
+ result = self.database.fetch_call_history(self.callsign.text())
656
+ print(f"{result=}")
657
+ if result:
658
+ self.history_info.setText(f"{result.get('UserText','')}")
659
+ if self.other_1.text() == "":
660
+ self.other_1.setText(f"{result.get('Name', '')}")
661
+ if self.other_2.text() == "":
662
+ self.other_2.setText(f"{result.get('State', '')}")
@@ -189,7 +189,7 @@ def cabrillo(self, file_encoding):
189
189
  logger.debug("%s", filename)
190
190
  log = self.database.fetch_all_contacts_asc()
191
191
  try:
192
- with open(filename, "w", encoding="utf-8") as file_descriptor:
192
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
193
193
  output_cabrillo_line(
194
194
  "START-OF-LOG: 3.0",
195
195
  "\r\n",
@@ -447,9 +447,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
447
447
 
448
448
  elif self.current_widget == "other_1" or self.current_widget == "other_2":
449
449
  continent = self.contact.get("Continent")
450
- print(
451
- f"{self.current_widget=} {self.other_1.text().isalpha()=} {self.other_2.text().isalpha()=} {continent=}"
452
- )
453
450
  if self.other_1.text() == "" or (
454
451
  self.other_2.text() == "" and continent == "NA"
455
452
  ):
@@ -514,3 +511,15 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
514
511
  self.save_contact()
515
512
  continue
516
513
  self.process_function_key(button)
514
+
515
+
516
+ def check_call_history(self):
517
+ """"""
518
+ result = self.database.fetch_call_history(self.callsign.text())
519
+ print(f"{result=}")
520
+ if result:
521
+ self.history_info.setText(f"{result.get('UserText','')}")
522
+ if self.other_1.text() == "":
523
+ self.other_1.setText(f"{result.get('Name', '')}")
524
+ if self.other_2.text() == "":
525
+ self.other_2.setText(f"{result.get('State', '')}")
@@ -209,7 +209,7 @@ def cabrillo(self, file_encoding):
209
209
  logger.debug("%s", filename)
210
210
  log = self.database.fetch_all_contacts_asc()
211
211
  try:
212
- with open(filename, "w", encoding="utf-8") as file_descriptor:
212
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
213
213
  output_cabrillo_line(
214
214
  "START-OF-LOG: 3.0",
215
215
  "\r\n",
not1mm/plugins/ref_cw.py CHANGED
@@ -354,7 +354,7 @@ def cabrillo(self, file_encoding):
354
354
  logger.debug("%s", filename)
355
355
  log = self.database.fetch_all_contacts_asc()
356
356
  try:
357
- with open(filename, "w", encoding="utf-8") as file_descriptor:
357
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
358
358
  output_cabrillo_line(
359
359
  "START-OF-LOG: 3.0",
360
360
  "\r\n",
not1mm/plugins/ref_ssb.py CHANGED
@@ -354,7 +354,7 @@ def cabrillo(self, file_encoding):
354
354
  logger.debug("%s", filename)
355
355
  log = self.database.fetch_all_contacts_asc()
356
356
  try:
357
- with open(filename, "w", encoding="utf-8") as file_descriptor:
357
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
358
358
  output_cabrillo_line(
359
359
  "START-OF-LOG: 3.0",
360
360
  "\r\n",
@@ -188,7 +188,7 @@ def cabrillo(self, file_encoding):
188
188
  logger.debug("%s", filename)
189
189
  log = self.database.fetch_all_contacts_asc()
190
190
  try:
191
- with open(filename, "w", encoding="utf-8") as file_descriptor:
191
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
192
192
  output_cabrillo_line(
193
193
  "START-OF-LOG: 3.0",
194
194
  "\r\n",
@@ -194,7 +194,7 @@ def cabrillo(self, file_encoding):
194
194
  logger.debug("%s", filename)
195
195
  log = self.database.fetch_all_contacts_asc()
196
196
  try:
197
- with open(filename, "w", encoding="utf-8") as file_descriptor:
197
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
198
198
  output_cabrillo_line(
199
199
  "START-OF-LOG: 3.0",
200
200
  "\r\n",
@@ -172,7 +172,7 @@ def cabrillo(self, file_encoding):
172
172
  logger.debug("%s", filename)
173
173
  log = self.database.fetch_all_contacts_asc()
174
174
  try:
175
- with open(filename, "w", encoding="utf-8") as file_descriptor:
175
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
176
176
  output_cabrillo_line(
177
177
  "START-OF-LOG: 3.0",
178
178
  "\r\n",
@@ -439,3 +439,15 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
439
439
  self.save_contact()
440
440
  continue
441
441
  self.process_function_key(button)
442
+
443
+
444
+ def check_call_history(self):
445
+ """"""
446
+ result = self.database.fetch_call_history(self.callsign.text())
447
+ print(f"{result=}")
448
+ if result:
449
+ self.history_info.setText(f"{result.get('UserText','')}")
450
+ if self.other_1.text() == "":
451
+ self.other_1.setText(f"{result.get('Exch1', '')}")
452
+ if self.other_2.text() == "":
453
+ self.other_2.setText(f"{result.get('Sect', '')}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.11.3
3
+ Version: 24.11.5
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
@@ -100,6 +100,7 @@ Requires-Dist: Levenshtein
100
100
  - [Cluster](#cluster)
101
101
  - [N1MM Packets](#n1mm-packets)
102
102
  - [Bands](#bands)
103
+ - [Options](#options)
103
104
  - [Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts](#logging-wsjt-x-ft8ft4etc-and-fldigi-rtty-contacts)
104
105
  - [Sending CW](#sending-cw)
105
106
  - [Editing macro keys](#editing-macro-keys)
@@ -183,7 +184,7 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
183
184
 
184
185
  I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
185
186
  the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
186
- Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
187
+ Day and ARRL VHF. Found it works better if you don't use FlDigi for making the QSO at all.
187
188
  Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
188
189
  using the function keys or ESM.
189
190
 
@@ -218,7 +219,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
218
219
  - **CQ WPX CW, RTTY, SSB**
219
220
  - **CQ World Wide CW, RTTY, SSB**
220
221
  - **CWOps CWT**
221
- - Helvetia
222
+ - **Helvetia**
222
223
  - IARU Fieldday R1 CW, SSB
223
224
  - IARU HF
224
225
  - ICWC MST
@@ -235,6 +236,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
235
236
 
236
237
  ## Recent Changes (Polishing the Turd)
237
238
 
239
+ - [24-11-5] Fix crash with bad qrz credentials.
240
+ - [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
238
241
  - [24-11-3] Added RAEM contest
239
242
  - [24-11-2] Add beginning of call history files. Add command buttons.
240
243
 
@@ -611,6 +614,13 @@ appear. Those without will not.
611
614
 
612
615
  ![Bands Configuration Screen](https://github.com/mbridak/not1mm/raw/master/pic/configure_bands.png)
613
616
 
617
+ ### Options
618
+
619
+ On the Options TAB you can select to use Enter Sends Message (ESM), configure its function keys.
620
+ Select whether or not to use Call History info.
621
+
622
+ ![Bands Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
623
+
614
624
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
615
625
 
616
626
  **Digital modes only working for:**
@@ -737,6 +747,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
737
747
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
738
748
  | [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
739
749
  | [CTRL-SHIFT-K] | Open CW text input field. |
750
+ | [CTRL-=] | Log the contact without sending the ESM macros.|
740
751
 
741
752
  ### The Log Window
742
753
 
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=KQZ2wm5gDOSDcsae7H-Z5ZamZ5XnifNxcf4ohcsUXlM,140994
2
+ not1mm/__main__.py,sha256=T0hdB2sKV_bRA293-WeRf9vloO3HDODI4o1TY5Pf47I,141356
3
3
  not1mm/bandmap.py,sha256=X6mMHXS1kXBbUPZCaKgiVJ6Dz6DE6LEQqtEXfT3telg,30811
4
4
  not1mm/checkwindow.py,sha256=F6hNCbVSLG2PPY2afgmwlBWeqr1Uj4-n__AivDLVQ_0,9670
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -106,7 +106,7 @@ not1mm/lib/fldigi_sendstring.py,sha256=EeXSBRKgyUEzNyHBjMtHiFe-iOU3TcWcCCX77t0ur
106
106
  not1mm/lib/fldigi_watcher.py,sha256=reZz3fZLDoJVVZhJD9nIssk2aczCzadDSQTVu-5mTCM,919
107
107
  not1mm/lib/ft8_watcher.py,sha256=BFmVIsnbwuRMWoe-dIBybuCgi0WFmr8Km0O9l4eiwMM,4624
108
108
  not1mm/lib/ham_utility.py,sha256=WMmYLDI_fJHHsn0wkpGVit2Hv8fo6r9ybexXROia8Cg,11967
109
- not1mm/lib/lookup.py,sha256=_Awt1HjiuSrhLTrwoF8EoFQC_bYYH1vqfAo_HSaMb00,10838
109
+ not1mm/lib/lookup.py,sha256=KECMDi9tflRDzgTLeDfDl7HGWWRHvW3HCjNHyyjoWaY,10835
110
110
  not1mm/lib/multicast.py,sha256=KJcruI-bOuHfHXPjl3SGQhL6I9sKrygy-sdFSvxffUM,3255
111
111
  not1mm/lib/n1mm.py,sha256=H54mpgJF0GAmKavM-nb5OAq2SJFWYkux4eMWWiSRxJc,6288
112
112
  not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
@@ -115,55 +115,55 @@ not1mm/lib/plugin_common.py,sha256=TbFUbftjELFt4QRdsjSHbqnXSngZOlSwlCTClqosDXA,9
115
115
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
116
116
  not1mm/lib/settings.py,sha256=Xt0WE2ro_kUYdugQ0Pe1SQX07MHrJ0jyQqDqAKKqxuU,13564
117
117
  not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
118
- not1mm/lib/version.py,sha256=tWIKoEtc5hmkEZ0W-tPnsLBfyaSsLJThV1LOfDbfgmw,48
118
+ not1mm/lib/version.py,sha256=dRHOzsp-ZiSiUIB0ZoBxhLqhEugOUOPpqGHxS9OrTIU,48
119
119
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
120
- not1mm/plugins/10_10_fall_cw.py,sha256=QQjEgWQRT35qG1bi87QhoUIOzGbN8C27WIUhhoFNsAI,11866
121
- not1mm/plugins/10_10_spring_cw.py,sha256=nGznP9VLooaDnHi0JXttosqAtSRH32oXwWmMrXf95A0,11871
122
- not1mm/plugins/10_10_summer_phone.py,sha256=z2W7eGdegD2fjL36vcEyQyKRueY9fBE5nLE3uAZYZxc,11880
123
- not1mm/plugins/10_10_winter_phone.py,sha256=QUySORpo6TVXYwlD-DjjbaOS38WMjOtN5DaLd8nZvQ8,11883
120
+ not1mm/plugins/10_10_fall_cw.py,sha256=gNgTnafjM99cFvZ-6qBfWoOvd5Zj2Ehx6XjJvrHjm40,11872
121
+ not1mm/plugins/10_10_spring_cw.py,sha256=QME8LyLyTnHsA5sjGG19n_64-0gdgBMRRi9C8LpgQzs,11877
122
+ not1mm/plugins/10_10_summer_phone.py,sha256=65KBkLGN-oqO7oCgZRA4PO39bJNybYNnmmkctlXz8P4,11886
123
+ not1mm/plugins/10_10_winter_phone.py,sha256=A7-dO19hSH5yHcb1MJsK3XwG_qRlCgc6mTeBag6YvmE,11889
124
124
  not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
- not1mm/plugins/arrl_10m.py,sha256=q8jIUC_b7tZeESKEYuDdoJmPR7ot33HcqVm5R8dVmvg,14681
126
- not1mm/plugins/arrl_dx_cw.py,sha256=6CxLhewtceKCWY3jMyhdxknW4Eg1uFqTK0To-9sjZAc,18008
127
- not1mm/plugins/arrl_dx_ssb.py,sha256=AqSiIRlC4UAVyc4S2MnUqT1-vFkxQStl0zjeXPThRCk,18011
128
- not1mm/plugins/arrl_field_day.py,sha256=Jukp3TxYJojPVktA5hMaq272hiCqvl0V8A71F5mL--A,16961
125
+ not1mm/plugins/arrl_10m.py,sha256=GAVUrRRw5bFdkah2D2F2Sd2AWN-q0g4nsyzLgLnR5do,14687
126
+ not1mm/plugins/arrl_dx_cw.py,sha256=zAnVa3spbxjlDXMrV_RvvqyUAaYBZ6IZjxhsfLdc-9Q,18014
127
+ not1mm/plugins/arrl_dx_ssb.py,sha256=Xxa9t2mu9IhY71jevvY95CMLXOBHBOGstNFWUwsVQkE,18017
128
+ not1mm/plugins/arrl_field_day.py,sha256=N68dy5FhPCDYxTIP8PNQh4p5rZDJlHmhQqJyH6Qi4qo,16967
129
129
  not1mm/plugins/arrl_rtty_ru.py,sha256=hKUS4isjdXo3EYxQrsqsDupPp2chW8fpoWj0T1pTgJ4,7994
130
- not1mm/plugins/arrl_ss_cw.py,sha256=wXMgPkSj3-ZZ-Sl8JJdTxVIlh87QQx7AWKeVtrzKkyo,17590
131
- not1mm/plugins/arrl_ss_phone.py,sha256=XnfNFwtjuAxu285DUsUQdDNC_mDtKut0CT2KVRDKZN8,17240
132
- not1mm/plugins/arrl_vhf_jan.py,sha256=QonafOYBtrdwlvMSyu0SyroDLsyIqHvJ46Mx-QoaI4Q,16630
133
- not1mm/plugins/arrl_vhf_jun.py,sha256=F8XhZvYEx-rwaeKbiOGQybQrusurzOkRtKMx5oHY1hE,15722
134
- not1mm/plugins/arrl_vhf_sep.py,sha256=G7pSD7oNaQJx97380opAHgU6jySZ2LN8OVnI2vwxjS0,15722
135
- not1mm/plugins/canada_day.py,sha256=3_Fi8Tvdcw3ZsDAg1uveMnSKxde2YaGHZoF1x89e4w8,15987
136
- not1mm/plugins/cq_160_cw.py,sha256=FXLonVa_e70RQYwPrWlkTlGvAInw3Xihm9MyXXC3CHk,15370
137
- not1mm/plugins/cq_160_ssb.py,sha256=XRpFRdVmWmd-iJDuUIkWwqY3hlxXORG4CGU0Sy-dcR4,15413
138
- not1mm/plugins/cq_wpx_cw.py,sha256=-nBaCFp442qm3WItuqkFjLCxm9X0NjF1H62TlzMbGm4,18502
139
- not1mm/plugins/cq_wpx_rtty.py,sha256=BkjiXal8ZuqGUiR0LW4ylfDIkIwH15KkSfbKrA-vaMs,21321
140
- not1mm/plugins/cq_wpx_ssb.py,sha256=qrHz9MxKvkIvvXdogTwCrwXJaJ5SsdHjs2C5N2W_O-w,17152
130
+ not1mm/plugins/arrl_ss_cw.py,sha256=G1WT2_nF-IISHwteZYT0gJJ6vu_QqUE4hg8gm4tLxss,17596
131
+ not1mm/plugins/arrl_ss_phone.py,sha256=zIZidB3li8n7dxCsqGechkSmxjQM7TBHeLvSv2l5QdY,17246
132
+ not1mm/plugins/arrl_vhf_jan.py,sha256=wRxzWhZisEK7vFM05Wb5uQFA7Vrf7Wy6Gduq-cpmak4,16636
133
+ not1mm/plugins/arrl_vhf_jun.py,sha256=fRMTvANVoRZmiRy2_Zx9uIE2JaMMbs_wTkDd0-NAuxQ,15728
134
+ not1mm/plugins/arrl_vhf_sep.py,sha256=7fbk_Uxw7IKyFt4SDS0Vf7VFTdZXvVC-8gdcnPGlgVw,15728
135
+ not1mm/plugins/canada_day.py,sha256=kFwrJ6T9Zz34KmaWL88bj8MDSYNpO2q_KNWLkLLZKlI,15993
136
+ not1mm/plugins/cq_160_cw.py,sha256=UnVvhQ_XNTpnxmY1yQDkwhlFCRP__I7MhD2qabS6TYg,15376
137
+ not1mm/plugins/cq_160_ssb.py,sha256=paN-SDpX3CFajfDVpbdRSG3iLjLZjfUUXHm0qOR9LLA,15419
138
+ not1mm/plugins/cq_wpx_cw.py,sha256=g_d7i1DrQjAeGuof6SoKAr9HkR9ru3EBEKxLSBjNF4o,18508
139
+ not1mm/plugins/cq_wpx_rtty.py,sha256=t5ZAWAtsjda6rAHJ2N2mfenazhsSo2yzqRGV-TKZEbA,21327
140
+ not1mm/plugins/cq_wpx_ssb.py,sha256=f7cCyheb7VqkDMrM-wevcOCUXjrIXyBI0p2ynVYnDO0,17158
141
141
  not1mm/plugins/cq_ww_cw.py,sha256=tAVzA2EtjoRMVqxChZzwNYdPzhdfU23oOtIFDMf7af4,17406
142
- not1mm/plugins/cq_ww_rtty.py,sha256=YxQO8jnb-LWJnwV7tSOWNEWUWgwoBJ605jyYui4P7Xk,21934
143
- not1mm/plugins/cq_ww_ssb.py,sha256=1RPUz76Ijy9T4C14MhfTaf6fMC4Q6rgvbrkfO8fpFQ4,16999
144
- not1mm/plugins/cwt.py,sha256=SDXamK8BZRm1O91AGLIul9Wpzk423EbHxuEd45GCd88,17377
142
+ not1mm/plugins/cq_ww_rtty.py,sha256=wGRIABfEgg7xMbxet40_Ucv2R_qUppd8jq7a_nbjIu8,21940
143
+ not1mm/plugins/cq_ww_ssb.py,sha256=jL-_nhqI6M_g8i43bSstnPF6BKiE381HdEhIkhJsXhQ,17005
144
+ not1mm/plugins/cwt.py,sha256=duG8CgTWaFCjly7zOmhOJo-sH3amby0OarAjswhz1Cc,17370
145
145
  not1mm/plugins/general_logging.py,sha256=IHcgZ1YJEEaxPUn7jyTIUpQAsa1jaHO5zfHvcaqbF34,3494
146
- not1mm/plugins/helvetia.py,sha256=neRhkvBCdKJzz1ZbE3lisUPQ9sG8i0FAAqsfJBCaBcI,16345
147
- not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=EqajyS-hd7m6MEdIO5BZw_cQxmo61Yo6WB29sw_BP9U,14214
148
- not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=tQd0i-fjUs47g5bMwFvkrH89KY6bW5cPCKwDTQbE6gE,14219
149
- not1mm/plugins/iaru_hf.py,sha256=Re6EPy7LnhXhZoQd4zcsZ3hdJcpEsiewitL_oEMrq6w,12454
150
- not1mm/plugins/icwc_mst.py,sha256=4UfkfsUrTpvGLjdD-6Ea-gX9gUTQrtfddt-M3e7Z1A4,12744
151
- not1mm/plugins/jidx_cw.py,sha256=C5P9EiIO2iHEBv15IWknwr6f2Cr78ozY27Qxik8hm-A,13037
152
- not1mm/plugins/jidx_ph.py,sha256=MBXQEmZvRlbtlG-ad5vbM-uq500SDdSPsm-kbOPt1LU,12067
153
- not1mm/plugins/k1usn_sst.py,sha256=eLPv28T3ebHz0z9u5WaxrlKPAIOJkxOIVmpJbfDQbKY,16282
154
- not1mm/plugins/naqp_cw.py,sha256=tlS7l8bF1zoNjJ-FJacOEht47HcFjv0zIHBNkfNIfTQ,18361
155
- not1mm/plugins/naqp_rtty.py,sha256=JbluW-QNOyG47jlMBFmbV4UY5ABOFhd_YxYLtKPNP_4,22142
156
- not1mm/plugins/naqp_ssb.py,sha256=Xkp_nfJziKJJTY0E2GO3szVWp21MogFp-q1rb-oWuTo,17278
157
- not1mm/plugins/phone_weekly_test.py,sha256=4YuG-TfjX4FfDztuVlH0dB7TDMNB-pQ3KP07WL3AwKo,13238
146
+ not1mm/plugins/helvetia.py,sha256=Q-dQgJ5-81jwip0J_JE2XdUtkY1dVlD8bPfVbllwGLU,19925
147
+ not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=b3bmpBWpuN6lNvbBvUb8vUYHjeb0JmN4n6mgfug5ITs,14220
148
+ not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=FA9XBc137WSO00IY65qFChDK1pOOAOqdnda_lRCZbJ0,14225
149
+ not1mm/plugins/iaru_hf.py,sha256=Lg1rNWcLKDXR_AAFoMs-velZxNMTO_7kiJeT-j0A2wo,12460
150
+ not1mm/plugins/icwc_mst.py,sha256=N41Qg1sGAGkjx87uWUE77U-VvJmNXkCR_WfKdKg5nSk,12750
151
+ not1mm/plugins/jidx_cw.py,sha256=Mw5U25jxXJiHx8YEBXz6VPVVQ7rQb9LREYic6hVaMs0,13043
152
+ not1mm/plugins/jidx_ph.py,sha256=qhF_NQzx2RiM23CY9qPd4Vg_zFmnzSivvPXv4HpPLBY,12073
153
+ not1mm/plugins/k1usn_sst.py,sha256=P0HxQe_E38-jycpC17QuvzymkHG3Y8XkFkSSf3udRT0,16705
154
+ not1mm/plugins/naqp_cw.py,sha256=_51kobPyfxEuL7wU3sG42g0gqRW9hP5r09wM9DzHvJM,18630
155
+ not1mm/plugins/naqp_rtty.py,sha256=wMWoHW0VwydkrnKc6vSTazXTKf1iFsbLqeVhR8rtuts,22314
156
+ not1mm/plugins/naqp_ssb.py,sha256=ZAhpJtcmlTqZ-BGDS1jIirG64KWqG5TpvXeYZisawnE,17547
157
+ not1mm/plugins/phone_weekly_test.py,sha256=q0n8RJ39KF9uzkgTwrRqTlnS1l_xpm86UTsYRtD6Qok,13244
158
158
  not1mm/plugins/raem.py,sha256=yCpBRFmDZ3W4o3e2LUCgBHCGDSHtpsTCmlgWpdZPAw0,19474
159
- not1mm/plugins/ref_cw.py,sha256=gEH1avPN5E5WG5VZcHKAZU2HxGn8RZ3tm1oR7TKmRgY,20910
160
- not1mm/plugins/ref_ssb.py,sha256=UC8xwl4uRihTvlYsITCvfTCPVbNXpnO91T8qMDKaW8E,20916
161
- not1mm/plugins/stew_perry_topband.py,sha256=UOK9M23eMkcEB83kL8NPHl6QDBJFCXKZpBRlhfuEH2c,11581
162
- not1mm/plugins/weekly_rtty.py,sha256=WoMfQXJczvoHQB04i6TAvL6MF91uOOQ9ZmB9BpUkOfo,19098
163
- not1mm/plugins/winter_field_day.py,sha256=wPxHKPPeyE2XlRT6Unnz09evFwd0ghWtXU5l-nMr3aI,14492
164
- not1mm-24.11.3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
165
- not1mm-24.11.3.dist-info/METADATA,sha256=JLDmqbnC6kXf-dP6-U6rVDZxWvTWFnt3BblPITGcbrQ,33582
166
- not1mm-24.11.3.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
167
- not1mm-24.11.3.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
168
- not1mm-24.11.3.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
169
- not1mm-24.11.3.dist-info/RECORD,,
159
+ not1mm/plugins/ref_cw.py,sha256=bLu1BIHnMfJJAw-pcLDVSi93vTMBY8Io1I4SkJSRX0E,20916
160
+ not1mm/plugins/ref_ssb.py,sha256=Z6ZqNInyGFwWNSHXrzCDlokMxZ6NQQ2Yi1c8CGfmNWE,20922
161
+ not1mm/plugins/stew_perry_topband.py,sha256=5AfIrkGWf5hTqdtxsUfWdUxZameIbTyARSnDDGlatsg,11587
162
+ not1mm/plugins/weekly_rtty.py,sha256=5gH-TW1pBkCm2jrXOwDeVkBtylFqbBkymwk9rHxTGXs,19104
163
+ not1mm/plugins/winter_field_day.py,sha256=B3HkoInwV7sJLnUUso9nQvU1nZAtNTAeXZV5H5Yl-2Y,14915
164
+ not1mm-24.11.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
165
+ not1mm-24.11.5.dist-info/METADATA,sha256=ehtmM3pmHL9ER5KixRgKG9DGQfSOBbDQ3ntp4-ajxuY,34095
166
+ not1mm-24.11.5.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
167
+ not1mm-24.11.5.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
168
+ not1mm-24.11.5.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
169
+ not1mm-24.11.5.dist-info/RECORD,,