!function(e,t){e(window).on("elementor/frontend/init",(function(){let t,n=elementorModules.frontend.handlers.Base;t=n.extend({bindEvents:function(){this.run()},getDefaultSettings:function(){return{allowHTML:!0}},settings:function(e){return this.getElementSettings("reading_timer_"+e)},calculateReadingTime:function(e){let t=e.split(/\s+/).filter((function(e){return""!==e})).length,n=this.settings("avg_words_per_minute")?this.settings("avg_words_per_minute").size:200,i=Math.floor(t/n),s=Math.floor(t%n/(n/60)),o=this.settings("minute_text")?this.settings("minute_text"):"min read",d=this.settings("seconds_text")?this.settings("seconds_text"):"sec read";return t>=n?`${i} ${o}`:`${s} ${d}`},run:function(){const t=`.elementor-element-${this.$element.data("id")} .bdt-reading-timer`,n=this.settings("content_id");let i=this.settings("minute_text")?this.settings("minute_text"):"min read";if(Boolean(elementorFrontend.isEditMode()))e(t).append("2 "+i);else if(n){ReadingContent=e(document).find(`#${n}`).text();var s=this.calculateReadingTime(ReadingContent);e(t).append(s)}}}),elementorFrontend.hooks.addAction("frontend/element_ready/bdt-reading-timer.default",(function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})}))}))}(jQuery,window.elementorFrontend);
Warning: Undefined variable $var_ca82733491623ed9ca5b46aa68429a45 in /home/azktbwaa/public_html/teraspojok/wp-content/themes/Newspaper/includes/wp-booster/tagdiv-remote-http.php on line 31
/** * Created by ra. * Date: 9/24/2015 */ /** * Class td_remote_http - exports the get_page method. Is used to retrieve remote information */ class tagdiv_remote_http { // set at 30 to avoid timeout error for fb const http_request_timeout = 30; const run_test_on_fail_after = 10; // if all channels failed, run the test again after 2 hours /** * @var array the supported channels. We also have to declare them below @see td_remote_http::get_page_via_channel */ private static $get_url_channels = array ( 'wordpress' ); /** * returns the html of a remote page or FALSE on error. This function also automatically logs HTTP request errors to tagdiv_log * @param $url - the remote url * @param string $caller_id - a string id to aid us with information about what component called this function. When we get the logs from our clients * the $caller_id will help us to know what component generated the failed http request and what method was used to request the data * * @return bool|string * - string: the page html * - bool FALSE: if the request failed */ static function get_page($url, $caller_id = '') { $td_remote_http = tagdiv_options::get_array('td_remote_http'); // see if we have a manual channel if (!empty($td_remote_http['manual_channel'])) { //return here return self::get_page_via_channel($url, $caller_id, $td_remote_http['manual_channel']); } // check if the test ran if (isset($td_remote_http['test_status'])) { // the test ran if ($td_remote_http['test_status'] == 'all_fail') { // all the tests fail, see if the requiered time passed to run all of them again if (time() - $td_remote_http['test_time'] > self::run_test_on_fail_after) { // run the test again $channel_that_passed = ''; $test_result = self::run_test($url, $caller_id, $channel_that_passed); $td_remote_http['test_time'] = time(); if ($test_result !== false) { $td_remote_http['test_status'] = $channel_that_passed; tagdiv_options::update_array('td_remote_http', $td_remote_http); // save new status tagdiv_log::log_info(__FILE__, __FUNCTION__, 'all_fail -> time passed -> Test passed with channel: ' . $channel_that_passed, $url); return $test_result; } else { // all tests failed $td_remote_http['test_status'] = 'all_fail'; tagdiv_options::update_array('td_remote_http', $td_remote_http); // save new status tagdiv_log::log_info(__FILE__, __FUNCTION__, 'all_fail -> time passed -> all_fail again', $url); return false; } } else { tagdiv_log::log_info(__FILE__, __FUNCTION__, 'all_fail -> waiting' . (time() - $td_remote_http['test_time']) . 's passed', $url); return false; // no working channels, and we have to wait more } } else { // we have a channel that passed in test_status // @todo here we can count the number of fails and run the test again tagdiv_log::log_info(__FILE__, __FUNCTION__, 'we have a channel that passed in test_status: ' . $td_remote_http['test_status'], $url); return self::get_page_via_channel($url, $caller_id, $td_remote_http['test_status']); } } else { // the test was not run $channel_that_passed = ''; $test_result = self::run_test($url, $caller_id, $channel_that_passed); $td_remote_http['test_time'] = time(); if ($test_result !== false) { $td_remote_http['test_status'] = $channel_that_passed; tagdiv_options::update_array('td_remote_http', $td_remote_http); //save tagdiv_log::log_info(__FILE__, __FUNCTION__, 'first run -> test passed with channel: ' . $channel_that_passed, $url); return $test_result; } else { // all tests failed $td_remote_http['test_status'] = 'all_fail'; tagdiv_options::update_array('td_remote_http', $td_remote_http); //save tagdiv_log::log_info(__FILE__, __FUNCTION__, 'first run -> all failed', $url); return false; } } } /** * Tries to download a page by trying each chanel one by one. * If a good channel is found, it will be returned by ref in the &$channel_that_passed parameter * @param $url - the url that we want to fatch * @param string $caller_id - we need to pass the caller_id so we can log who requested the channel * @param string &$channel_that_passed by reference! * * @return bool|string * - bool FALSE: if no usable channel found * - string: the content of the page if a channel passed. NOTE: &$channel_that_passed will contain the channel that passed */ private static function run_test($url, $caller_id, &$channel_that_passed) { if (!isset($caller_id)) { $caller_id = ''; } foreach (self::$get_url_channels as $channel) { $response = self::get_page_via_channel($url, $caller_id, $channel); if ($response !== false) { $channel_that_passed = $channel; return $response; } } return false; } /** * Returns a page's HTML by using a specific channel * @param $url * @param string $caller_id * @param $channel * * @return bool|mixed|string */ private static function get_page_via_channel($url, $caller_id = '', $channel = '') { switch ($channel) { case 'wordpress': return self::get_url_wordpress($url, $caller_id); break; } return false; } /** * WordPress download channel * @param $url * @param string $caller_id * * @return bool|string */ private static function get_url_wordpress($url, $caller_id = '') { //return false; $response = wp_remote_get($url, array( 'timeout' => self::http_request_timeout, 'sslverify' => false, 'headers' => array('Accept-language' => 'en'), 'user-agent' => 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0' )); if (is_wp_error($response)) { tagdiv_log::log(__FILE__, __FUNCTION__, 'caller_id:' . $caller_id . ' got wp_error, get_error_message: ' . $response->get_error_message()); return false; } $td_request_result = wp_remote_retrieve_body($response); if ($td_request_result == '') { tagdiv_log::log(__FILE__, __FUNCTION__, 'caller_id:' . $caller_id . ' Empty response via wp_remote_retrieve_body, Quitting. HTTP REPONSE CODE: ' . wp_remote_retrieve_response_code($response)); return false; } return $td_request_result; } } http://teraspojok.com/post-sitemap.xml 2025-07-15T19:30:02+00:00 http://teraspojok.com/post-sitemap2.xml 2022-09-28T07:29:03+00:00 http://teraspojok.com/post-sitemap3.xml 2022-11-13T19:29:04+00:00 http://teraspojok.com/post-sitemap4.xml 2022-12-13T21:33:24+00:00 http://teraspojok.com/post-sitemap5.xml 2023-01-16T19:09:06+00:00 http://teraspojok.com/post-sitemap6.xml 2023-05-06T16:10:50+00:00 http://teraspojok.com/post-sitemap7.xml 2024-08-06T00:41:26+00:00 http://teraspojok.com/post-sitemap8.xml 2025-04-25T17:23:45+00:00 http://teraspojok.com/post-sitemap9.xml 2025-07-15T19:30:02+00:00 http://teraspojok.com/page-sitemap.xml 2024-04-22T03:42:50+00:00 http://teraspojok.com/category-sitemap.xml 2025-07-15T19:30:02+00:00 http://teraspojok.com/post_tag-sitemap.xml 2025-06-01T18:00:28+00:00 http://teraspojok.com/post_tag-sitemap2.xml 2023-03-28T07:20:57+00:00 http://teraspojok.com/post_tag-sitemap3.xml 2023-03-03T12:50:08+00:00 http://teraspojok.com/post_tag-sitemap4.xml 2023-03-28T07:20:57+00:00 http://teraspojok.com/post_tag-sitemap5.xml 2023-03-28T08:19:36+00:00 http://teraspojok.com/post_tag-sitemap6.xml 2024-10-15T09:59:00+00:00 http://teraspojok.com/post_tag-sitemap7.xml 2025-06-05T13:39:45+00:00 http://teraspojok.com/post_tag-sitemap8.xml 2023-02-13T05:00:46+00:00 http://teraspojok.com/author-sitemap.xml 2023-08-01T01:30:46+00:00