not1mm 24.11.17__py3-none-any.whl → 24.11.19__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 (55) hide show
  1. not1mm/__main__.py +1 -1
  2. not1mm/data/new_contest.ui +5 -0
  3. not1mm/lib/plugin_common.py +20 -1
  4. not1mm/lib/version.py +1 -1
  5. not1mm/plugins/10_10_fall_cw.py +12 -24
  6. not1mm/plugins/10_10_spring_cw.py +12 -24
  7. not1mm/plugins/10_10_summer_phone.py +12 -22
  8. not1mm/plugins/10_10_winter_phone.py +12 -24
  9. not1mm/plugins/arrl_10m.py +16 -29
  10. not1mm/plugins/arrl_dx_cw.py +11 -22
  11. not1mm/plugins/arrl_dx_ssb.py +11 -22
  12. not1mm/plugins/arrl_field_day.py +14 -22
  13. not1mm/plugins/arrl_rtty_ru.py +10 -22
  14. not1mm/plugins/arrl_ss_cw.py +14 -29
  15. not1mm/plugins/arrl_ss_phone.py +14 -29
  16. not1mm/plugins/arrl_vhf_jan.py +14 -29
  17. not1mm/plugins/arrl_vhf_jun.py +14 -29
  18. not1mm/plugins/arrl_vhf_sep.py +14 -29
  19. not1mm/plugins/canada_day.py +14 -29
  20. not1mm/plugins/cq_160_cw.py +10 -24
  21. not1mm/plugins/cq_160_ssb.py +10 -24
  22. not1mm/plugins/cq_wpx_cw.py +12 -25
  23. not1mm/plugins/cq_wpx_rtty.py +12 -25
  24. not1mm/plugins/cq_wpx_ssb.py +14 -29
  25. not1mm/plugins/cq_ww_cw.py +11 -22
  26. not1mm/plugins/cq_ww_rtty.py +12 -26
  27. not1mm/plugins/cq_ww_ssb.py +11 -22
  28. not1mm/plugins/cwt.py +12 -26
  29. not1mm/plugins/darc_xmas.py +560 -0
  30. not1mm/plugins/general_logging.py +12 -26
  31. not1mm/plugins/helvetia.py +15 -26
  32. not1mm/plugins/iaru_fieldday_r1_cw.py +12 -25
  33. not1mm/plugins/iaru_fieldday_r1_ssb.py +12 -25
  34. not1mm/plugins/iaru_hf.py +11 -22
  35. not1mm/plugins/icwc_mst.py +136 -40
  36. not1mm/plugins/jidx_cw.py +102 -23
  37. not1mm/plugins/jidx_ph.py +106 -29
  38. not1mm/plugins/k1usn_sst.py +10 -16
  39. not1mm/plugins/lz-dx.py +17 -28
  40. not1mm/plugins/naqp_cw.py +11 -17
  41. not1mm/plugins/naqp_rtty.py +11 -17
  42. not1mm/plugins/naqp_ssb.py +11 -17
  43. not1mm/plugins/phone_weekly_test.py +101 -16
  44. not1mm/plugins/raem.py +26 -25
  45. not1mm/plugins/ref_cw.py +17 -28
  46. not1mm/plugins/ref_ssb.py +32 -28
  47. not1mm/plugins/stew_perry_topband.py +102 -16
  48. not1mm/plugins/weekly_rtty.py +17 -16
  49. not1mm/plugins/winter_field_day.py +28 -24
  50. {not1mm-24.11.17.dist-info → not1mm-24.11.19.dist-info}/METADATA +9 -5
  51. {not1mm-24.11.17.dist-info → not1mm-24.11.19.dist-info}/RECORD +55 -54
  52. {not1mm-24.11.17.dist-info → not1mm-24.11.19.dist-info}/LICENSE +0 -0
  53. {not1mm-24.11.17.dist-info → not1mm-24.11.19.dist-info}/WHEEL +0 -0
  54. {not1mm-24.11.17.dist-info → not1mm-24.11.19.dist-info}/entry_points.txt +0 -0
  55. {not1mm-24.11.17.dist-info → not1mm-24.11.19.dist-info}/top_level.txt +0 -0
not1mm/plugins/ref_cw.py CHANGED
@@ -93,12 +93,10 @@ def interface(self):
93
93
  self.field2.show()
94
94
  self.field3.show()
95
95
  self.field4.show()
96
- label = self.field3.findChild(QtWidgets.QLabel)
97
- label.setText("Sent")
98
- self.field3.setAccessibleName("Sent")
99
- label = self.field4.findChild(QtWidgets.QLabel)
100
- label.setText("Dep/Pfx/SN")
101
- self.field4.setAccessibleName("Department, Prefix or SN")
96
+ self.other_label.setText("Sent")
97
+ self.other_1.setAccessibleName("Sent")
98
+ self.exch_label.setText("Dep/Pfx/SN")
99
+ self.other_2.setAccessibleName("Department, Prefix or SN")
102
100
 
103
101
 
104
102
  def reset_label(self):
@@ -108,30 +106,22 @@ def reset_label(self):
108
106
  def set_tab_next(self):
109
107
  """Set TAB Advances"""
110
108
  self.tab_next = {
111
- self.callsign: self.field3.findChild(QtWidgets.QLineEdit),
112
- self.field1.findChild(QtWidgets.QLineEdit): self.field3.findChild(
113
- QtWidgets.QLineEdit
114
- ),
115
- self.field2.findChild(QtWidgets.QLineEdit): self.field3.findChild(
116
- QtWidgets.QLineEdit
117
- ),
118
- self.field3.findChild(QtWidgets.QLineEdit): self.field4.findChild(
119
- QtWidgets.QLineEdit
120
- ),
121
- self.field4.findChild(QtWidgets.QLineEdit): self.callsign,
109
+ self.callsign: self.other_1,
110
+ self.sent: self.other_1,
111
+ self.receive: self.other_1,
112
+ self.other_1: self.other_2,
113
+ self.other_2: self.callsign,
122
114
  }
123
115
 
124
116
 
125
117
  def set_tab_prev(self):
126
118
  """Set TAB Advances"""
127
119
  self.tab_prev = {
128
- self.callsign: self.field4.findChild(QtWidgets.QLineEdit),
129
- self.field1.findChild(QtWidgets.QLineEdit): self.callsign,
130
- self.field2.findChild(QtWidgets.QLineEdit): self.callsign,
131
- self.field3.findChild(QtWidgets.QLineEdit): self.callsign,
132
- self.field4.findChild(QtWidgets.QLineEdit): self.field3.findChild(
133
- QtWidgets.QLineEdit
134
- ),
120
+ self.callsign: self.other_2,
121
+ self.sent: self.callsign,
122
+ self.receive: self.callsign,
123
+ self.other_1: self.callsign,
124
+ self.other_2: self.other_1,
135
125
  }
136
126
 
137
127
 
@@ -188,17 +178,16 @@ def predupe(self):
188
178
 
189
179
  def prefill(self):
190
180
  """Fill SentNR"""
191
- field = self.field3.findChild(QtWidgets.QLineEdit)
192
181
  sent_sxchange_setting = self.contest_settings.get("SentExchange", "")
193
182
  if sent_sxchange_setting.strip() == "#":
194
183
  result = self.database.get_serial()
195
184
  serial_nr = str(result.get("serial_nr", "1")).zfill(3)
196
185
  if serial_nr == "None":
197
186
  serial_nr = "001"
198
- if len(field.text()) == 0:
199
- field.setText(serial_nr)
187
+ if len(self.other_1.text()) == 0:
188
+ self.other_1.setText(serial_nr)
200
189
  else:
201
- field.setText(sent_sxchange_setting)
190
+ self.other_1.setText(sent_sxchange_setting)
202
191
 
203
192
 
204
193
  def points(self):
not1mm/plugins/ref_ssb.py CHANGED
@@ -39,6 +39,21 @@ Cabrillo name: REF-SSB
39
39
  Cabrillo name aliases: REF
40
40
  """
41
41
 
42
+ # Label and field names
43
+ # callsign_label, callsign
44
+ # snt_label, sent
45
+ # rcv_label, receive
46
+ # other_label, other_1
47
+ # exch_label, other_2
48
+
49
+ # command button names
50
+ # esc_stop
51
+ # log_it
52
+ # mark
53
+ # spot_it
54
+ # wipe
55
+
56
+
42
57
  import datetime
43
58
  import logging
44
59
  import platform
@@ -93,12 +108,10 @@ def interface(self):
93
108
  self.field2.show()
94
109
  self.field3.show()
95
110
  self.field4.show()
96
- label = self.field3.findChild(QtWidgets.QLabel)
97
- label.setText("Sent")
98
- self.field3.setAccessibleName("Sent")
99
- label = self.field4.findChild(QtWidgets.QLabel)
100
- label.setText("Dep/Pfx/SN")
101
- self.field4.setAccessibleName("Department, Prefix or SN")
111
+ self.other_label.setText("Sent")
112
+ self.other_1.setAccessibleName("Sent")
113
+ self.exch_label.setText("Dep/Pfx/SN")
114
+ self.other_2.setAccessibleName("Department, Prefix or SN")
102
115
 
103
116
 
104
117
  def reset_label(self):
@@ -108,30 +121,22 @@ def reset_label(self):
108
121
  def set_tab_next(self):
109
122
  """Set TAB Advances"""
110
123
  self.tab_next = {
111
- self.callsign: self.field3.findChild(QtWidgets.QLineEdit),
112
- self.field1.findChild(QtWidgets.QLineEdit): self.field3.findChild(
113
- QtWidgets.QLineEdit
114
- ),
115
- self.field2.findChild(QtWidgets.QLineEdit): self.field3.findChild(
116
- QtWidgets.QLineEdit
117
- ),
118
- self.field3.findChild(QtWidgets.QLineEdit): self.field4.findChild(
119
- QtWidgets.QLineEdit
120
- ),
121
- self.field4.findChild(QtWidgets.QLineEdit): self.callsign,
124
+ self.callsign: self.other_1,
125
+ self.sent: self.other_1,
126
+ self.receive: self.other_1,
127
+ self.other_1: self.other_2,
128
+ self.other_2: self.callsign,
122
129
  }
123
130
 
124
131
 
125
132
  def set_tab_prev(self):
126
133
  """Set TAB Advances"""
127
134
  self.tab_prev = {
128
- self.callsign: self.field4.findChild(QtWidgets.QLineEdit),
129
- self.field1.findChild(QtWidgets.QLineEdit): self.callsign,
130
- self.field2.findChild(QtWidgets.QLineEdit): self.callsign,
131
- self.field3.findChild(QtWidgets.QLineEdit): self.callsign,
132
- self.field4.findChild(QtWidgets.QLineEdit): self.field3.findChild(
133
- QtWidgets.QLineEdit
134
- ),
135
+ self.callsign: self.other_2,
136
+ self.sent: self.callsign,
137
+ self.receive: self.callsign,
138
+ self.other_1: self.callsign,
139
+ self.other_2: self.other_1,
135
140
  }
136
141
 
137
142
 
@@ -188,17 +193,16 @@ def predupe(self):
188
193
 
189
194
  def prefill(self):
190
195
  """Fill SentNR"""
191
- field = self.field3.findChild(QtWidgets.QLineEdit)
192
196
  sent_sxchange_setting = self.contest_settings.get("SentExchange", "")
193
197
  if sent_sxchange_setting.strip() == "#":
194
198
  result = self.database.get_serial()
195
199
  serial_nr = str(result.get("serial_nr", "1")).zfill(3)
196
200
  if serial_nr == "None":
197
201
  serial_nr = "001"
198
- if len(field.text()) == 0:
199
- field.setText(serial_nr)
202
+ if len(self.other_1.text()) == 0:
203
+ self.other_1.setText(serial_nr)
200
204
  else:
201
- field.setText(sent_sxchange_setting)
205
+ self.other_1.setText(sent_sxchange_setting)
202
206
 
203
207
 
204
208
  def points(self):
@@ -75,10 +75,9 @@ def interface(self):
75
75
  self.field3.show()
76
76
  self.field4.hide()
77
77
  self.snt_label.setText("SNT")
78
- self.field1.setAccessibleName("RST Sent")
79
- label = self.field3.findChild(QtWidgets.QLabel)
80
- label.setText("Grid")
81
- self.field3.setAccessibleName("Grid")
78
+ self.sent.setAccessibleName("RST Sent")
79
+ self.other_label.setText("Grid")
80
+ self.other_1.setAccessibleName("Grid")
82
81
 
83
82
 
84
83
  def reset_label(self):
@@ -88,24 +87,20 @@ def reset_label(self):
88
87
  def set_tab_next(self):
89
88
  """Set TAB Advances"""
90
89
  self.tab_next = {
91
- self.callsign: self.field3.findChild(QtWidgets.QLineEdit),
92
- self.field1.findChild(QtWidgets.QLineEdit): self.field3.findChild(
93
- QtWidgets.QLineEdit
94
- ),
95
- self.field2.findChild(QtWidgets.QLineEdit): self.field3.findChild(
96
- QtWidgets.QLineEdit
97
- ),
98
- self.field3.findChild(QtWidgets.QLineEdit): self.callsign,
90
+ self.callsign: self.other_1,
91
+ self.sent: self.other_1,
92
+ self.receive: self.other_1,
93
+ self.other_1: self.callsign,
99
94
  }
100
95
 
101
96
 
102
97
  def set_tab_prev(self):
103
98
  """Set TAB Advances"""
104
99
  self.tab_prev = {
105
- self.callsign: self.field3.findChild(QtWidgets.QLineEdit),
106
- self.field1.findChild(QtWidgets.QLineEdit): self.callsign,
107
- self.field2.findChild(QtWidgets.QLineEdit): self.callsign,
108
- self.field3.findChild(QtWidgets.QLineEdit): self.callsign,
100
+ self.callsign: self.other_1,
101
+ self.sent: self.callsign,
102
+ self.receive: self.callsign,
103
+ self.other_1: self.callsign,
109
104
  }
110
105
 
111
106
 
@@ -383,3 +378,94 @@ def check_call_history(self):
383
378
  self.history_info.setText(f"{result.get('UserText','')}")
384
379
  if self.other_1.text() == "":
385
380
  self.other_1.setText(f"{result.get('Loc1', '')}")
381
+
382
+
383
+ def process_esm(self, new_focused_widget=None, with_enter=False):
384
+ """ESM State Machine"""
385
+
386
+ # self.pref["run_state"]
387
+
388
+ # -----===== Assigned F-Keys =====-----
389
+ # self.esm_dict["CQ"]
390
+ # self.esm_dict["EXCH"]
391
+ # self.esm_dict["QRZ"]
392
+ # self.esm_dict["AGN"]
393
+ # self.esm_dict["HISCALL"]
394
+ # self.esm_dict["MYCALL"]
395
+ # self.esm_dict["QSOB4"]
396
+
397
+ # ----==== text fields ====----
398
+ # self.callsign
399
+ # self.sent
400
+ # self.receive
401
+ # self.other_1
402
+ # self.other_2
403
+
404
+ if new_focused_widget is not None:
405
+ self.current_widget = self.inputs_dict.get(new_focused_widget)
406
+
407
+ # print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
408
+
409
+ for a_button in [
410
+ self.esm_dict["CQ"],
411
+ self.esm_dict["EXCH"],
412
+ self.esm_dict["QRZ"],
413
+ self.esm_dict["AGN"],
414
+ self.esm_dict["HISCALL"],
415
+ self.esm_dict["MYCALL"],
416
+ self.esm_dict["QSOB4"],
417
+ ]:
418
+ if a_button is not None:
419
+ self.restore_button_color(a_button)
420
+
421
+ buttons_to_send = []
422
+
423
+ if self.pref.get("run_state"):
424
+ if self.current_widget == "callsign":
425
+ if len(self.callsign.text()) < 3:
426
+ self.make_button_green(self.esm_dict["CQ"])
427
+ buttons_to_send.append(self.esm_dict["CQ"])
428
+ elif len(self.callsign.text()) > 2:
429
+ self.make_button_green(self.esm_dict["HISCALL"])
430
+ self.make_button_green(self.esm_dict["EXCH"])
431
+ buttons_to_send.append(self.esm_dict["HISCALL"])
432
+ buttons_to_send.append(self.esm_dict["EXCH"])
433
+
434
+ elif self.current_widget in ["other_1", "other_2"]:
435
+ if self.other_1.text() == "":
436
+ self.make_button_green(self.esm_dict["AGN"])
437
+ buttons_to_send.append(self.esm_dict["AGN"])
438
+ else:
439
+ self.make_button_green(self.esm_dict["QRZ"])
440
+ buttons_to_send.append(self.esm_dict["QRZ"])
441
+ buttons_to_send.append("LOGIT")
442
+
443
+ if with_enter is True and bool(len(buttons_to_send)):
444
+ for button in buttons_to_send:
445
+ if button:
446
+ if button == "LOGIT":
447
+ self.save_contact()
448
+ continue
449
+ self.process_function_key(button)
450
+ else:
451
+ if self.current_widget == "callsign":
452
+ if len(self.callsign.text()) > 2:
453
+ self.make_button_green(self.esm_dict["MYCALL"])
454
+ buttons_to_send.append(self.esm_dict["MYCALL"])
455
+
456
+ elif self.current_widget in ["other_1", "other_2"]:
457
+ if self.other_1.text() == "":
458
+ self.make_button_green(self.esm_dict["AGN"])
459
+ buttons_to_send.append(self.esm_dict["AGN"])
460
+ else:
461
+ self.make_button_green(self.esm_dict["EXCH"])
462
+ buttons_to_send.append(self.esm_dict["EXCH"])
463
+ buttons_to_send.append("LOGIT")
464
+
465
+ if with_enter is True and bool(len(buttons_to_send)):
466
+ for button in buttons_to_send:
467
+ if button:
468
+ if button == "LOGIT":
469
+ self.save_contact()
470
+ continue
471
+ self.process_function_key(button)
@@ -18,6 +18,13 @@
18
18
  # Mail logs to: (none)
19
19
  # Find rules at: https://radiosport.world/wrt.html
20
20
 
21
+ # Label and field names
22
+ # callsign_label, callsign
23
+ # snt_label, sent
24
+ # rcv_label, receive
25
+ # other_label, other_1
26
+ # exch_label, other_2
27
+
21
28
  import datetime
22
29
  import logging
23
30
  import platform
@@ -69,12 +76,10 @@ def interface(self):
69
76
  self.field2.hide()
70
77
  self.field3.show()
71
78
  self.field4.show()
72
- namefield = self.field3.findChild(QtWidgets.QLabel)
73
- namefield.setText("Name")
74
- self.field3.setAccessibleName("Name")
75
- spc = self.field4.findChild(QtWidgets.QLabel)
76
- spc.setText("SPC")
77
- self.field4.setAccessibleName("SPC")
79
+ self.other_label.setText("Name")
80
+ self.other_1.setAccessibleName("Name")
81
+ self.exch_label.setText("SPC")
82
+ self.other_2.setAccessibleName("SPC")
78
83
 
79
84
 
80
85
  def reset_label(self):
@@ -84,22 +89,18 @@ def reset_label(self):
84
89
  def set_tab_next(self):
85
90
  """Set TAB Advances"""
86
91
  self.tab_next = {
87
- self.callsign: self.field3.findChild(QtWidgets.QLineEdit),
88
- self.field3.findChild(QtWidgets.QLineEdit): self.field4.findChild(
89
- QtWidgets.QLineEdit
90
- ),
91
- self.field4.findChild(QtWidgets.QLineEdit): self.callsign,
92
+ self.callsign: self.other_1,
93
+ self.other_1: self.other_2,
94
+ self.other_2: self.callsign,
92
95
  }
93
96
 
94
97
 
95
98
  def set_tab_prev(self):
96
99
  """Set TAB Advances"""
97
100
  self.tab_prev = {
98
- self.callsign: self.field4.findChild(QtWidgets.QLineEdit),
99
- self.field3.findChild(QtWidgets.QLineEdit): self.callsign,
100
- self.field4.findChild(QtWidgets.QLineEdit): self.field3.findChild(
101
- QtWidgets.QLineEdit
102
- ),
101
+ self.callsign: self.other_2,
102
+ self.other_1: self.callsign,
103
+ self.other_2: self.other_1,
103
104
  }
104
105
 
105
106
 
@@ -2,6 +2,20 @@
2
2
 
3
3
  # pylint: disable=invalid-name, unused-argument, unused-variable, c-extension-no-member
4
4
 
5
+ # Label and field names
6
+ # callsign_label, callsign
7
+ # snt_label, sent
8
+ # rcv_label, receive
9
+ # other_label, other_1
10
+ # exch_label, other_2
11
+
12
+ # command button names
13
+ # esc_stop
14
+ # log_it
15
+ # mark
16
+ # spot_it
17
+ # wipe
18
+
5
19
  import datetime
6
20
  import logging
7
21
 
@@ -48,12 +62,10 @@ def interface(self):
48
62
  self.field2.hide()
49
63
  self.field3.show()
50
64
  self.field4.show()
51
- label = self.field3.findChild(QtWidgets.QLabel)
52
- label.setText("Class")
53
- self.field3.setAccessibleName("Class")
54
- label = self.field4.findChild(QtWidgets.QLabel)
55
- label.setText("Section")
56
- self.field4.setAccessibleName("Section")
65
+ self.other_label.setText("Class")
66
+ self.other_1.setAccessibleName("Class")
67
+ self.exch_label.setText("Section")
68
+ self.other_2.setAccessibleName("Section")
57
69
 
58
70
 
59
71
  def reset_label(self):
@@ -63,30 +75,22 @@ def reset_label(self):
63
75
  def set_tab_next(self):
64
76
  """Set TAB Advances"""
65
77
  self.tab_next = {
66
- self.callsign: self.field3.findChild(QtWidgets.QLineEdit),
67
- self.field1.findChild(QtWidgets.QLineEdit): self.field3.findChild(
68
- QtWidgets.QLineEdit
69
- ),
70
- self.field2.findChild(QtWidgets.QLineEdit): self.field3.findChild(
71
- QtWidgets.QLineEdit
72
- ),
73
- self.field3.findChild(QtWidgets.QLineEdit): self.field4.findChild(
74
- QtWidgets.QLineEdit
75
- ),
76
- self.field4.findChild(QtWidgets.QLineEdit): self.callsign,
78
+ self.callsign: self.other_1,
79
+ self.sent: self.other_1,
80
+ self.receive: self.other_1,
81
+ self.other_1: self.other_2,
82
+ self.other_2: self.callsign,
77
83
  }
78
84
 
79
85
 
80
86
  def set_tab_prev(self):
81
87
  """Set TAB Advances"""
82
88
  self.tab_prev = {
83
- self.callsign: self.field4.findChild(QtWidgets.QLineEdit),
84
- self.field1.findChild(QtWidgets.QLineEdit): self.callsign,
85
- self.field2.findChild(QtWidgets.QLineEdit): self.callsign,
86
- self.field3.findChild(QtWidgets.QLineEdit): self.callsign,
87
- self.field4.findChild(QtWidgets.QLineEdit): self.field3.findChild(
88
- QtWidgets.QLineEdit
89
- ),
89
+ self.callsign: self.other_2,
90
+ self.sent: self.callsign,
91
+ self.receive: self.callsign,
92
+ self.other_1: self.callsign,
93
+ self.other_2: self.other_1,
90
94
  }
91
95
 
92
96
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.11.17
3
+ Version: 24.11.19
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
@@ -219,23 +219,27 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
219
219
  - **CQ WPX CW, RTTY, SSB**
220
220
  - **CQ World Wide CW, RTTY, SSB**
221
221
  - **CWOps CWT**
222
+ - **DARC Xmas**
222
223
  - **Helvetia**
223
224
  - IARU Fieldday R1 CW, SSB
224
225
  - IARU HF
225
- - ICWC MST
226
- - Japan International DX CW, SSB
226
+ - **ICWC MST**
227
+ - **Japan International DX CW, SSB**
227
228
  - **K1USN Slow Speed Test**
229
+ - **LZ DX**
228
230
  - **NAQP CW, RTTY, SSB**
229
- - Phone Weekly Test
231
+ - **Phone Weekly Test**
230
232
  - **RAEM**
231
233
  - **RAC Canada Day**
232
234
  - **REF CW, SSB**
233
- - Stew Perry Topband
235
+ - **Stew Perry Topband**
234
236
  - **Weekly RTTY**
235
237
  - **Winter Field Day**
236
238
 
237
239
  ## Recent Changes (Polishing the Turd)
238
240
 
241
+ - [24-11-19] Added ESM to Stew Perry, Phone Weekly, Medium Speed Test and JIDX.
242
+ - [24-11-18] Accepted PR from dg9vh for the DARC XMAS Contest.
239
243
  - [24-11-17] Accepted PR from dg9vh for the LZ DX contest.
240
244
  - [24-11-15] Made checkwindow font bigger and match a little more contrasted.
241
245
  - [24-11-12] add check for ipv4 address for CAT.
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=PxZOEeA305r1-6JH-nEsD0L3ApeJOo8f9djG3tYmlFk,142248
2
+ not1mm/__main__.py,sha256=fgtaA-ZkoYL0I8tuA1X3iitHgUtiRXYYzT6_fbbjfPE,142248
3
3
  not1mm/bandmap.py,sha256=X6mMHXS1kXBbUPZCaKgiVJ6Dz6DE6LEQqtEXfT3telg,30811
4
4
  not1mm/checkwindow.py,sha256=VFAcKYTcoWhmIf91chwY6tyao9FQMWPiUkgDDkkWaog,9670
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -31,7 +31,7 @@ not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N
31
31
  not1mm/data/logwindow.ui,sha256=f7vULj96tHIQuR1nJMyvPHHcmVgzkhv9D1isyojsnFU,1458
32
32
  not1mm/data/logwindowx.ui,sha256=CwpI-h7cI1yqyldH9quKftsdHL5lTyL9ABOcf80nfqc,1632
33
33
  not1mm/data/main.ui,sha256=pI-70TYESe85ENkRH8l1DXnKDOkwYqKXUdMk6KYaN50,63193
34
- not1mm/data/new_contest.ui,sha256=Y1YIflpArpWAzYjfKE0hOruyhO2UYsDAyENif3nwRAo,23632
34
+ not1mm/data/new_contest.ui,sha256=SiKF_zwnfHopEN_x9R1ftC5f4IO9qLOkIFnoXhoe8vQ,23738
35
35
  not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
36
36
  not1mm/data/opon.ui,sha256=QDicqAk2lORG2UWsHa6jHlsGn6uzrrI2R4HSAocpPes,2258
37
37
  not1mm/data/pickcontest.ui,sha256=4hPBszCglObThx_eIWtmK9CEcbr7WBjbB1rKZdI-o3I,1707
@@ -110,60 +110,61 @@ 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
113
- not1mm/lib/plugin_common.py,sha256=TbFUbftjELFt4QRdsjSHbqnXSngZOlSwlCTClqosDXA,9727
113
+ not1mm/lib/plugin_common.py,sha256=AABdx9DoTT8Znrup7AkfmKGC22hshMsEypiMqV0iKw0,10671
114
114
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
115
115
  not1mm/lib/settings.py,sha256=Xt0WE2ro_kUYdugQ0Pe1SQX07MHrJ0jyQqDqAKKqxuU,13564
116
116
  not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
117
- not1mm/lib/version.py,sha256=y8htQUC1rQ50qc5l_eZgL6oDbuN8zG6wC8Y7-mRiN1s,49
117
+ not1mm/lib/version.py,sha256=TjfjB8wIB5oYQmLzecQzZe-pvYa2dd0cPEpXKiYh3AE,49
118
118
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
119
- not1mm/plugins/10_10_fall_cw.py,sha256=gNgTnafjM99cFvZ-6qBfWoOvd5Zj2Ehx6XjJvrHjm40,11872
120
- not1mm/plugins/10_10_spring_cw.py,sha256=QME8LyLyTnHsA5sjGG19n_64-0gdgBMRRi9C8LpgQzs,11877
121
- not1mm/plugins/10_10_summer_phone.py,sha256=65KBkLGN-oqO7oCgZRA4PO39bJNybYNnmmkctlXz8P4,11886
122
- not1mm/plugins/10_10_winter_phone.py,sha256=A7-dO19hSH5yHcb1MJsK3XwG_qRlCgc6mTeBag6YvmE,11889
119
+ not1mm/plugins/10_10_fall_cw.py,sha256=r2YkRNiMS_3hXrf3zeiijzW24roilyIXnwXwTd07X8M,11208
120
+ not1mm/plugins/10_10_spring_cw.py,sha256=EBBcVgxDhtAK7cGHq9LOU6LhY9vSqlk7GEkApn3KRYM,11213
121
+ not1mm/plugins/10_10_summer_phone.py,sha256=k_60LEPV7rS_QBGo_pfndkudgKPc59jgMPLTW_TqYMM,11326
122
+ not1mm/plugins/10_10_winter_phone.py,sha256=8BPLi40zmHu86R3NmM0r2bdfjQN9e4tAXSqxcKEdeTE,11225
123
123
  not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
- not1mm/plugins/arrl_10m.py,sha256=GAVUrRRw5bFdkah2D2F2Sd2AWN-q0g4nsyzLgLnR5do,14687
125
- not1mm/plugins/arrl_dx_cw.py,sha256=zAnVa3spbxjlDXMrV_RvvqyUAaYBZ6IZjxhsfLdc-9Q,18014
126
- not1mm/plugins/arrl_dx_ssb.py,sha256=Xxa9t2mu9IhY71jevvY95CMLXOBHBOGstNFWUwsVQkE,18017
127
- not1mm/plugins/arrl_field_day.py,sha256=N68dy5FhPCDYxTIP8PNQh4p5rZDJlHmhQqJyH6Qi4qo,16967
128
- not1mm/plugins/arrl_rtty_ru.py,sha256=hKUS4isjdXo3EYxQrsqsDupPp2chW8fpoWj0T1pTgJ4,7994
129
- not1mm/plugins/arrl_ss_cw.py,sha256=8Dg8bxZoTkZWP0DYy7Lt3f8CHNSksNeE4aCGTAKF0y0,17910
130
- not1mm/plugins/arrl_ss_phone.py,sha256=zIZidB3li8n7dxCsqGechkSmxjQM7TBHeLvSv2l5QdY,17246
131
- not1mm/plugins/arrl_vhf_jan.py,sha256=hKfGtQZJWhOuzqhafg8KgbSFDS7gttBdjuuqFH_7e58,17242
132
- not1mm/plugins/arrl_vhf_jun.py,sha256=7BevXyO2Ahsy1Sk73Q-YadUcERcij8ksmewnGrXO8dY,16334
133
- not1mm/plugins/arrl_vhf_sep.py,sha256=yULszFTT8M2FSfJamHNITkCj7CNwxchaMlvoeaxdvgE,16334
134
- not1mm/plugins/canada_day.py,sha256=kFwrJ6T9Zz34KmaWL88bj8MDSYNpO2q_KNWLkLLZKlI,15993
135
- not1mm/plugins/cq_160_cw.py,sha256=J4jDjXqZJQZFHo4c47fivOqheDq3i300o8FAIy6fr6E,16067
136
- not1mm/plugins/cq_160_ssb.py,sha256=vwwRlmmN0hcm9qptTQUlxCs9_kMX9-50zNnsgek8ijA,16110
137
- not1mm/plugins/cq_wpx_cw.py,sha256=g_d7i1DrQjAeGuof6SoKAr9HkR9ru3EBEKxLSBjNF4o,18508
138
- not1mm/plugins/cq_wpx_rtty.py,sha256=t5ZAWAtsjda6rAHJ2N2mfenazhsSo2yzqRGV-TKZEbA,21327
139
- not1mm/plugins/cq_wpx_ssb.py,sha256=f7cCyheb7VqkDMrM-wevcOCUXjrIXyBI0p2ynVYnDO0,17158
140
- not1mm/plugins/cq_ww_cw.py,sha256=rLd95LgScgdrZibpX2kOlzmjCHWSy7PFqXisYXn4CzA,18016
141
- not1mm/plugins/cq_ww_rtty.py,sha256=8JV0TsUGXLn0LsEyDJhgb56r2nlcSm4meGURl5WvDs0,22678
142
- not1mm/plugins/cq_ww_ssb.py,sha256=Io9b40ZgZHmE8JsDe5dYHcuECWEYiT_BDXGxDpqQsjY,17615
143
- not1mm/plugins/cwt.py,sha256=89MWOQttlRfcur8bt9xl5J79Ks67ctVhv8r62yQRxQo,17711
144
- not1mm/plugins/general_logging.py,sha256=IHcgZ1YJEEaxPUn7jyTIUpQAsa1jaHO5zfHvcaqbF34,3494
145
- not1mm/plugins/helvetia.py,sha256=d8DugnlUYOC_ig3lpJcwrTIV2YJxreePNhtt1Bjcc1Q,20240
146
- not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=b3bmpBWpuN6lNvbBvUb8vUYHjeb0JmN4n6mgfug5ITs,14220
147
- not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=FA9XBc137WSO00IY65qFChDK1pOOAOqdnda_lRCZbJ0,14225
148
- not1mm/plugins/iaru_hf.py,sha256=Lg1rNWcLKDXR_AAFoMs-velZxNMTO_7kiJeT-j0A2wo,12460
149
- not1mm/plugins/icwc_mst.py,sha256=N41Qg1sGAGkjx87uWUE77U-VvJmNXkCR_WfKdKg5nSk,12750
150
- not1mm/plugins/jidx_cw.py,sha256=Mw5U25jxXJiHx8YEBXz6VPVVQ7rQb9LREYic6hVaMs0,13043
151
- not1mm/plugins/jidx_ph.py,sha256=qhF_NQzx2RiM23CY9qPd4Vg_zFmnzSivvPXv4HpPLBY,12073
152
- not1mm/plugins/k1usn_sst.py,sha256=sDrZH5ZR9-KwuLO-KNrNC88A74l5pd2DhB0Hu1jTw8o,17022
153
- not1mm/plugins/lz-dx.py,sha256=Ci8mYfKgom-eK7ZWfWDlaS8btq-IBQh4qsgUdFRGH2c,20137
154
- not1mm/plugins/naqp_cw.py,sha256=_Dn0bt2RylNOdtr_KuqqmroSGqZn-5XuJgBbkVq01es,18947
155
- not1mm/plugins/naqp_rtty.py,sha256=IZYrqwfQo5Vjz-xYiDawFDZ9R7d4dG-XZIsvHWYciHI,22631
156
- not1mm/plugins/naqp_ssb.py,sha256=tu8AmMQdbL-krHPIUdVaDW881mQnWQu5dCmrR0c7sAU,17864
157
- not1mm/plugins/phone_weekly_test.py,sha256=q0n8RJ39KF9uzkgTwrRqTlnS1l_xpm86UTsYRtD6Qok,13244
158
- not1mm/plugins/raem.py,sha256=viTF1KRVb0I2GYX1mk8cLuEnAQJSyQq9D5muwVxh2ew,19765
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=D6KCyna4SVt6w_huH-nkxGXnOpJKbbi3Dg7J81e_dpw,12193
162
- not1mm/plugins/weekly_rtty.py,sha256=q8A2UOMQidLoFtd5QxZWHtUPCgms_2dgYocO8d6tf70,19836
163
- not1mm/plugins/winter_field_day.py,sha256=5SAaFq-1NYMr18Ee-aFZhXsaU-Pzwte1GOJoGCaUwxg,15232
164
- not1mm-24.11.17.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
165
- not1mm-24.11.17.dist-info/METADATA,sha256=PpeeGFLV4eVNceP6rgdnLxvpN6MR4juL7bzsR-6K91s,36303
166
- not1mm-24.11.17.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
167
- not1mm-24.11.17.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
168
- not1mm-24.11.17.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
169
- not1mm-24.11.17.dist-info/RECORD,,
124
+ not1mm/plugins/arrl_10m.py,sha256=CEumvlyRzW63uIPZKnUQ-vWWj_NEi_qItRRojHZxRrM,14047
125
+ not1mm/plugins/arrl_dx_cw.py,sha256=1epTIf9TjeUCjYlpRDU54Ig3lJdXa2e5JZI9SCGE080,17400
126
+ not1mm/plugins/arrl_dx_ssb.py,sha256=IEZ6tlP9stW3Mdr5_qTBS77hjAUU43IpagyPjr0eqaQ,17403
127
+ not1mm/plugins/arrl_field_day.py,sha256=YEyXr1Ytllq12sCj54erOba0wrblwb0_bq51gj75OIQ,16478
128
+ not1mm/plugins/arrl_rtty_ru.py,sha256=npOuf7OxcF0BbvpXJuPOLwf0-wONbDlGW7_B_-BSFz0,7370
129
+ not1mm/plugins/arrl_ss_cw.py,sha256=HlUsDqyPAZh9VuatcGJ7EDst4qfS6f35yv_nPPzYW7M,17162
130
+ not1mm/plugins/arrl_ss_phone.py,sha256=_QWnat0y2LLoKTP9RF-sZBqxWxHNrKiPYopBpq8kKTs,16498
131
+ not1mm/plugins/arrl_vhf_jan.py,sha256=1KhMR4vAPz1Dan5K3Q5DyIlKB_imOj8aq1EIcV4BtHg,16494
132
+ not1mm/plugins/arrl_vhf_jun.py,sha256=yAv0d6d27UlcY-lPHiGptCEF9zWIkNh4ChYeTH9CHH0,15586
133
+ not1mm/plugins/arrl_vhf_sep.py,sha256=6pNU5yV2NrGnkOEEJcbXsgKJa8VsIwxKvfBayzSM3U0,15586
134
+ not1mm/plugins/canada_day.py,sha256=WxtIm0xl8vd8XUDHX3VQnjDzRhPXM1UR92Qjg99NLMY,15245
135
+ not1mm/plugins/cq_160_cw.py,sha256=mAMGyS0M02i-pJ6-aH3iDIUk55dSGDjsDJ6WEXEetro,15351
136
+ not1mm/plugins/cq_160_ssb.py,sha256=GSjoKLx8bktrGa0EWu3tvx3N3IjWKWNpzWFdH2t2E3Y,15394
137
+ not1mm/plugins/cq_wpx_cw.py,sha256=H1H4xL-hx0sqU_8fSQYnNzO0ZcOLV-KSOQT9wPvIva0,17843
138
+ not1mm/plugins/cq_wpx_rtty.py,sha256=nT2lMdAM1pRu2jNKI4FpkGei9kEGX0XcF_24FkL0lnY,20662
139
+ not1mm/plugins/cq_wpx_ssb.py,sha256=Zjga12w_ISh4aZjCYZbpwN0x0032Prc8p7aIGI7HJFQ,16410
140
+ not1mm/plugins/cq_ww_cw.py,sha256=SAneVRI1UXhC8syYlFwLWH9mCWvQ44Nxhf0jhbMTaw0,17402
141
+ not1mm/plugins/cq_ww_rtty.py,sha256=Pfpr8xWJwp2NOci-WQMTUZaMpAtsUGq1jrIIUv6lQ2Y,21971
142
+ not1mm/plugins/cq_ww_ssb.py,sha256=2zhIbqthXLekQhK22icOScegm6kYZLbmpPMZYEmIM5I,17001
143
+ not1mm/plugins/cwt.py,sha256=3gA1DqiXxj5NARdG5i0PyFmuq3XSXn6LisZxD5jFs4M,17034
144
+ not1mm/plugins/darc_xmas.py,sha256=GdtAQVCLogKGzZaexJfzsZms5SbLLlO1YweFPjgvYWw,18458
145
+ not1mm/plugins/general_logging.py,sha256=2-9We3wo6mbaNqE4GujgvpCsiaVYcNYloqDYO8MKQAc,2787
146
+ not1mm/plugins/helvetia.py,sha256=SRKn7jflfYPUNrvmErDM44af5YWUe57h7JkIwFSbT0Q,19609
147
+ not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=b-WA-KcixXNTozO5lfqujeCBXFRuM_Ubm_9MIwlrhIs,13555
148
+ not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=gQH2XQuE-ywaGq2sde-sPP1_C6_Y81v3FPDiE2BJixA,13560
149
+ not1mm/plugins/iaru_hf.py,sha256=PVdShWxugsn211ti8mfoWBveQyIkN8XFDMQO4tfNUEY,11846
150
+ not1mm/plugins/icwc_mst.py,sha256=K1tgNXiknGbnvxG4sEZQCgZnjI6x3OYRI_4Djmr8E2Q,15976
151
+ not1mm/plugins/jidx_cw.py,sha256=KJOE3fU0KVMqD5IqvnN3YDHPEwrMx3yJZBmCtAIP7WQ,15650
152
+ not1mm/plugins/jidx_ph.py,sha256=1l92EmDZJFRGZjR1VrISgFc8KoHVfmJvLsaVsuufIMs,14599
153
+ not1mm/plugins/k1usn_sst.py,sha256=71uO6nUf86J77qSQIiYl_H9EKa2iwyHijcMOk61q6uQ,16653
154
+ not1mm/plugins/lz-dx.py,sha256=I9k67Q9ifSfbrd0ptfr6nOsp6PGfzLifQlVLJYJeOBk,19505
155
+ not1mm/plugins/naqp_cw.py,sha256=oe0Ytx185hUGvebSc0vzFwdBOpNkIFRgGabGSmaV7H8,18576
156
+ not1mm/plugins/naqp_rtty.py,sha256=7bGe33TP4VSVgwv3-pPa8Xfkx0SXbe8sV-0LmTlOugo,22260
157
+ not1mm/plugins/naqp_ssb.py,sha256=j8XERJcwLsLi4Ts0Ol1lyk3JKP0_DStvHvd1jWI8M14,17493
158
+ not1mm/plugins/phone_weekly_test.py,sha256=zJfeczM3U5KcrK0KqSx_ABjNy6hldjiq_J9Q1rcKk9g,16216
159
+ not1mm/plugins/raem.py,sha256=pTL9fdpw9rXxyoIqWY0ptjkDoqmc7NxNyF4O_sBuW5o,19262
160
+ not1mm/plugins/ref_cw.py,sha256=yTWg6-MosGX-UyxO0N03GEsP46r0vOp1f00ZL9LGVmQ,20287
161
+ not1mm/plugins/ref_ssb.py,sha256=G2Gz4kApchmOZQVnBexEokSEvdb-mZWJAfyJ1D6JDGY,20498
162
+ not1mm/plugins/stew_perry_topband.py,sha256=Gy_vv6tgkR-3vmvsUVO0pVfHMkUJSxpt7G4secn0RH8,15084
163
+ not1mm/plugins/weekly_rtty.py,sha256=PI0_AtEdZZKGAuKnP-b2EYn9xwCN1Ablk38trbNP3Rc,19603
164
+ not1mm/plugins/winter_field_day.py,sha256=9w3tDL9ZWiENSTERc3vzDbBktvI7pnyNvlH6fDjAi08,14841
165
+ not1mm-24.11.19.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
166
+ not1mm-24.11.19.dist-info/METADATA,sha256=xHUlQiTW-vHdEhL_ucf88gQGfnM6VTia96FOyq4u91c,36490
167
+ not1mm-24.11.19.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
168
+ not1mm-24.11.19.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
169
+ not1mm-24.11.19.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
170
+ not1mm-24.11.19.dist-info/RECORD,,