eQSL Graphic Retrieval Program 09 June 2009 Latest revision 17 December 2022 Any questions or problems may be directed to Dave@eQSL.cc SYNOPSIS ======== Responding to increasing demand for a mechanism by which loggers can retrieve the graphical image of an eQSL "card" on request from its recipient, we have created this GeteQSL.cfm program. The old technique that some programmers had discovered (using the DisplayQSL.cfm program) was not secure and not designed to be called from outside the system. We had to do something. The new GeteQSL.cfm program can be accessed by doing a simple HTTP POST or GET from any program written in a modern development language that can use HTTP. When the required parameters have been specified correctly, the program returns a page containing the URL where the graphical eQSL "card" can be retrieved. You can retrieve eQSLs sent to a user whose Callsign and Password are known, when that eQSL is either in the InBox or in the Archive, but none which have already been rejected by the recipient. CAUTION ======= Graphics for eQSLs are generated on-the-fly, i.e. at the time they are requested. This is a processor-intensive task that has the potential to slow down the entire system. PLEASE limit your use of the GeteQSL.cfm program to individual eQSLs at a speed of SLOWER THAN 6 PER MINUTE. PLEASE do not use a bunch of simultaneous threads, as this will eventually max out our web server and shut other users out of the system. PLEASE do not mass-download entire Inboxes full of eQSL graphics. Our system is designed to allow users to download a single eQSL graphic at any time. Downloading an entire Inbox into another web service deprives us of advertising revenue and the ability to communicate with our users in a timely manner through our own web site, and will be discouraged or even blocked. PLEASE also implement a mechanism for determining whether you have already downloaded any given eQSL, and DO NOT download the same eQSL graphic over and over. We are providing GeteQSL.cfm as a courtesy to logger publishers, but IF THE GRAPHICS LOAD BOGS DOWN OUR SYSTEM SPEED, AN AUTOMATIC 10 SECOND THROTTLE WILL AUTOMATICALLY START WHICH WILL RETURN THE FOLLOWING MESSAGE within HTML comment tags: Warning: Processor Overload - Throttling invoked We log every use of the GeteQSL.cfm program and the webmaster has real-time monitors tracking its use versus processor utilization. If throttling occurs, a warning message to that effect will be enclosed in HTML comments: Warning: Processor Overload - Throttling invoked Note that our copyright states that no part of the web site may be downloaded without permission, except that users may download their OWN eQSLs. Commercial services who wish to use our GeteQSL.cfm program to download multiple users' eQSLs should apply at Dave@eQSL.cc to our Authorized Interchange program. We will set up a range of IP addresses that are authorized to download multiple users' eQSLs as long as the users have at least a Silver membership and the Authorized Interchange adheres to the other guidelines above. HOW TO USE THE "GeteQSL.cfm" PROGRAM ==================================== The URL is https://www.eQSL.cc/qslcard/GeteQSL.cfm (case insensitive) The following parameters are REQUIRED: Username The callsign of the recipient of the eQSL Password The password of the user's account CallsignFrom The callsign of the sender of the eQSL QSOYear YYYY OR YY format date of the QSO QSOMonth MM format QSODay DD format QSOHour HH format (24-hour time) QSOMinute MM format QSOBand 20m, 80M, 70cm, etc. (case insensitive) QSOMode Must match exactly and should be an ADIF-compatible mode Parameters may be included in the URL as shown below in the TEST PROCEDURE, or may be included internally in the HTTP command in a set of form parameters. (If slashes are used in a callsign or a date in the URL method of submission, they MUST be escaped properly.) Date/Time must match the desired eQSL to within plus or minus 5 minutes of the time stored in the eQSL. Mode must match exactly, unless you specify a submode of JT65 (for instance JT65A) or JT9 (for instance JT9-1), in which case the major mode will be used to search for a match (JT65 or JT9 respectively). RETURN PAGE FORMAT: =================== The returned page will contain various amounts of text, due to the fact that we are using internal subroutines that often generate HTML comments. The easiest way to parse the returned page is 1. Search for the string "Error:" and if found, display the entire page to determine the source of the error and correct it before continuing 2. If no error was found, search for the string "