Hi Saku!
Recently, after enabling QRZ on CQRLOG Alpha 142, I noticed that only QSOs after activation are synced, which I can update later. All previous QSOs are unsynced because I get an error related to the NO LOGIDS parameter, which blocks subsequent uploads. Currently, the only way to use QRZ on CQRLOG is to create a new log from scratch, but that's not the case for me; so I've gone back to manually uploading ADIF files to QRZ. Here's my question: Is it possible to add QRZ sync to CQRLOG?
73 de IK0DWJ (Beppe).




Hi Beppe!
Yes, that is a known problem that old qsos do not have QRZ log ID.
It looks like it can be fetched with XML command "FETCH", but as well it seems to exist also in ADIF data that is manually downloaded from QRZ logbook.
As the operation is needed only once per log I think there is no mind to add it to online log upload actions.
Instead it could be separate function, or even separate bash script, that could set the QRZ log IDs to qsos uploaded manually before QRZ online log option.
I can consider that kind of solution, when time permits.
--
Saku
OH1KH
Hi Saku!
I tried your script but it didn't work. I got all QSOs NOT FOUND. Example:
QSO NOT FOUND: 2024-12-10 16:37 ZF2OO 15m CW QRZlog_logid:1296111613
After some research, the problem was resolved; it was a case discrepancy in the Bandwidth field.
Google AI pointed this out to me. In the CQRlog database, the bandwidth is recorded in uppercase, for example, 15M, which I verified with the following command:
mysql -S /home/$USER/.config/cqrlog/database/sock cqrlog001 -e "SELECT qsodate, time_off, callsign, band, mode FROM cqrlog_main WHERE callsign='ZF2OO';
+----------------+-----------+------------+--------+--------+
| qsodate | time_off | callsign | band | mode |
+----------------+-----------+------------+--------+--------+
| 2024-12-10 | 16:37 | ZF2OO | 15M | CW |
+----------------+-----------+------------+--------+--------+
The script instead extracts the lowercase band from the QRZ ADIF file: 15m.
So, as suggested by the AI, I modified the following block of your script, on line 81 if I remember correctly:
if grep -qi "band:" <<< "$line"; then
band=${line##*">"}
fi
and I added a line to convert the band to uppercase, like this:
if grep -qi "band:" <<< "$line"; then
band=${line##*">"}
band=${band^^}
fi
It's working now, but it'll take a few hours to process about 16,000 QSOs with my old Core 2 Duo. It's late at night here, and I'm going to sleep, but I'll leave the PC on. I'll let you know tomorrow if everything went well. Hopefully...
73 de Beppe IK0DWJ
--
Giuseppe
IKØDWJ
HI Beppe!
Very good point!
It is just funny how that happened so. Here is beginning of my log extracted from QRZ:
As you see I got it as upper case and that's why all worked here.
It makes no harm to put it uppercase in any case, so that is a good fix.
You are right, it is sloooooow!. That is because it uses both bash and grep. There are also other ways to find substring from line, but I did not get them work.
Perhaps I need to test again.
Anyhow, this is needed only once for a log and can be run at background so it does not matter a lot.
--
Saku
OH1KH