From ee9408c7b7a928bf3fa668c6c27bcd75a9323e28 Mon Sep 17 00:00:00 2001 From: phl0 Date: Mon, 15 May 2023 11:32:05 +0200 Subject: [PATCH] Add download delay and error handling --- application/controllers/Eqsl.php | 21 +++++++++++++-------- application/models/Eqslmethods_model.php | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/application/controllers/Eqsl.php b/application/controllers/Eqsl.php index d8c81b3d..5343bcd5 100644 --- a/application/controllers/Eqsl.php +++ b/application/controllers/Eqsl.php @@ -564,6 +564,7 @@ class eqsl extends CI_Controller { $image_url = $this->electronicqsl->card_image($username, urlencode($password), $callsign, $band, $mode, $year, $month, $day, $hour, $minute); $file = file_get_contents($image_url, true); + $error = ''; $dom = new domDocument; $dom->loadHTML($file); @@ -571,23 +572,24 @@ class eqsl extends CI_Controller { $images = $dom->getElementsByTagName('img'); if(!isset($images) || count($images) == 0) { - echo "Rate Limited"; - exit; + $error = "Rate Limited"; + return $error; } foreach ($images as $image) { $content = file_get_contents("https://www.eqsl.cc".$image->getAttribute('src')); if ($content === false) { - echo "No response"; - exit; + $error = "No response"; + return $error; } $filename = uniqid().'.jpg'; if (file_put_contents('images/eqsl_card_images/' . '/'.$filename, $content) !== false) { $this->Eqsl_images->save_image($id, $filename); + print "Image saved (QSO ID: ".$id.").
"; } } - print "Image saved (QSO ID: ".$id.").
"; + return $error; } @@ -613,9 +615,12 @@ class eqsl extends CI_Controller { $this->load->model('eqslmethods_model'); $qslsnotdownloaded = $this->eqslmethods_model->eqsl_not_yet_downloaded(); foreach ($qslsnotdownloaded->result_array() as $qsl) { - //var_dump($qsl); - $this->bulk_download_image($qsl['COL_PRIMARY_KEY']); - //print "---------------------------------

"; + $error = $this->bulk_download_image($qsl['COL_PRIMARY_KEY']); + if ($error != '') { + print "Error: ".$error; + break; + } + sleep(15); } } else { diff --git a/application/models/Eqslmethods_model.php b/application/models/Eqslmethods_model.php index ff83f5bd..369a4117 100644 --- a/application/models/Eqslmethods_model.php +++ b/application/models/Eqslmethods_model.php @@ -90,6 +90,7 @@ class Eqslmethods_model extends CI_Model { $this->db->where($this->config->item('table_name').'.COL_EQSL_QSL_RCVD', 'Y'); $this->db->where('qso_id', NULL); $this->db->where_in('station_profile.station_id', $logbooks_locations_array); + $this->db->order_by("COL_TIME_ON", "desc"); return $this->db->get(); }