X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Flibs%2Fyoomedia_functions.php;h=ff7b85a9b81310d10230f8be74aa23761998d25b;hb=56931cd9321119dd37372bd16d6c552857e40066;hp=47015d5224dec9c41f13347b9fcdf01170fb3185;hpb=f2736bc6457140146890877d992be862a78b259f;p=mailer.git diff --git a/inc/libs/yoomedia_functions.php b/inc/libs/yoomedia_functions.php index 47015d5224..ff7b85a9b8 100644 --- a/inc/libs/yoomedia_functions.php +++ b/inc/libs/yoomedia_functions.php @@ -1,7 +1,7 @@ 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') + ); + + // Run the query + $response = sendGetRequest($requestString); + + // Convert from ISO to UTF-8 only if count is > 3 because <= 3 means timeout + if (count($response) > 3) { + // Convert all lines to UTF-8 + 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 + + // Shall we count the query as used? + if ($countQuery === true) { + // Then update the config! + updateConfiguration('yoomedia_requests_remain', 1, '-'); + } // END - if + } // END - if + + // Return the data + return $response; } // Test if the extension settings did work @@ -84,50 +134,11 @@ function YOOMEDIA_TEST_CONFIG ($data) { $errorCode = -1; } else { // This is fine, because the result array is okay and the response code on element 8 is fine - $errorCode = 0; + $errorCode = '0'; } // Do we have some data there? - return ($errorCode == 0); -} - -// Queries the given Yoo!Media API 2.0 script -function YOOMEDIA_QUERY_API ($script, $countQuery = true) { - // Init response array - $response = array(); - - // 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') - ); - - // Run the query - $response = sendGetRequest($requestString); - - // Convert from ISO to UTF-8 - foreach ($response as $k => $v) { - $response[$k] = iconv('ISO-8859-1', 'UTF-8//TRANSLIT',$v); - } // END - if - - // Shall we count the query as used? - if ($countQuery === true) { - // Then update the config! - updateConfiguration('yoomedia_requests_remain', 1, '-'); - } // END - if - } // END - if - - // Return the data - return $response; + return ($errorCode == '0'); } // "Getter" for a parsed result for all text mails. This means an array without @@ -149,41 +160,40 @@ function YOOMEDIA_PARSE_RESPONSE ($response, $type) { $result = array(); // Cut off the header - $dummy = $response; - foreach ($response as $line) { - // Remove line - array_shift($dummy); - - // Is this line empty? - if (empty($line)) { - // Then stop here - break; - } // END - if - } // END - foreach + $dummy = removeHttpHeaderFromResponse($response); + + // If we have no result, abort here + if (count($dummy) == 0) { + // Empty response from API + logDebugMessage(__FUNCTION__, __LINE__, 'Empy result from API received.'); + return array(); + } // END - if // The result is now still raw, so we must split it up and trim spaces away $responseLine = trim(implode("\n", $dummy)); // Last line should never be a pipe! - if (substr($responseLine, -1, 1) == '|') $responseLine = substr($responseLine, 0, -1); + if (substr($responseLine, -1, 1) == '|') { + $responseLine = substr($responseLine, 0, -1); + } // END - if // Now, explode all in one array $dataArray = explode('|', $responseLine); // Now make the result array with two dimensions - $cnt = 0; $entry = 0; + $count = '0'; $entry = '0'; foreach ($dataArray as $line) { // Add the line - $result[$entry][yoomediaTranslateIndex($type, $cnt)] = $line; + $result[$entry][yoomediaTranslateIndex($type, $count)] = $line; // End of data of first entry reached? - if ($cnt == 6) { + if ($count == 6) { // Then advance to next entry and reset counter $entry++; - $cnt = 0; + $count = '0'; } else { // Count up - $cnt++; + $count++; } } // END - foreach @@ -211,18 +221,6 @@ function YOOMEDIA_PREPARE_MAIL_DELIVERY ($data) { // Is the reward below one? if ($data['reward'] < 1) $data['reward'] = 1; - // Add website id - $data['sid'] = getConfig('yoomedia_sid'); - - // Add total receivers - $data['all'] = translateComma(getTotalReceivers()); - - // Add categories - $data['categories'] = generateCategoryOptionsList('normal'); - - // Decode entities - $data['text'] = decodeEntities($data['text']); - // Load template loadTemplate('admin_send_yoomedia', false, $data); } @@ -239,7 +237,7 @@ function YOOMEDIA_SEND_BONUS_MAIL ($data, $mode) { } // Add dummy receiver to avoid notice - $data['receiver'] = 0; + $data['receiver'] = '0'; // HTML or normal? (normal is default...) $type = 't'; @@ -267,7 +265,7 @@ function YOOMEDIA_EXCLUDE_MAIL ($data, $mode) { $mode = YOOMEDIA_CONVERT_MODE($mode); // Add the entry - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_yoomedia_reload` (`type`,`y_id`,`y_reload`,`inserted`) VALUES ('%s',%s,%s,'0000-00-00 00:00')", + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_yoomedia_reload` (`type`, `y_id`, `y_reload`, `inserted`) VALUES ('%s',%s,%s,'0000-00-00 00:00')", array( $mode, bigintval($data['id']), @@ -296,8 +294,8 @@ function yoomediaTranslateIndex ($type, $index) { // Use this element $return = $GLOBALS['translation_tables']['yoomedia'][$type][$index]; } else { - // Not found! - logDebugMessage(__FUNCTION__, __LINE__, "type={$type},index={$index} not found."); + // Not found + logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $type . ',index=' . $index . ' not found'); } // Return value @@ -311,11 +309,11 @@ function translateYooMediaError ($errorCode) { // Is the entry there? if (isset($GLOBALS['translation_tables']['yoomedia']['error_codes'][$errorCode])) { - // Entry found! + // Entry found $return = $GLOBALS['translation_tables']['yoomedia']['error_codes'][$errorCode]; } else { // Log missing entries - debug_report_bug(sprintf("Unknown error code %s detected.", $errorCode)); + debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown error code %s[%s] detected.", $errorCode, gettype($errorCode))); } // Return value @@ -340,7 +338,7 @@ function YOOMEDIA_CHECK_RELOAD ($id, $reload, $type) { if (((time() - $time) >= ($reload * 60*60)) && ($time > 0)) { // Remove entry SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_yoomedia_reload` WHERE `id`=%s LIMIT 1", - array($id), __FUNCTION__, __LINE__); + array($id), __FUNCTION__, __LINE__); } else { // Dont' sent again this mail $reloaded = $time; @@ -362,7 +360,7 @@ function YOOMEDIA_RELOAD_LOCK ($data, $mode) { $mode = YOOMEDIA_CONVERT_MODE($mode); // Add the entry - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_yoomedia_reload` (`type`,`y_id`,`y_reload`) VALUES ('%s',%s,%s)", + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_yoomedia_reload` (`type`, `y_id`, `y_reload`) VALUES ('%s',%s,%s)", array($mode, bigintval($data['id']), bigintval($data['reload'])), __FUNCTION__, __LINE__); } // END - if } @@ -372,11 +370,11 @@ function YOOMEDIA_CONVERT_MODE ($mode) { // Convert mode for normal/html switch ($mode) { case 'normal': - $mode = "textmail"; + $mode = 'textmail'; break; case 'html': - $mode = "htmlmail"; + $mode = 'htmlmail'; break; } // END - switch @@ -392,17 +390,17 @@ function YOOMEDIA_GET_ERRORCODE_FROM_RESULT ($response) { // Which response should we parse? if ((isset($response[8])) && (count($response) == 9)) { // Use error code from element 8 (mostly API errors) - $codeArray = explode("
", $response[8]); + $codeArray = explode('
', $response[8]); // Use only the first element $code = bigintval($codeArray[0]); } elseif ((is_array($response[0])) && (isset($response[0]['id']))) { // Begin with extraction - $codeArray = explode(" ", $response[0]['id']); + $codeArray = explode(' ', $response[0]['id']); $code = $codeArray[0]; - $codeArray = explode("
", $code); + $codeArray = explode('
', $code); $code = $codeArray[0]; - $codeArray = explode("
", $code); + $codeArray = explode('
', $code); $code = $codeArray[0]; // Remove all new-line characters @@ -411,11 +409,17 @@ function YOOMEDIA_GET_ERRORCODE_FROM_RESULT ($response) { // Remove carrige-return $code = str_replace("\n", '', $code); - } else { + + } elseif (count($response) < 9) { // Should not happen! - logDebugMessage(__FUNCTION__, __LINE__, "Cannot parse response. Raw response=" . base64_encode(serialize($response))); + debug_report_bug(__FUNCTION__, __LINE__, 'Cannot parse response. Raw response:
' . print_r($response, true) . '
'); } + // Fix empty code to bad + if (empty($code)) { + $code = -999; + } // END - if + // Return error code return $code; }