// Enougth queries left?
if ((getConfig('yoomedia_requests_remain') > 0) || ($countQuery === false)) {
- // Prepare the low-level request
- $requestString = sprintf("http://www.yoomedia.de/interface_2.0/%s?id=%s&sid=%s&pw=%s&reload=%s&ma=%s&uebrig=%s&verguetung=%s&erotik=%s",
- $script,
- getConfig('yoomedia_id'),
- getConfig('yoomedia_sid'),
- getConfig('yoomedia_passwd'),
- getConfig('yoomedia_tm_max_reload'),
- getConfig('yoomedia_tm_min_wait'),
- getConfig('yoomedia_tm_clicks_remain'),
- getConfig('yoomedia_tm_min_pay'),
- getConfig('yoomedia_erotic_allowed')
+ // Prepare request array
+ $requestData = array(
+ 'id' => getConfig('yoomedia_id'),
+ 'sid' => getConfig('yoomedia_sid'),
+ 'pw' => getConfig('yoomedia_passwd'),
+ 'reload' => getConfig('yoomedia_tm_max_reload'),
+ 'ma' => getConfig('yoomedia_tm_min_wait'),
+ 'uebrig' => getConfig('yoomedia_tm_clicks_remain'),
+ 'verguetung' => getConfig('yoomedia_tm_min_pay'),
+ 'erotik' => getConfig('yoomedia_erotic_allowed')
);
// Run the query
- $response = sendGetRequest($requestString);
+ $response = sendGetRequest('http://www.yoomedia.de/interface_2.0/' . $script, $requestData, true);
// Convert from ISO to UTF-8 only if count is > 3 because <= 3 means timeout
if (count($response) > 3) {
foreach ($response as $k => $v) {
// Convert the line
$response[$k] = iconv('windows-1252', 'UTF-8//TRANSLIT', $v);
- /*
- // iconv()-less ISO-8859-1 -> UTF-8
- $response[$k] = preg_replace(
- "/([\x80-\xFF])/e",
- "chr(0xC0|ord('\\1')>>6).chr(0x80|ord('\\1')&0x3F)",
- $v
- );
- */
} // END - foreach
} // END - if
$errorCode = YOOMEDIA_GET_ERRORCODE_FROM_RESULT($response);
// Log the response if failed
- if (count($response) == 0) {
+ if ((count($response) == 0) && ($errorCode > 0)) {
// Queries depleted (as we count here!)
logDebugMessage(__FUNCTION__, __LINE__, 'Requested depleted. Maxmimum was: ' . getConfig('yoomedia_requests_total'));
$errorCode = -1;
- } elseif (!isset($response[8])) {
- // Invalid response
- logDebugMessage(__FUNCTION__, __LINE__, 'Missing response line [8]. Raw response=' . base64_encode(serialize($response)));
- $errorCode = -1;
} elseif ((($errorCode <= 4) && ($errorCode > 0)) || ($errorCode >= 8)) {
// An error has returned from the account
logDebugMessage(__FUNCTION__, __LINE__, 'Unexpected error code ' . $errorCode . ' received.');
- } elseif (count($response) < 9) {
+ } elseif ((count($response) > 0) && ($errorCode != 0)) {
// Log serialized raw response
logDebugMessage(__FUNCTION__, __LINE__, 'Raw response=' . base64_encode(serialize($response)));
$errorCode = -1;
// Extract code from response
function YOOMEDIA_GET_ERRORCODE_FROM_RESULT ($response) {
+ // The response must be an array
+ assert(is_array($response));
+
// Bad code as default
$code = -999;
// Use only the first element
$code = bigintval($codeArray[0]);
- } elseif ((is_array($response[0])) && (isset($response[0]['id']))) {
+ } elseif (!empty($response[0])) {
// Begin with extraction
$codeArray = explode(' ', $response[0]['id']);
$code = $codeArray[0];
// Remove carrige-return
$code = str_replace("\n", '', $code);
-
- } elseif (count($response) < 9) {
+ } elseif (count($response) == 0) {
+ // All fine, but empty result
+ $code = 0;
+ } else {
// Should not happen!
debug_report_bug(__FUNCTION__, __LINE__, 'Cannot parse response. Raw response:<pre>' . print_r($response, true) . '</pre>');
}