not1mm 25.4.13__tar.gz → 25.4.14__tar.gz
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-25.4.13 → not1mm-25.4.14}/PKG-INFO +3 -1
- {not1mm-25.4.13 → not1mm-25.4.14}/README.md +2 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/__main__.py +7 -1
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/new_contest.ui +5 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/database.py +60 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/version.py +1 -1
- not1mm-25.4.14/not1mm/plugins/es_ll_kv.py +568 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm.egg-info/PKG-INFO +3 -1
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm.egg-info/SOURCES.txt +1 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/pyproject.toml +1 -1
- {not1mm-25.4.13 → not1mm-25.4.14}/LICENSE +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/__init__.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/bandmap.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/checkwindow.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/about.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/bandmap.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/check.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/configuration.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/contests.sql +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/cty.json +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/donors.html +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/editcontact.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/editmacro.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/greendot.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/logwindow.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/main.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/not1mm.html +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/opon.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/cq2.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/radio_green.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/radio_grey.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/radio_red.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/ratewindow.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/reddot.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/rttymacros.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/settings.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/splash.png +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/statistics.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/data/vfo.ui +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/fsutils.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/__init__.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/about.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/edit_station.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/fldigi_sendstring.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/lookup.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/multicast.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/n1mm.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/new_contest.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/select_contest.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/settings.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lib/versiontest.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/logwindow.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/lookupservice.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/__init__.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ari_40_80.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_160m.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_wpx_rtty.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_ww_rtty.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/cwt.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/darc_vhf.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/darc_xmas.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ea_majistad_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ea_majistad_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ea_rtty.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/helvetia.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/icwc_mst.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/k1usn_sst.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/labre_rs_digi.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/lz-dx.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/naqp_rtty.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/raem.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/randomgram.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ref_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ref_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/sac_cw.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/sac_ssb.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/spdx.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/ukeidx.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/weekly_rtty.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/radio.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/ratewindow.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/rtc_service.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/statistics.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/test.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/vfo.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm/voice_keying.py +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-25.4.13 → not1mm-25.4.14}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: not1mm
|
3
|
-
Version: 25.4.
|
3
|
+
Version: 25.4.14
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
License: GPL-3.0-or-later
|
@@ -230,6 +230,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
230
230
|
- EA Majistad CW
|
231
231
|
- EA Majistad SSB
|
232
232
|
- EA RTTY
|
233
|
+
- ES OPEN HF
|
233
234
|
- Helvetia
|
234
235
|
- IARU Fieldday R1 CW, SSB
|
235
236
|
- IARU HF
|
@@ -253,6 +254,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
253
254
|
|
254
255
|
## Recent Changes
|
255
256
|
|
257
|
+
- [25-4-14] Add ES Open HF Chanmpionship.
|
256
258
|
- [25-4-13] Fix crash in JIDX Cabrillo output.
|
257
259
|
- [25-4-12] Added an Auto CQ time to fire progress bar.
|
258
260
|
- [25-4-11-3] Fixed issue with winkeyer not sending multiple macros in ESM mode.
|
@@ -198,6 +198,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
198
198
|
- EA Majistad CW
|
199
199
|
- EA Majistad SSB
|
200
200
|
- EA RTTY
|
201
|
+
- ES OPEN HF
|
201
202
|
- Helvetia
|
202
203
|
- IARU Fieldday R1 CW, SSB
|
203
204
|
- IARU HF
|
@@ -221,6 +222,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
221
222
|
|
222
223
|
## Recent Changes
|
223
224
|
|
225
|
+
- [25-4-14] Add ES Open HF Chanmpionship.
|
224
226
|
- [25-4-13] Fix crash in JIDX Cabrillo output.
|
225
227
|
- [25-4-12] Added an Auto CQ time to fire progress bar.
|
226
228
|
- [25-4-11-3] Fixed issue with winkeyer not sending multiple macros in ESM mode.
|
@@ -3705,6 +3705,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3705
3705
|
result = self.database.check_dupe_on_band_mode(call, band, mode)
|
3706
3706
|
if self.contest.dupe_type == 4:
|
3707
3707
|
result = {"isdupe": False}
|
3708
|
+
if self.contest.dupe_type == 5:
|
3709
|
+
result = {"isdupe": False} # in case contest has no function.
|
3710
|
+
if hasattr(self.contest, "check_dupe"):
|
3711
|
+
result = self.contest.specific_contest_check_dupe(self, call)
|
3712
|
+
|
3708
3713
|
debugline = f"{result}"
|
3709
3714
|
logger.debug("%s", debugline)
|
3710
3715
|
self.contact_is_dupe = result.get("isdupe", False)
|
@@ -4095,7 +4100,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
4095
4100
|
"""
|
4096
4101
|
|
4097
4102
|
logger.debug("******EDI*****")
|
4098
|
-
self.contest
|
4103
|
+
if hasattr(self.contest, "edi"):
|
4104
|
+
self.contest.edi(self)
|
4099
4105
|
|
4100
4106
|
def generate_cabrillo(self, file_encoding: str) -> None:
|
4101
4107
|
"""
|
@@ -1217,3 +1217,63 @@ class DataBase:
|
|
1217
1217
|
except sqlite3.OperationalError as exception:
|
1218
1218
|
logger.debug("%s", exception)
|
1219
1219
|
return ()
|
1220
|
+
|
1221
|
+
def check_dupe_on_period_1_mode(
|
1222
|
+
self, call, band, mode, contest_start_time, contest_time_period_1
|
1223
|
+
) -> dict:
|
1224
|
+
"""Checks if a call is dupe on band/mode"""
|
1225
|
+
try:
|
1226
|
+
with sqlite3.connect(self.database) as conn:
|
1227
|
+
conn.row_factory = self.row_factory
|
1228
|
+
cursor = conn.cursor()
|
1229
|
+
cursor.execute(
|
1230
|
+
f"select count(*) as isdupe from dxlog where Call = '{call}' and Mode = '{mode}' and Band = '{band}' and ContestNR = {self.current_contest} AND TS >= '{contest_start_time}' AND TS <= '{contest_time_period_1}';"
|
1231
|
+
)
|
1232
|
+
return cursor.fetchone()
|
1233
|
+
except sqlite3.OperationalError as exception:
|
1234
|
+
logger.debug("%s", exception)
|
1235
|
+
return {}
|
1236
|
+
|
1237
|
+
def check_dupe_on_period_2_mode(
|
1238
|
+
self,
|
1239
|
+
call,
|
1240
|
+
band,
|
1241
|
+
mode,
|
1242
|
+
contest_start_time,
|
1243
|
+
contest_time_period_1,
|
1244
|
+
contest_time_period_2,
|
1245
|
+
) -> dict:
|
1246
|
+
"""Checks if a call is dupe on band/mode"""
|
1247
|
+
try:
|
1248
|
+
with sqlite3.connect(self.database) as conn:
|
1249
|
+
conn.row_factory = self.row_factory
|
1250
|
+
cursor = conn.cursor()
|
1251
|
+
cursor.execute(
|
1252
|
+
f"select count(*) as isdupe from dxlog where Call = '{call}' and Mode = '{mode}' and Band = '{band}' and ContestNR = {self.current_contest} AND TS >= '{contest_time_period_1}' AND TS <= '{contest_time_period_2}';"
|
1253
|
+
)
|
1254
|
+
return cursor.fetchone()
|
1255
|
+
except sqlite3.OperationalError as exception:
|
1256
|
+
logger.debug("%s", exception)
|
1257
|
+
return {}
|
1258
|
+
|
1259
|
+
def check_dupe_on_period_3_mode(
|
1260
|
+
self,
|
1261
|
+
call,
|
1262
|
+
band,
|
1263
|
+
mode,
|
1264
|
+
contest_start_time,
|
1265
|
+
contest_time_period_2,
|
1266
|
+
contest_time_period_3,
|
1267
|
+
) -> dict:
|
1268
|
+
"""Checks if a call is dupe on band/mode"""
|
1269
|
+
try:
|
1270
|
+
with sqlite3.connect(self.database) as conn:
|
1271
|
+
conn.row_factory = self.row_factory
|
1272
|
+
cursor = conn.cursor()
|
1273
|
+
cursor.execute(
|
1274
|
+
f"select count(*) as isdupe from dxlog where Call = '{call}' and Mode = '{mode}' and Band = '{band}' and ContestNR = {self.current_contest} AND TS >= '{contest_time_period_2}' AND TS <= '{contest_time_period_3}';"
|
1275
|
+
)
|
1276
|
+
return cursor.fetchone()
|
1277
|
+
except sqlite3.OperationalError as exception:
|
1278
|
+
logger.debug("%s", exception)
|
1279
|
+
return {}
|