not1mm 25.4.13__tar.gz → 25.4.14.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.
Files changed (193) hide show
  1. {not1mm-25.4.13 → not1mm-25.4.14.1}/PKG-INFO +3 -1
  2. {not1mm-25.4.13 → not1mm-25.4.14.1}/README.md +2 -0
  3. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/__main__.py +11 -1
  4. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/new_contest.ui +5 -0
  5. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/database.py +60 -0
  6. not1mm-25.4.14.1/not1mm/lib/version.py +3 -0
  7. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_ww_cw.py +0 -3
  8. not1mm-25.4.14.1/not1mm/plugins/es_ll_kv.py +568 -0
  9. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm.egg-info/PKG-INFO +3 -1
  10. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm.egg-info/SOURCES.txt +1 -0
  11. {not1mm-25.4.13 → not1mm-25.4.14.1}/pyproject.toml +1 -1
  12. not1mm-25.4.13/not1mm/lib/version.py +0 -3
  13. {not1mm-25.4.13 → not1mm-25.4.14.1}/LICENSE +0 -0
  14. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/__init__.py +0 -0
  15. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/bandmap.py +0 -0
  16. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/checkwindow.py +0 -0
  17. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  18. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/MASTER.SCP +0 -0
  19. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/about.ui +0 -0
  20. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  21. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/bandmap.ui +0 -0
  22. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/check.png +0 -0
  23. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/checkwindow.ui +0 -0
  24. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/configuration.ui +0 -0
  25. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/contests.sql +0 -0
  26. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/cty.json +0 -0
  27. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/cwmacros.txt +0 -0
  28. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/donors.html +0 -0
  29. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/editcontact.ui +0 -0
  30. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/editmacro.ui +0 -0
  31. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/greendot.png +0 -0
  32. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/k6gte-not1mm.desktop +0 -0
  33. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/k6gte.not1mm-128.png +0 -0
  34. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/k6gte.not1mm-32.png +0 -0
  35. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/k6gte.not1mm-64.png +0 -0
  36. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/logwindow.ui +0 -0
  37. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/logwindowx.ui +0 -0
  38. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/main.ui +0 -0
  39. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/not1mm.html +0 -0
  40. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/opon.ui +0 -0
  41. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/0.wav +0 -0
  42. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/1.wav +0 -0
  43. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/2.wav +0 -0
  44. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/3.wav +0 -0
  45. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/4.wav +0 -0
  46. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/5.wav +0 -0
  47. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/6.wav +0 -0
  48. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/7.wav +0 -0
  49. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/73.wav +0 -0
  50. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/8.wav +0 -0
  51. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/9.wav +0 -0
  52. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/a.wav +0 -0
  53. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/again.wav +0 -0
  54. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/b.wav +0 -0
  55. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/c.wav +0 -0
  56. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/contest.wav +0 -0
  57. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/cq.wav +0 -0
  58. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/cq2.wav +0 -0
  59. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/d.wav +0 -0
  60. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/e.wav +0 -0
  61. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/f.wav +0 -0
  62. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/g.wav +0 -0
  63. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/h.wav +0 -0
  64. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/i.wav +0 -0
  65. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/j.wav +0 -0
  66. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/k.wav +0 -0
  67. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/k6gte.wav +0 -0
  68. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/l.wav +0 -0
  69. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/m.wav +0 -0
  70. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/mynumber.wav +0 -0
  71. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/n.wav +0 -0
  72. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/nil.wav +0 -0
  73. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/o.wav +0 -0
  74. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/p.wav +0 -0
  75. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/q.wav +0 -0
  76. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/r.wav +0 -0
  77. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/roger.wav +0 -0
  78. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/s.wav +0 -0
  79. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/space.wav +0 -0
  80. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/t.wav +0 -0
  81. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/thankyou.wav +0 -0
  82. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  83. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/u.wav +0 -0
  84. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/v.wav +0 -0
  85. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/w.wav +0 -0
  86. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/x.wav +0 -0
  87. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/y.wav +0 -0
  88. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/yourcall.wav +0 -0
  89. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/phonetics/z.wav +0 -0
  90. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/pickcontest.ui +0 -0
  91. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/radio_green.png +0 -0
  92. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/radio_grey.png +0 -0
  93. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/radio_red.png +0 -0
  94. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/ratewindow.ui +0 -0
  95. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/reddot.png +0 -0
  96. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/rttymacros.txt +0 -0
  97. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/settings.ui +0 -0
  98. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/splash.png +0 -0
  99. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/ssbmacros.txt +0 -0
  100. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/statistics.ui +0 -0
  101. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/data/vfo.ui +0 -0
  102. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/fsutils.py +0 -0
  103. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/__init__.py +0 -0
  104. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/about.py +0 -0
  105. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/cat_interface.py +0 -0
  106. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/cwinterface.py +0 -0
  107. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/edit_contact.py +0 -0
  108. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/edit_macro.py +0 -0
  109. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/edit_opon.py +0 -0
  110. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/edit_station.py +0 -0
  111. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/fldigi_sendstring.py +0 -0
  112. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/ft8_watcher.py +0 -0
  113. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/ham_utility.py +0 -0
  114. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/lookup.py +0 -0
  115. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/multicast.py +0 -0
  116. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/n1mm.py +0 -0
  117. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/new_contest.py +0 -0
  118. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/plugin_common.py +0 -0
  119. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/select_contest.py +0 -0
  120. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/settings.py +0 -0
  121. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/super_check_partial.py +0 -0
  122. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lib/versiontest.py +0 -0
  123. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/logwindow.py +0 -0
  124. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/lookupservice.py +0 -0
  125. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/10_10_fall_cw.py +0 -0
  126. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/10_10_spring_cw.py +0 -0
  127. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/10_10_summer_phone.py +0 -0
  128. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/10_10_winter_phone.py +0 -0
  129. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/__init__.py +0 -0
  130. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ari_40_80.py +0 -0
  131. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_10m.py +0 -0
  132. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_160m.py +0 -0
  133. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_dx_cw.py +0 -0
  134. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  135. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_field_day.py +0 -0
  136. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  137. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_ss_cw.py +0 -0
  138. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_ss_phone.py +0 -0
  139. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  140. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  141. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  142. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/canada_day.py +0 -0
  143. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_160_cw.py +0 -0
  144. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_160_ssb.py +0 -0
  145. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_wpx_cw.py +0 -0
  146. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  147. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  148. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_ww_rtty.py +0 -0
  149. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cq_ww_ssb.py +0 -0
  150. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/cwt.py +0 -0
  151. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/darc_vhf.py +0 -0
  152. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/darc_xmas.py +0 -0
  153. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ea_majistad_cw.py +0 -0
  154. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ea_majistad_ssb.py +0 -0
  155. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ea_rtty.py +0 -0
  156. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/general_logging.py +0 -0
  157. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/helvetia.py +0 -0
  158. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  159. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  160. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/iaru_hf.py +0 -0
  161. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/icwc_mst.py +0 -0
  162. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/jidx_cw.py +0 -0
  163. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/jidx_ph.py +0 -0
  164. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/k1usn_sst.py +0 -0
  165. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/labre_rs_digi.py +0 -0
  166. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/lz-dx.py +0 -0
  167. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/naqp_cw.py +0 -0
  168. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/naqp_rtty.py +0 -0
  169. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/naqp_ssb.py +0 -0
  170. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/phone_weekly_test.py +0 -0
  171. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/raem.py +0 -0
  172. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/randomgram.py +0 -0
  173. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ref_cw.py +0 -0
  174. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ref_ssb.py +0 -0
  175. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/sac_cw.py +0 -0
  176. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/sac_ssb.py +0 -0
  177. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/spdx.py +0 -0
  178. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/stew_perry_topband.py +0 -0
  179. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/ukeidx.py +0 -0
  180. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/weekly_rtty.py +0 -0
  181. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/plugins/winter_field_day.py +0 -0
  182. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/radio.py +0 -0
  183. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/ratewindow.py +0 -0
  184. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/rtc_service.py +0 -0
  185. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/statistics.py +0 -0
  186. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/test.py +0 -0
  187. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/vfo.py +0 -0
  188. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm/voice_keying.py +0 -0
  189. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm.egg-info/dependency_links.txt +0 -0
  190. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm.egg-info/entry_points.txt +0 -0
  191. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm.egg-info/requires.txt +0 -0
  192. {not1mm-25.4.13 → not1mm-25.4.14.1}/not1mm.egg-info/top_level.txt +0 -0
  193. {not1mm-25.4.13 → not1mm-25.4.14.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.4.13
3
+ Version: 25.4.14.1
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.
@@ -11,6 +11,7 @@ Purpose: Provides main logging window and a crap ton more.
11
11
  # alt cluster hamqth.com 7300
12
12
 
13
13
  import datetime
14
+ import time
14
15
  import importlib
15
16
  import locale
16
17
  import logging
@@ -2984,6 +2985,9 @@ class MainWindow(QtWidgets.QMainWindow):
2984
2985
  self.rig_control.sendcw(self.process_macro(function_key.toolTip()))
2985
2986
  return
2986
2987
  self.cw.sendcw(self.process_macro(function_key.toolTip()))
2988
+ if self.pref.get("cwtype") == 2:
2989
+ time.sleep(0.2)
2990
+ return
2987
2991
 
2988
2992
  def toggle_run_sp(self) -> None:
2989
2993
  """Toggles the radioButton_run and radioButton_sp."""
@@ -3705,6 +3709,11 @@ class MainWindow(QtWidgets.QMainWindow):
3705
3709
  result = self.database.check_dupe_on_band_mode(call, band, mode)
3706
3710
  if self.contest.dupe_type == 4:
3707
3711
  result = {"isdupe": False}
3712
+ if self.contest.dupe_type == 5:
3713
+ result = {"isdupe": False} # in case contest has no function.
3714
+ if hasattr(self.contest, "check_dupe"):
3715
+ result = self.contest.specific_contest_check_dupe(self, call)
3716
+
3708
3717
  debugline = f"{result}"
3709
3718
  logger.debug("%s", debugline)
3710
3719
  self.contact_is_dupe = result.get("isdupe", False)
@@ -4095,7 +4104,8 @@ class MainWindow(QtWidgets.QMainWindow):
4095
4104
  """
4096
4105
 
4097
4106
  logger.debug("******EDI*****")
4098
- self.contest.edi(self)
4107
+ if hasattr(self.contest, "edi"):
4108
+ self.contest.edi(self)
4099
4109
 
4100
4110
  def generate_cabrillo(self, file_encoding: str) -> None:
4101
4111
  """
@@ -347,6 +347,11 @@
347
347
  <string>EA RTTY</string>
348
348
  </property>
349
349
  </item>
350
+ <item>
351
+ <property name="text">
352
+ <string>ES OPEN</string>
353
+ </property>
354
+ </item>
350
355
  <item>
351
356
  <property name="text">
352
357
  <string>HELVETIA</string>
@@ -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 {}
@@ -0,0 +1,3 @@
1
+ """It's the version"""
2
+
3
+ __version__ = "25.4.14.1"
@@ -38,7 +38,6 @@
38
38
 
39
39
  import datetime
40
40
  import logging
41
- import time
42
41
  from pathlib import Path
43
42
 
44
43
  from PyQt6 import QtWidgets
@@ -496,7 +495,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
496
495
  self.save_contact()
497
496
  continue
498
497
  self.process_function_key(button)
499
- time.sleep(0.2)
500
498
  else:
501
499
  if self.current_widget == "callsign":
502
500
  if len(self.callsign.text()) > 2:
@@ -522,7 +520,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
522
520
  self.save_contact()
523
521
  continue
524
522
  self.process_function_key(button)
525
- time.sleep(0.2)
526
523
 
527
524
 
528
525
  def populate_history_info_line(self):