not1mm 25.6.16.1__tar.gz → 25.6.18.1__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.6.16.1 → not1mm-25.6.18.1}/PKG-INFO +2 -1
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/README.md +1 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/__main__.py +1 -1
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/new_contest.ui +5 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/lookup.py +36 -25
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/plugin_common.py +19 -18
- not1mm-25.6.18.1/not1mm/lib/version.py +3 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lookupservice.py +9 -8
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/es_field_day.py +40 -19
- not1mm-25.6.18.1/not1mm/plugins/es_manual_key.py +651 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/es_open.py +33 -13
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm.egg-info/PKG-INFO +2 -1
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm.egg-info/SOURCES.txt +1 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/pyproject.toml +1 -1
- not1mm-25.6.16.1/not1mm/lib/version.py +0 -3
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/LICENSE +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/__init__.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/bandmap.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/checkwindow.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/JetBrainsMono-Thin.ttf +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/about.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/bandmap.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/check.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/cloud_green.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/cloud_red.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/configuration.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/contests.sql +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/cty.json +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/donors.html +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/dxcc_tracker.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/editcontact.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/editmacro.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/greendot.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/logwindow.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/main.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/map3.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/not1mm.html +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/opon.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/cq2.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/radio_green.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/radio_grey.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/radio_red.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/ratewindow.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/reddot.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/rotator.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/rttymacros.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/settings.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/splash.png +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/statistics.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/data/vfo.ui +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/dxcc_tracker.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/fsutils.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/__init__.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/about.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/database.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/edit_station.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/fldigi_sendstring.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/multicast.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/n1mm.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/new_contest.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/rot_interface.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/select_contest.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/settings.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/lib/versiontest.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/logwindow.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/__init__.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ari_40_80.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ari_dx.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_160m.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_wpx_rtty.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_ww_rtty.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/cwt.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/darc_vhf.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/darc_xmas.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ea_majistad_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ea_majistad_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ea_rtty.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/helvetia.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/icwc_mst.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/k1usn_sst.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/labre_rs_digi.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/lz-dx.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/naqp_rtty.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/raem.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/randomgram.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ref_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ref_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/sac_cw.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/sac_ssb.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/spdx.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/ukeidx.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/vhf_sprint.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/weekly_rtty.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/radio.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/ratewindow.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/rotator.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/rtc_service.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/statistics.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/test.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/vfo.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm/voice_keying.py +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-25.6.16.1 → not1mm-25.6.18.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: not1mm
|
3
|
-
Version: 25.6.
|
3
|
+
Version: 25.6.18.1
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
License: GPL-3.0-or-later
|
@@ -246,6 +246,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
246
246
|
|
247
247
|
## Recent Changes
|
248
248
|
|
249
|
+
- [25-6-18] Merged changes from @term73, Adding ES Manual Key contest.
|
249
250
|
- [25-6-16] Merged PR from @awandahl SM0HPL, adding ESM buttons to General DX Logging plugin.
|
250
251
|
- [25-6-15] Corrected tab focus of rotator windows buttons.
|
251
252
|
- [25-6-13] Polished up the Rotator window. Adding Stop and Park. Made the NSWE buttons smaller.
|
@@ -214,6 +214,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
214
214
|
|
215
215
|
## Recent Changes
|
216
216
|
|
217
|
+
- [25-6-18] Merged changes from @term73, Adding ES Manual Key contest.
|
217
218
|
- [25-6-16] Merged PR from @awandahl SM0HPL, adding ESM buttons to General DX Logging plugin.
|
218
219
|
- [25-6-15] Corrected tab focus of rotator windows buttons.
|
219
220
|
- [25-6-13] Polished up the Rotator window. Adding Stop and Park. Made the NSWE buttons smaller.
|
@@ -3399,7 +3399,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3399
3399
|
return
|
3400
3400
|
self.cw.sendcw(self.process_macro(function_key.toolTip()))
|
3401
3401
|
# if self.pref.get("cwtype") == 2:
|
3402
|
-
time.sleep(0.3)
|
3402
|
+
# time.sleep(0.3)
|
3403
3403
|
# return
|
3404
3404
|
|
3405
3405
|
def toggle_run_sp(self) -> None:
|
@@ -74,27 +74,30 @@ class HamDBlookup:
|
|
74
74
|
if root:
|
75
75
|
messages = root.get("messages")
|
76
76
|
callsign = root.get("callsign")
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
77
|
+
if messages is not None:
|
78
|
+
error_text = messages.get("status")
|
79
|
+
logger.debug("HamDB: %s", error_text)
|
80
|
+
if error_text != "OK":
|
81
|
+
self.error = False
|
82
|
+
if callsign is not None:
|
83
|
+
logger.debug("HamDB: found callsign field")
|
84
|
+
if callsign.get("grid"):
|
85
|
+
grid = callsign.get("grid")
|
86
|
+
if callsign.get("fname"):
|
87
|
+
name = callsign.get("fname")
|
88
|
+
if callsign.get("name"):
|
89
|
+
if not name:
|
90
|
+
name = callsign.get("name")
|
91
|
+
else:
|
92
|
+
name = f"{name} {callsign.get('name')}"
|
93
|
+
if callsign.get("nickname"):
|
94
|
+
nickname = callsign.get("nickname")
|
95
95
|
else:
|
96
96
|
self.error = True
|
97
97
|
error_text = str(query_result.status_code)
|
98
|
+
logger.critical(
|
99
|
+
"HamDB-lookup: %s %s %s %s", grid, name, nickname, error_text
|
100
|
+
)
|
98
101
|
logger.info("HamDB-lookup: %s %s %s %s", grid, name, nickname, error_text)
|
99
102
|
return grid, name, nickname, error_text
|
100
103
|
|
@@ -166,12 +169,20 @@ class QRZlookup:
|
|
166
169
|
)
|
167
170
|
|
168
171
|
logger.info("\n\n%s\n\n", root)
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
172
|
+
if self.error:
|
173
|
+
logger.critical(
|
174
|
+
"key:%s error:%s message:%s",
|
175
|
+
self.session,
|
176
|
+
self.error,
|
177
|
+
self.message,
|
178
|
+
)
|
179
|
+
else:
|
180
|
+
logger.info(
|
181
|
+
"key:%s error:%s message:%s",
|
182
|
+
self.session,
|
183
|
+
self.error,
|
184
|
+
self.message,
|
185
|
+
)
|
175
186
|
except requests.exceptions.RequestException as exception:
|
176
187
|
logger.info("%s", exception)
|
177
188
|
self.session = False
|
@@ -209,7 +220,7 @@ class QRZlookup:
|
|
209
220
|
)
|
210
221
|
baseroot = xmltodict.parse(query_result.text)
|
211
222
|
root = baseroot.get("QRZDatabase", {})
|
212
|
-
return root.get("Callsign")
|
223
|
+
return root.get("Callsign", {})
|
213
224
|
|
214
225
|
|
215
226
|
class HamQTH:
|
@@ -338,22 +338,23 @@ def gen_adif(self, cabrillo_name: str, contest_id=""):
|
|
338
338
|
self.show_message_box(f"Error saving ADIF file: {error}")
|
339
339
|
|
340
340
|
|
341
|
-
def get_station_arrlsection_code(self):
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
341
|
+
# def get_station_arrlsection_code(self):
|
342
|
+
# # get the station ARRL Section in station settings
|
343
|
+
# query = f"SELECT ARRLSection as arrlsection from Station;"
|
344
|
+
# # run query
|
345
|
+
# result = self.database.exec_sql(query)
|
346
|
+
# if result:
|
347
|
+
# arrlsection = result.get("arrlsection", "")
|
348
|
+
# return arrlsection
|
349
|
+
# return ""
|
350
350
|
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
351
|
+
|
352
|
+
# def get_station_state_code(self):
|
353
|
+
# # get the station state code in station settings
|
354
|
+
# query = f"SELECT state as state from Station;"
|
355
|
+
# # run query
|
356
|
+
# result = self.database.exec_sql(query)
|
357
|
+
# if result:
|
358
|
+
# state = result.get("state", "")
|
359
|
+
# return state
|
360
|
+
# return ""
|
@@ -40,14 +40,14 @@ class LookupService(QDockWidget):
|
|
40
40
|
|
41
41
|
if self.settings.get("useqrz"):
|
42
42
|
self.look_up = QRZlookup(
|
43
|
-
self.settings.get("lookupusername"),
|
44
|
-
self.settings.get("lookuppassword"),
|
43
|
+
self.settings.get("lookupusername", ""),
|
44
|
+
self.settings.get("lookuppassword", ""),
|
45
45
|
)
|
46
46
|
|
47
47
|
if self.settings.get("usehamqth"):
|
48
48
|
self.look_up = HamQTH(
|
49
|
-
self.settings.get("lookupusername"),
|
50
|
-
self.settings.get("lookuppassword"),
|
49
|
+
self.settings.get("lookupusername", ""),
|
50
|
+
self.settings.get("lookuppassword", ""),
|
51
51
|
)
|
52
52
|
|
53
53
|
def get_settings(self) -> dict:
|
@@ -55,6 +55,7 @@ class LookupService(QDockWidget):
|
|
55
55
|
if os.path.exists(fsutils.CONFIG_FILE):
|
56
56
|
with open(fsutils.CONFIG_FILE, "rt", encoding="utf-8") as file_descriptor:
|
57
57
|
return loads(file_descriptor.read())
|
58
|
+
return {}
|
58
59
|
|
59
60
|
def msg_from_main(self, packet):
|
60
61
|
""""""
|
@@ -74,12 +75,12 @@ class LookupService(QDockWidget):
|
|
74
75
|
self.look_up = None
|
75
76
|
if self.settings.get("useqrz"):
|
76
77
|
self.look_up = QRZlookup(
|
77
|
-
self.settings.get("lookupusername"),
|
78
|
-
self.settings.get("lookuppassword"),
|
78
|
+
self.settings.get("lookupusername", ""),
|
79
|
+
self.settings.get("lookuppassword", ""),
|
79
80
|
)
|
80
81
|
|
81
82
|
if self.settings.get("usehamqth"):
|
82
83
|
self.look_up = HamQTH(
|
83
|
-
self.settings.get("lookupusername"),
|
84
|
-
self.settings.get("lookuppassword"),
|
84
|
+
self.settings.get("lookupusername", ""),
|
85
|
+
self.settings.get("lookuppassword", ""),
|
85
86
|
)
|
@@ -10,9 +10,11 @@ from pathlib import Path
|
|
10
10
|
|
11
11
|
from PyQt6 import QtWidgets
|
12
12
|
|
13
|
-
from not1mm.lib.plugin_common import
|
13
|
+
from not1mm.lib.plugin_common import (
|
14
|
+
gen_adif,
|
15
|
+
get_points,
|
16
|
+
)
|
14
17
|
|
15
|
-
from not1mm.lib.ham_utility import calculate_wpx_prefix
|
16
18
|
from not1mm.lib.version import __version__
|
17
19
|
|
18
20
|
logger = logging.getLogger(__name__)
|
@@ -56,9 +58,10 @@ estonian_regions = [
|
|
56
58
|
"TL",
|
57
59
|
"VC",
|
58
60
|
"VO",
|
59
|
-
"VP"
|
61
|
+
"VP",
|
60
62
|
]
|
61
63
|
|
64
|
+
|
62
65
|
def specific_contest_check_dupe(self, call):
|
63
66
|
""""""
|
64
67
|
# get mode from radio state
|
@@ -85,7 +88,7 @@ def specific_contest_check_dupe(self, call):
|
|
85
88
|
time_period_1 = time_periods[0] if len(time_periods) > 0 else None
|
86
89
|
time_period_2 = time_periods[1] if len(time_periods) > 1 else None
|
87
90
|
time_period_3 = time_periods[2] if len(time_periods) > 2 else None
|
88
|
-
|
91
|
+
|
89
92
|
# get current time in UTC
|
90
93
|
iso_current_time = datetime.now(timezone.utc)
|
91
94
|
current_time = iso_current_time.replace(tzinfo=None)
|
@@ -93,7 +96,11 @@ def specific_contest_check_dupe(self, call):
|
|
93
96
|
result = {}
|
94
97
|
result["isdupe"] = False
|
95
98
|
|
96
|
-
if
|
99
|
+
if (
|
100
|
+
time_period_1 is not None
|
101
|
+
and current_time < time_period_1
|
102
|
+
and current_time >= start_date_init_date
|
103
|
+
):
|
97
104
|
|
98
105
|
result = self.database.check_dupe_on_period_mode(
|
99
106
|
call,
|
@@ -103,7 +110,12 @@ def specific_contest_check_dupe(self, call):
|
|
103
110
|
time_period_1.strftime("%Y-%m-%d %H:%M:%S"),
|
104
111
|
)
|
105
112
|
|
106
|
-
if
|
113
|
+
if (
|
114
|
+
time_period_1 is not None
|
115
|
+
and time_period_2 is not None
|
116
|
+
and current_time < time_period_2
|
117
|
+
and current_time >= time_period_1
|
118
|
+
):
|
107
119
|
|
108
120
|
result = self.database.check_dupe_on_period_mode(
|
109
121
|
call,
|
@@ -113,7 +125,12 @@ def specific_contest_check_dupe(self, call):
|
|
113
125
|
time_period_2.strftime("%Y-%m-%d %H:%M:%S"),
|
114
126
|
)
|
115
127
|
|
116
|
-
if
|
128
|
+
if (
|
129
|
+
time_period_2 is not None
|
130
|
+
and time_period_3 is not None
|
131
|
+
and current_time < time_period_3
|
132
|
+
and current_time >= time_period_2
|
133
|
+
):
|
117
134
|
|
118
135
|
result = self.database.check_dupe_on_period_mode(
|
119
136
|
call,
|
@@ -131,6 +148,7 @@ def specific_contest_check_dupe(self, call):
|
|
131
148
|
|
132
149
|
return result
|
133
150
|
|
151
|
+
|
134
152
|
def init_contest(self):
|
135
153
|
"""setup plugin"""
|
136
154
|
set_tab_next(self)
|
@@ -195,13 +213,13 @@ def predupe(self):
|
|
195
213
|
|
196
214
|
def prefill(self):
|
197
215
|
"""Fill SentNR"""
|
198
|
-
|
216
|
+
|
199
217
|
sent_sxchange_setting = self.contest_settings.get("SentExchange", "")
|
200
218
|
if sent_sxchange_setting.strip() == "#":
|
201
219
|
result = self.database.get_serial()
|
202
220
|
serial_nr = str(result.get("serial_nr", "1")).zfill(3)
|
203
221
|
# get station region code from setup ARRLSection field
|
204
|
-
serial_nr = serial_nr + " " +
|
222
|
+
serial_nr = serial_nr + " " + self.station.get("State", "")
|
205
223
|
|
206
224
|
if serial_nr == "None":
|
207
225
|
serial_nr = "001"
|
@@ -228,15 +246,17 @@ def points(self):
|
|
228
246
|
else:
|
229
247
|
return 1
|
230
248
|
|
249
|
+
|
231
250
|
def show_mults(self, rtc=None):
|
232
251
|
"""Return display string for mults"""
|
233
252
|
|
234
253
|
# implement here multipliers checks
|
235
254
|
# get received number and region code
|
236
255
|
|
237
|
-
call_result
|
256
|
+
# call_result never used, so commenting it out.
|
257
|
+
# call_result = str(self.contact.get("NR", ""))
|
238
258
|
# create placeholders
|
239
|
-
placeholders =
|
259
|
+
placeholders = ",".join(["?"] * len(estonian_regions))
|
240
260
|
# main query to filter by regions
|
241
261
|
query = f"SELECT count(distinct(SUBSTR(NR, -2)) || ':' || Band || ':' || Mode) as mults from DXLOG where ContestNR = {self.pref.get('contest', '1')} AND CountryPrefix = 'ES' AND NR GLOB '*[A-Z]*' AND substr(NR,-2) IN ({placeholders});"
|
242
262
|
# apply params
|
@@ -248,6 +268,7 @@ def show_mults(self, rtc=None):
|
|
248
268
|
return mult_count
|
249
269
|
return 0
|
250
270
|
|
271
|
+
|
251
272
|
def show_qso(self):
|
252
273
|
"""Return qso count"""
|
253
274
|
result = self.database.fetch_qso_count()
|
@@ -592,13 +613,13 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
|
|
592
613
|
self.process_function_key(button)
|
593
614
|
|
594
615
|
|
595
|
-
def get_mults(self):
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
616
|
+
# def get_mults(self):
|
617
|
+
# """Get mults for RTC XML"""
|
618
|
+
# mults = {}
|
619
|
+
# mults["country"], mults["state"] = show_mults(self, rtc=True)
|
620
|
+
# return mults
|
600
621
|
|
601
622
|
|
602
|
-
def just_points(self):
|
603
|
-
|
604
|
-
|
623
|
+
# def just_points(self):
|
624
|
+
# """Get points for RTC XML"""
|
625
|
+
# return get_points(self)
|