QRZCallEU: Add QRZCALL.EU callbook and QSO upload#1042
Open
Ron6519 wants to merge 1 commit into
Open
Conversation
Add QRZCALL.EU as a callbook lookup provider and a QSO upload target, mirroring the QRZ.com provider in service/qrzcom. A single QRZCALL.EU Personal Access Token (pat_...) authenticates both; it is entered on a new Sync & QSL -> QRZCALL.EU sub-tab. Adds DB migration 039 with the qrzcalleu_qso_upload_status and qrzcalleu_qso_upload_date columns on contacts, and extends the update_contacts_upload_status trigger so an edited uploaded QSO flips back to 'M' for the next manual re-upload. Upload supports both the manual UploadQSODialog and an optional "Immediately Upload" toggle (mirrors ClubLog's real-time path, insert + update; QRZCALL.EU has no DELETE action so delete is not wired). Duplicate INSERTs are treated as success. QLog test suite passes 2420/2420, including migration_001..039.
Author
Owner
|
Hello, I can fix the implementation-related issues; that is not a problem. However, I also see other obstacles, for example:
This leads me to use only the callbook part of your PR. Unfortunately, when I tested the callbook data and verified the relevance of the returned data, the data was returned, but it did not match reality. For me, this is a signal that I cannot include even the callbook part in QLog. Please keep this open. Once the service stabilizes, I will be happy to use it after the necessary changes in the source code. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.





What this adds
QRZCALL.EU as a new integration in QLog —
(a) a callbook lookup provider, and (b) a QSO upload target —
mirroring the existing QRZ.com provider (
service/qrzcom/QRZ.*).QRZCALL.EU exposes QRZ-compatible endpoints, so this is a close mirror of
QRZ.com both structurally and on the wire:
GET https://api.qrzcall.eu/v1/pub/callsign_xml.php?callsign=…withAuthorization: Bearer pat_…POST https://api.qrzcall.eu/v1/pub/logbook_api.php—KEY=pat_…&ACTION=INSERT&OPTION=REPLACE&ADIF=…A single QRZCALL.EU Personal Access Token (
pat_…) authenticates both —no separate callbook vs logbook credentials. Generated by the user on
qrzcall.eu (My Profile → Account → API Tokens). Requires a Data or Extra
subscription.
Files
service/qrzcalleu/QRZCallEU.{h,cpp}—QRZCallEUBase(single-PAT credential),
QRZCallEUCallbook,QRZCallEUUploader.res/sql/migration_039.sql—qrzcalleu_qso_upload_status/qrzcalleu_qso_upload_datecolumns oncontacts.QLog.pro,res/res.qrc,core/CallbookManager.cpp,core/Migration.{h,cpp}(bumpslatestVersionto 39; extends theupdate_contacts_upload_statustrigger),core/LogParam.{h,cpp}(the Immediately Upload flag),
ui/MainWindow.{h,cpp}(aqrzcalleuRTinstance wired to
contactAdded/contactUpdated),ui/SettingsDialog.{ui,cpp}(callbook combo + new Sync & QSL →QRZCALL.EU sub-tab with API Token + Immediately Upload checkbox),
ui/UploadQSODialog.{ui,h,cpp}(newQRZCALLEUIDservice in themanual Upload dialog).
Settings UX
The PAT lives on a new Sync & QSL → QRZCALL.EU sub-tab, alongside
ClubLog / eQSL / HRDLog / LoTW / QRZ.com / Wavelog. The Callbook tab shows
a note pointing there (single credential, single source of truth).
Upload modes
uploader: a logged QSO is sent instantly, an edit re-sends it with
OPTION=REPLACE. Delete is not wired (the QRZCALL.EU endpoint has noDELETE action — only INSERT / REPLACE / STATUS).
A duplicate
INSERT(server returnsRESULT=FAIL&REASON=…duplicate…) istreated as upload success so re-uploads don't block the queue.
Testing
qmake6 && makeclean on Ubuntu 24.04 + Qt 6 (build verified in acontainer) and on macOS + Qt 6.11.
tests/tests.pro): 2 420 / 2 420 passing, includingMigrationTestwhich now exercisesmigration_001 … migration_039—our new migration applies cleanly through QLog's own test framework.
holds the PAT + Immediately Upload toggle.
via
QXmlStreamReader, reusing the QRZ field-mapping block verbatim).RESULT=OK&COUNT=1&LOGID=…; QSO marked'Y'.Y → Mvia the trigger, re-uploadswith
OPTION=REPLACE.instantly with the DB status written by the real-time path.
RESULT=AUTH) paths both verified.Conventions
master.Module_Name: Brief summarywith body lines ≤ 72 chars.service/qrzcom/QRZ.*(braces on their own lines,MODULE_IDENTIFICATION+FCT_IDENTIFICATION).Happy to adjust to taste — thanks for considering!