not1mm 23.8.5__py3-none-any.whl → 23.8.6__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/checkwindow.py +15 -2
- not1mm/data/checkwindow.ui +56 -4
- not1mm/lib/database.py +37 -0
- not1mm/lib/version.py +1 -1
- {not1mm-23.8.5.dist-info → not1mm-23.8.6.dist-info}/METADATA +11 -1
- {not1mm-23.8.5.dist-info → not1mm-23.8.6.dist-info}/RECORD +10 -10
- {not1mm-23.8.5.dist-info → not1mm-23.8.6.dist-info}/LICENSE +0 -0
- {not1mm-23.8.5.dist-info → not1mm-23.8.6.dist-info}/WHEEL +0 -0
- {not1mm-23.8.5.dist-info → not1mm-23.8.6.dist-info}/entry_points.txt +0 -0
- {not1mm-23.8.5.dist-info → not1mm-23.8.6.dist-info}/top_level.txt +0 -0
not1mm/checkwindow.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"""
|
3
3
|
Check Window
|
4
4
|
"""
|
5
|
-
# pylint: disable=no-name-in-module, unused-import, no-member
|
5
|
+
# pylint: disable=no-name-in-module, unused-import, no-member, invalid-name
|
6
6
|
|
7
7
|
import logging
|
8
8
|
import pkgutil
|
@@ -67,9 +67,11 @@ class MainWindow(QMainWindow):
|
|
67
67
|
self.masterList.clear()
|
68
68
|
self.telnetList.clear()
|
69
69
|
self.callhistoryList.clear()
|
70
|
-
self.logList.hide()
|
70
|
+
# self.logList.hide()
|
71
71
|
self.telnetList.hide()
|
72
|
+
self.telnetListLabel.hide()
|
72
73
|
self.callhistoryList.hide()
|
74
|
+
self.callhistoryListLabel.hide()
|
73
75
|
self.mscp = SCP(WORKING_PATH)
|
74
76
|
self._udpwatch = None
|
75
77
|
self.udp_fifo = queue.Queue()
|
@@ -127,6 +129,7 @@ class MainWindow(QMainWindow):
|
|
127
129
|
if json_data.get("cmd", "") == "CALLCHANGED":
|
128
130
|
call = json_data.get("call", "")
|
129
131
|
self.master_list(call)
|
132
|
+
self.log_list(call)
|
130
133
|
if json_data.get("cmd", "") == "NEWDB":
|
131
134
|
...
|
132
135
|
# self.load_new_db()
|
@@ -149,6 +152,16 @@ class MainWindow(QMainWindow):
|
|
149
152
|
self.masterList.addItem(listItem)
|
150
153
|
self.masterList.show()
|
151
154
|
|
155
|
+
def log_list(self, call: str) -> None:
|
156
|
+
"""Parse calls in log for matches"""
|
157
|
+
self.logList.clear()
|
158
|
+
if call:
|
159
|
+
result = self.database.get_like_calls_and_bands(call)
|
160
|
+
for calls in result:
|
161
|
+
listItem = QListWidgetItem(calls)
|
162
|
+
self.logList.addItem(listItem)
|
163
|
+
self.logList.show()
|
164
|
+
|
152
165
|
|
153
166
|
def load_fonts_from_dir(directory: str) -> set:
|
154
167
|
"""
|
not1mm/data/checkwindow.ui
CHANGED
@@ -21,17 +21,69 @@
|
|
21
21
|
</property>
|
22
22
|
<widget class="QWidget" name="centralwidget">
|
23
23
|
<layout class="QGridLayout" name="gridLayout">
|
24
|
-
<item row="
|
24
|
+
<item row="1" column="1">
|
25
|
+
<widget class="QListWidget" name="masterList"/>
|
26
|
+
</item>
|
27
|
+
<item row="1" column="3">
|
28
|
+
<widget class="QListWidget" name="callhistoryList"/>
|
29
|
+
</item>
|
30
|
+
<item row="1" column="2">
|
31
|
+
<widget class="QListWidget" name="telnetList"/>
|
32
|
+
</item>
|
33
|
+
<item row="1" column="0">
|
25
34
|
<widget class="QListWidget" name="logList"/>
|
26
35
|
</item>
|
36
|
+
<item row="0" column="0">
|
37
|
+
<widget class="QLabel" name="logListLabel">
|
38
|
+
<property name="font">
|
39
|
+
<font>
|
40
|
+
<family>JetBrains Mono</family>
|
41
|
+
<pointsize>10</pointsize>
|
42
|
+
</font>
|
43
|
+
</property>
|
44
|
+
<property name="text">
|
45
|
+
<string>Log</string>
|
46
|
+
</property>
|
47
|
+
</widget>
|
48
|
+
</item>
|
27
49
|
<item row="0" column="1">
|
28
|
-
<widget class="
|
50
|
+
<widget class="QLabel" name="masterListLabel">
|
51
|
+
<property name="font">
|
52
|
+
<font>
|
53
|
+
<family>JetBrains Mono</family>
|
54
|
+
<pointsize>10</pointsize>
|
55
|
+
</font>
|
56
|
+
</property>
|
57
|
+
<property name="text">
|
58
|
+
<string>Master</string>
|
59
|
+
</property>
|
60
|
+
</widget>
|
29
61
|
</item>
|
30
62
|
<item row="0" column="2">
|
31
|
-
<widget class="
|
63
|
+
<widget class="QLabel" name="telnetListLabel">
|
64
|
+
<property name="font">
|
65
|
+
<font>
|
66
|
+
<family>JetBrains Mono</family>
|
67
|
+
<pointsize>10</pointsize>
|
68
|
+
</font>
|
69
|
+
</property>
|
70
|
+
<property name="text">
|
71
|
+
<string>Telnet</string>
|
72
|
+
</property>
|
73
|
+
</widget>
|
32
74
|
</item>
|
33
75
|
<item row="0" column="3">
|
34
|
-
<widget class="
|
76
|
+
<widget class="QLabel" name="callhistoryListLabel">
|
77
|
+
<property name="font">
|
78
|
+
<font>
|
79
|
+
<family>JetBrains Mono</family>
|
80
|
+
<pointsize>10</pointsize>
|
81
|
+
</font>
|
82
|
+
</property>
|
83
|
+
<property name="text">
|
84
|
+
<string>Call</string>
|
85
|
+
</property>
|
86
|
+
</widget>
|
35
87
|
</item>
|
36
88
|
</layout>
|
37
89
|
</widget>
|
not1mm/lib/database.py
CHANGED
@@ -920,6 +920,43 @@ class DataBase:
|
|
920
920
|
logger.debug("%s", exception)
|
921
921
|
return {}
|
922
922
|
|
923
|
+
def get_like_calls_and_bands(self, call: str) -> dict:
|
924
|
+
"""
|
925
|
+
Returns a dict like:
|
926
|
+
{'K5TUX': [14.0, 21.0], 'N2CQR': [14.0], 'NE4RD': [14.0]}
|
927
|
+
"""
|
928
|
+
try:
|
929
|
+
with sqlite3.connect(self.database) as conn:
|
930
|
+
conn.row_factory = self.row_factory
|
931
|
+
cursor = conn.cursor()
|
932
|
+
cursor.execute(
|
933
|
+
f"select call, band from DXLOG where call like '%{call}%' and ContestNR = {self.current_contest};"
|
934
|
+
)
|
935
|
+
result = cursor.fetchall()
|
936
|
+
worked_list = {}
|
937
|
+
# This converts a list of dicts like:
|
938
|
+
# [
|
939
|
+
# {"Call": "K5TUX", "Band": 14.0},
|
940
|
+
# {"Call": "K5TUX", "Band": 21.0},
|
941
|
+
# {"Call": "N2CQR", "Band": 14.0},
|
942
|
+
# {"Call": "NE4RD", "Band": 14.0},
|
943
|
+
# ]
|
944
|
+
#
|
945
|
+
# To:
|
946
|
+
# {'K5TUX': [14.0, 21.0], 'N2CQR': [14.0], 'NE4RD': [14.0]}
|
947
|
+
for worked_dict in result:
|
948
|
+
call = worked_dict.get("Call")
|
949
|
+
if call in worked_list:
|
950
|
+
bandlist = worked_list[call]
|
951
|
+
bandlist.append(worked_dict["Band"])
|
952
|
+
worked_list[call] = bandlist
|
953
|
+
continue
|
954
|
+
worked_list[call] = [worked_dict["Band"]]
|
955
|
+
return worked_list
|
956
|
+
except sqlite3.OperationalError as exception:
|
957
|
+
logger.debug("%s", exception)
|
958
|
+
return {}
|
959
|
+
|
923
960
|
def get_unique_band_and_mode(self) -> dict:
|
924
961
|
"""get count of unique band and mode as {mult: x}"""
|
925
962
|
try:
|
not1mm/lib/version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
"""It's the version"""
|
2
|
-
__version__ = "23.8.
|
2
|
+
__version__ = "23.8.6"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 23.8.
|
3
|
+
Version: 23.8.6
|
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
|
@@ -89,6 +89,7 @@ Requires-Dist: notctyparser >=23.6.21
|
|
89
89
|
- [Editing a contact](#editing-a-contact)
|
90
90
|
- [Recalulate Mults](#recalulate-mults)
|
91
91
|
- [Bandmap](#bandmap)
|
92
|
+
- [Check Window](#check-window)
|
92
93
|
- [Cabrillo](#cabrillo)
|
93
94
|
- [ADIF](#adif)
|
94
95
|
- [Dupe checking](#dupe-checking)
|
@@ -150,6 +151,7 @@ I wish to thank those who've contributed to the project.
|
|
150
151
|
|
151
152
|
## Recent Changes
|
152
153
|
|
154
|
+
- [23-8-6] Add parsing of local log to check window.
|
153
155
|
- [23-8-5] Add Check Window. Moved MASTER.SCP stuff to it's own class. Close sub windows when main app closes.
|
154
156
|
|
155
157
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
@@ -477,6 +479,14 @@ VFO indicator now displays as small triangle in the frequency tickmarks. A small
|
|
477
479
|
|
478
480
|
Clicked on spots now tune the radio and set the callsign field. Previously worked calls are displayed in red.
|
479
481
|
|
482
|
+
## Check Window
|
483
|
+
|
484
|
+
`Window`>`Check Window`
|
485
|
+
|
486
|
+
As you enter a callsign, the Check Window will show probable matches to calls either in the MASTER.SCP file, or your local log. The MASTER.SCP column will show results for strings of 3 or more matching from the start of the call string. The local log column will show matches of any length appearing anywhere in the string.
|
487
|
+
|
488
|
+

|
489
|
+
|
480
490
|
## Cabrillo
|
481
491
|
|
482
492
|
Click on `File` > `Generate Cabrillo`
|
@@ -1,7 +1,7 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
not1mm/__main__.py,sha256=epgycpDTK2ELV0NNwQcoukeC7sJVSdSkoD4pSurn5d0,96702
|
3
3
|
not1mm/bandmap.py,sha256=5mANS6F9c11CrEzHD5EL2sTYB_d-ncvRofrLg8bHMP0,26884
|
4
|
-
not1mm/checkwindow.py,sha256=
|
4
|
+
not1mm/checkwindow.py,sha256=gJYc67pMKbxNQMPGJ1PI41nKWGXvG1_H1n9gQRvXsJA,6451
|
5
5
|
not1mm/logwindow.py,sha256=DOv2L3wEWzxrIFb5mAg6yaIoW9ejSbcuLN6D5HiLgf8,34331
|
6
6
|
not1mm/data/JetBrainsMono-Regular.ttf,sha256=UOHctAKY_PzCGh7zy-6f6egnCcSK0wzmF0csBqO9lDY,203952
|
7
7
|
not1mm/data/MASTER.SCP,sha256=J7Xi62-SF0vO8X1IvQE5O-dESikT6OVmrT_x80F7f4Y,657382
|
@@ -9,7 +9,7 @@ not1mm/data/about.ui,sha256=7TqvtXFFm0Rmcu0bmLupwpO1CsK8MekfZ09_xn6kZrQ,2067
|
|
9
9
|
not1mm/data/alpha bravo charlie delta.txt,sha256=d5QMmSWEUAe4Rj1XbNjTPLa_5Be4Se6u5LUIqAYidOQ,224
|
10
10
|
not1mm/data/bandmap.ui,sha256=FB2NaxSK-ZZvfYHU9Mu8FkQxTeVHcFGV40zIqgBXAFo,5246
|
11
11
|
not1mm/data/check.png,sha256=UvFOLr8V-79qnjW8wUaGItXk_OSP8m8hqPevs8NDlFY,387
|
12
|
-
not1mm/data/checkwindow.ui,sha256=
|
12
|
+
not1mm/data/checkwindow.ui,sha256=nc4FRc4D3ozC1jhm96Q2y6rolayKF6OwMrbCSaQ-vbg,2572
|
13
13
|
not1mm/data/configuration.ui,sha256=-6LKpkTWFuWy9gVBeQ5k3fg5Mw01rwAxp6fQag0E38c,41522
|
14
14
|
not1mm/data/contests.sql,sha256=4hmJCDvrbxnA_Y5S4T5o52TZieeFk6QUwFerwlFePNA,89307
|
15
15
|
not1mm/data/cty.json,sha256=0l3wUE5vsc9yknd59ffRLFtAPcnXNl2IaKAmQojGBGI,4667346
|
@@ -83,7 +83,7 @@ not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
83
|
not1mm/lib/about.py,sha256=O9i8ypv2W9KZkPAp2bcRI0J5RgPE5R1vMfU8ZGlok_E,379
|
84
84
|
not1mm/lib/cat_interface.py,sha256=eKsxC42Mm9wv7E2YQmgL7tLA2Gom-vCVaHHRf2Kitdk,15676
|
85
85
|
not1mm/lib/cwinterface.py,sha256=fZ5BXVyF7by0yGTJVznUTjRCxRt3lJaUIsNC-_mCGP4,3123
|
86
|
-
not1mm/lib/database.py,sha256=
|
86
|
+
not1mm/lib/database.py,sha256=j_AHxc_cW8vyfwmNrqO9DUPW2HnJqtMKKQeqq233A64,40117
|
87
87
|
not1mm/lib/edit_contact.py,sha256=YwuX-BuIa7AuPtLRENs4jTzxOrtk6MCxZj3BR_bDPW8,357
|
88
88
|
not1mm/lib/edit_macro.py,sha256=lyToZb1nmcONNFh6W35NzYHLU48gbAs2_OsnuRQGHck,559
|
89
89
|
not1mm/lib/edit_opon.py,sha256=GqAOJMiC265_4YRVbkT1PflBuCa4HiCNfRhq8-J6ZVY,363
|
@@ -96,7 +96,7 @@ not1mm/lib/new_contest.py,sha256=mHKNCS3iKOKN-bT9d8ZK3JemThOZFQ0ikfUSS0-ZTpY,354
|
|
96
96
|
not1mm/lib/select_contest.py,sha256=XQdRUkPAIHIMVsilm82M54b_v9yWpYrZ1nfInJrtZoo,363
|
97
97
|
not1mm/lib/settings.py,sha256=tkCWgJ3CpNkGR_IyCTOCIlO6PEPZCShHO9FL-9Wono8,6885
|
98
98
|
not1mm/lib/super_check_partial.py,sha256=GlXgtIblL602iW-V6Mmdf5S4FxtzJ95TbPMMa9xXUfg,1692
|
99
|
-
not1mm/lib/version.py,sha256=
|
99
|
+
not1mm/lib/version.py,sha256=hATNe5bxbwO_Se-Zg1fJdhcw2L9NT4hAiGokiArFTD4,46
|
100
100
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
101
101
|
not1mm/plugins/10_10_fall_cw.py,sha256=uV66Mmj6vuNGgY_4PX4lKWvvkyqBQNDf8gAAGTIoKxE,13883
|
102
102
|
not1mm/plugins/10_10_spring_cw.py,sha256=yAxvP1fR5vg4cqpADvG0BN-ibjW7lSAcn-p9VzXNW3g,13888
|
@@ -128,9 +128,9 @@ not1mm/testing/multicast_listener.py,sha256=2CkiyZ4EQxBX68_1QzGIX9g_UB9-CQq63OH-
|
|
128
128
|
not1mm/testing/n1mm_listener.py,sha256=UD-qyKEnppQua330WEFKMvMJaNjnYKi7dDuX_RGB5lQ,1099
|
129
129
|
not1mm/testing/test.py,sha256=wGblvMlyOCVkEiHbxE6wvLsorim15ehL72_EZLQeWkk,1660
|
130
130
|
testing/test.py,sha256=icT6vZPbJaZWJbEZ09nSbPmTFeiaL7LbXqM_sjhDisI,471
|
131
|
-
not1mm-23.8.
|
132
|
-
not1mm-23.8.
|
133
|
-
not1mm-23.8.
|
134
|
-
not1mm-23.8.
|
135
|
-
not1mm-23.8.
|
136
|
-
not1mm-23.8.
|
131
|
+
not1mm-23.8.6.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
132
|
+
not1mm-23.8.6.dist-info/METADATA,sha256=nvBHO-Wu4EX-eMTfuwrP4zuRJaqT7aOsIPqWXlT5xPM,23938
|
133
|
+
not1mm-23.8.6.dist-info/WHEEL,sha256=5sUXSg9e4bi7lTLOHcm6QEYwO5TIF1TNbTSVFVjcJcc,92
|
134
|
+
not1mm-23.8.6.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
135
|
+
not1mm-23.8.6.dist-info/top_level.txt,sha256=-NwUrh4k1kzpOvf720xYWSTKSlr-zNSIz3D_eplrxLs,15
|
136
|
+
not1mm-23.8.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|