Filter has changed so that it is now a "simple" transliteration
into perl expressions and relies on perl to do what is required
It is quitely that some more work will be required for error
handling, but the I no longer attempt to do any bracket handling
and leave that up to perl. This means that brackets are fully
working (as opposed to NOT working at all).
Regexes are now robustly translated where necessary. In order to
do this I have ditched Data Dumper because it did not seem to cope
with the regex translations correctly. '\s' would seem have been
translated to '\\s' and not what the regex actually said. So I
have changed the file format to JSON. As this is now the 3rd or
4th JSON change I have made, I have created a "standard" encode and
decode in DXJSON.pm and retrofitted it to all the other places
which had their own purpose built one. DXJSON.pm is just a very
light shim over the standard one.
The RBN changes are:
1. don't short-circuit the zone iteration by a filter firing.
2. make sure that filtering and not filtering work identically
3. Add constants to the caches records to make it more obvious
what is going on.
This only happens if it catches a character during the idle loop
which is the only way to catch Curses RESIZE signal. But a stray
"normal" character might get through as well.
Including removing the 80-1 limit on local connections, fixing the
scrolling and generally tarting console.pl up.
Change dx spot RBN format to "traditional" '-#' format.
Historically there has been an issue with line endings in console.pl
which meant that the spot line (for instance) had to be 1 character
less than the window width (e.g. 79 chars in an 80 char window).
This has now FINALLY been fixed.
In the process I have fixed the issues of extra things like
cq/itu/us state/dxgrid strings overwriting or coming out in a
stupid priority. So the priority is now from nearest/smallest
area -> largest wiz: QRA, US State, ITU or CQ zone. So you
can have them all on, but ITU zone will always trump CQ zone.
Dirk Koopman [Tue, 30 Jun 2020 12:33:33 +0000 (13:33 +0100)]
add RBN stats + other fixes
Add some more comprehensive RBN stats (per minute, 10 minutes, hour).
Make the RBN spot cache global and make the inrush preventor code
work only on the first connection to skimmer provider.
Fix the $_isdbg clearing so that non-conditional logging messages
come out with a (*) in watchdbg and not the previous isdbg() sort.
Dirk Koopman [Thu, 25 Jun 2020 14:00:34 +0000 (15:00 +0100)]
various RBN fixes, fix links spacing
Add incoming RBN filtering from the RBN servers.
Use spot filtering if there is no RBN specific filtering.
Fix formatting issues in the 'links' command for isolated and skimmer nodes.
Dirk Koopman [Sun, 31 May 2020 13:49:56 +0000 (14:49 +0100)]
fix sh/dx by call and missing files
Add a basic implimentation of allowing callsigns like PA0/G1TLH
to login as normal users that are completely distinct from their
(apparent) parent callsign. PA0/G1TLH has no connection with
G1TLH despite appearances.
Dirk Koopman [Sat, 23 May 2020 17:37:49 +0000 (18:37 +0100)]
limit the no of spots stored for a search
This is to cope with people that suck skimmer spots and end up
with 100Mb files to read. But it does rely on the hint getting
most of the candidates with not more than 2 false positives.
Dirk Koopman [Sun, 17 May 2020 10:28:40 +0000 (11:28 +0100)]
backport DXSubprocess to change serialisations
Currently the internals of Mojo::IOLoop::Subprocess defaults to
using Storaable as its cross-process argument and data serialisaion
method. It can use others. This update reverts back to the
original ForkCall method of using JSON.
Dirk Koopman [Sun, 10 May 2020 22:42:22 +0000 (23:42 +0100)]
Initial user multiple attachments!!
This will, after 3 (default) bumpoffs with 5 mins (default) it
will allow up $main::allowmultiple (if set > 1) connections with different
ssids BUT THE SAME user record.
Strip out echo and blank cmds from progress debugging unless set/debug 'echo'
is set.