Ładowanie...

krupapiotr.pl

Technologia, na której można polegać

TelewizjaTV-SAT

Eurosport 4K z emisją FTA na 19,2°E

27.05.2019 18.26 satkurier.pl 752 0 1 minuta

Zgodnie z zapowiedziami, na czas turnieju tenisowego Roland Garros uruchomiony został Eurosport 4K. Co ciekawe transmisje są dostępne FTA z pozycji orbitalnej 19,2°E w ramach kanału UHD1 by ASTRA / HD+. Oznacza to, że może je oglądać praktycznie każdy – za darmo. 

Eurosport 4K z emisją FTA na 19,2°E
Eurosport 4K z emisją FTA na 19,2°E

Parametry techniczne:
Astra 1L (19,2°E)
tp. 35 (10,993 GHz, pol. H, SR: 22000, FEC: 5/6; DVB-S2/8PSK)

ID: UHD1 by ASTRA / HD+
PID V: 101 (HEVC/UHD)
PID A: 102 (deu)
PID PCR: 101
SID: 2
PID PMT: 96
Provider: SES ASTRA
Kodowanie: brak (FTA)

Przepływność wideo Eurosport 4K wynosi około 24 Mbit/s, a jakość dźwięku około 200 kbit/s.
 

Przekaz Eurosport 4K w ramach UHD1 by ASTRA / HD+
Źródło:
Anita Kaźmierska

satkurier.pl

Największy i najstarszy serwis poświęcony telewizji cyfrowej, przygotowywany przez wydawcę miesięcznika SAT Kurier. Bieżące wydarzenia z rynku mediów i nowych technologii. Portal SATKurier.pl - najnowsze informacje - telewizja, media, platformy, nowe kanały, radio, technologie, transmisje sportowe

Napisz komentarz ...

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.

/** * ========================================================================== * KRUPAS CORE V56.3.1 - THE MASTER ENGINE (MAXIMUM SAFE & LIVE WEATHER) * ========================================================================== * POPRAWKA V56.3.1: * - Ochrona przed błędem DivisionByZero (dzielenie przez zero). * - Agresywne czyszczenie bufora (ob_clean) chroniące plik JSON widgetu. * - Catch (\Throwable) aby zapobiec wysypaniu strony przy braku tabel. * ========================================================================== */ add_action('init', function() { if (isset($_GET['RESET_POGODY'])) { delete_transient('krupa_current_weather_data'); delete_transient('krupa_weather_transient_data'); delete_option('krupa_weather_v56_initialized'); echo "

SUKCES

Pamięć podręczna pogody została wyczyszczona.

"; exit; } }); if (!function_exists('get_krupa_master_data')) { function get_krupa_master_data() { static $master_data = null; if ($master_data !== null) return $master_data; global $wpdb; $tz = new DateTimeZone('Europe/Warsaw'); $teraz = new DateTime('now', $tz); $teraz_str = $teraz->format('Y-m-d H:i:s'); $godzina = (int)$teraz->format('G'); $minuty = (int)$teraz->format('i'); $dzien_roku = (int)$teraz->format('z'); $dzien_tyg = (int)$teraz->format('N'); $rok = (int)$teraz->format('Y'); $status_reczny = get_option('krupa_status_pracy', 'auto'); $opis_reczny = get_option('krupa_opis_montazu', ''); $loc_reczna = get_option('krupa_lokalizacja_reczna', ''); $api_key = '3fce60aeedeb0edf258f9d208efa7f29'; $staff_id = 1; $miejsca = [ 'Lublin', 'Niemce', 'Nasutów', 'Nasutów-Kolonia', 'Dys', 'Ciecierzyn', 'Baszki', 'Krasienin', 'Krasienin-Kolonia', 'Stoczek Kolonia', 'Leonów', 'Kawka', 'Smugi', 'Elizówka', 'Pryszczowa Góra', 'Wola Niemiecka', 'Boduszyn', 'Rudka Kozłowiecka', 'Zalesie', 'Jakubowice Konińskie', 'Jakubowice Konińskie-Kolonia', 'Pliszczyn', 'Łagiewniki', 'Swoboda', 'Pólko', 'Dziuchów', 'Lubartów', 'Łucka', 'Łucka-Kolonia', 'Wólka Rokicka', 'Wólka Rokicka-Plaża', 'Serniki', 'Chlewiska', 'Pałecznica', 'Nowodwór', 'Annobór', 'Szczekarków', 'Wola Lisowska', 'Wandzin', 'Wincentów', 'Świdnik', 'Łęczna', 'Turka', 'os. Borek', 'Wólka Lubelska', 'Dominów', 'Kalinówka', 'Franciszków', 'Mełgiew', 'Minkowice', 'Spiczyn', 'Zawieprzyce', 'Kijany', 'Januszówka', 'Krzesimów', 'Świdnik Duży', 'Świdnik Mały', 'Jastków', 'Snopków', 'Marysin', 'Tomaszowice', 'Panieńszczyzna', 'Sieprawice', 'Moszna', 'Ożarów', 'Piotrowice', 'Konopnica', 'Szerokie', 'Motycz', 'Motycz Leśny', 'Stasin', 'Uniszowice', 'Płouszowice', 'Zemborzyce', 'Zemborzyce Tereszyńskie', 'Abramowice Prywatne', 'Wilczopole', 'Mętów', 'Głusk', 'Ćmiłów', 'Prawiedniki', 'Kalina', 'Cisica', 'Sławinek' ]; $real_services = []; $grafik = []; $bookly_holidays_stale = []; $bookly_holidays_jednorazowe = []; $jest_zlecenie = false; $lokalizacja = ''; $usluga_bookly = ''; $czas_info = ''; $sekundy_do_konca = 0; $calkowity_czas_uslugi = 5400; $koniec_zlecenia = null; $is_multi_day_active = false; $dzis_start = (clone $teraz)->setTime(8, 0, 0); $dzis_koniec = (clone $teraz)->setTime(16, 0, 0); // ZMIANA: \Throwable przechwyci nawet błędy Fatal, ratując json przed rozsypaniem się try { $table_services = $wpdb->prefix . 'bookly_services'; $table_schedule = $wpdb->prefix . 'bookly_staff_schedule_items'; $table_appointments = $wpdb->prefix . 'bookly_appointments'; $table_customer_appointments = $wpdb->prefix . 'bookly_customer_appointments'; $table_holidays = $wpdb->prefix . 'bookly_holidays'; $tables_exist = $wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $table_services)); if ($tables_exist) { $holidays_exist = $wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $table_holidays)); if ($holidays_exist) { $sql_holidays = $wpdb->prepare("SELECT date, repeat_event FROM {$table_holidays} WHERE staff_id = %d OR staff_id IS NULL", $staff_id); $db_holidays = $wpdb->get_results($sql_holidays); if (is_array($db_holidays)) { foreach ($db_holidays as $h) { if ($h->repeat_event) { $bookly_holidays_stale[] = substr($h->date, 5); } else { $bookly_holidays_jednorazowe[] = $h->date; } } } } $sql_services = "SELECT title, duration FROM {$table_services} WHERE type = 'simple'"; $db_services = $wpdb->get_results($sql_services); if (is_array($db_services)) { $real_services = $db_services; } $sql_hours = "SELECT day_index, start_time, end_time FROM {$table_schedule} WHERE staff_id = %d"; $db_hours = $wpdb->get_results($wpdb->prepare($sql_hours, $staff_id)); if (is_array($db_hours)) { foreach ($db_hours as $row) { $day_idx = (int)$row->day_index; $iso_idx = ($day_idx === 1) ? 7 : $day_idx - 1; if (!empty($row->start_time) && $row->start_time !== 'NULL' && !empty($row->end_time) && $row->end_time !== 'NULL') { $grafik[$iso_idx] = [ 'start_h' => (int)date('G', strtotime($row->start_time)), 'start_m' => (int)date('i', strtotime($row->start_time)), 'end_h' => (int)date('G', strtotime($row->end_time)), 'end_m' => (int)date('i', strtotime($row->end_time)), 'raw_start' => $row->start_time, 'raw_end' => $row->end_time ]; } else { $grafik[$iso_idx] = null; } } } if (isset($grafik[$dzien_tyg]) && is_array($grafik[$dzien_tyg])) { $dzis_start = (clone $teraz)->setTime((int)$grafik[$dzien_tyg]['start_h'], (int)$grafik[$dzien_tyg]['start_m'], 0); $dzis_koniec = (clone $teraz)->setTime((int)$grafik[$dzien_tyg]['end_h'], (int)$grafik[$dzien_tyg]['end_m'], 0); } $sql_current = $wpdb->prepare(" SELECT a.start_date, a.end_date, ca.notes as client_note, s.title as service_name FROM {$table_appointments} a LEFT JOIN {$table_services} s ON a.service_id = s.id LEFT JOIN {$table_customer_appointments} ca ON ca.appointment_id = a.id WHERE a.start_date <= %s AND a.end_date >= %s AND (ca.status IS NULL OR ca.status != 'cancelled') ORDER BY a.start_date ASC ", $teraz_str, $teraz_str); $db_current_apts = $wpdb->get_results($sql_current); $res_sql = null; $dzisiejszy_start_zlecenia = null; $dzisiejszy_koniec_zlecenia = null; if (is_array($db_current_apts)) { foreach ($db_current_apts as $apt) { $is_zbiorcza = false; if (!empty($apt->service_name)) { $name_lower = function_exists('mb_strtolower') ? mb_strtolower($apt->service_name, 'UTF-8') : strtolower($apt->service_name); if (strpos($name_lower, 'zbiorcz') !== false || strpos($name_lower, 'w bloku') !== false) { $is_zbiorcza = true; } } $apt_start = new DateTime($apt->start_date, $tz); $apt_end = new DateTime($apt->end_date, $tz); $effective_end = clone $apt_end; $effective_start = clone $apt_start; $multi = false; $lokalny_start = clone $dzis_start; $lokalny_koniec = clone $dzis_koniec; if ($is_zbiorcza) { $lokalny_start->setTime(8, 30, 0); $lokalny_koniec->setTime(15, 0, 0); } if ($apt_end->format('Y-m-d') > $teraz->format('Y-m-d')) { $effective_end = clone $lokalny_koniec; $multi = true; } if ($apt_start->format('Y-m-d') < $teraz->format('Y-m-d')) { $effective_start = clone $lokalny_start; $multi = true; } if ($is_zbiorcza) { if ($effective_start < $lokalny_start) $effective_start = clone $lokalny_start; if ($effective_end > $lokalny_koniec) $effective_end = clone $lokalny_koniec; } if ($teraz >= $effective_start && $teraz < $effective_end) { $res_sql = $apt; $is_multi_day_active = $multi || $is_zbiorcza; $dzisiejszy_start_zlecenia = $effective_start; $dzisiejszy_koniec_zlecenia = $effective_end; break; } } } if ($res_sql) { $jest_zlecenie = true; $usluga_bookly = !empty($res_sql->service_name) ? $res_sql->service_name : 'Konsultacja serwisowa'; if (!empty($res_sql->client_note)) { $adres_raw = trim($res_sql->client_note); $znaleziono_w_bazie = false; foreach ($miejsca as $m) { if (function_exists('mb_stripos') ? (mb_stripos($adres_raw, $m) === 0) : (stripos($adres_raw, $m) === 0)) { $lokalizacja = $m; $znaleziono_w_bazie = true; break; } } if (!$znaleziono_w_bazie) { if (strpos($adres_raw, ',') !== false) { $czesci = explode(',', $adres_raw); $adres_raw = trim($czesci[0]); } $czysty_tekst = preg_split('/(?:\\b(?:ul\\.?|ulica|nr)\\b|\\s\\d)/i', $adres_raw); $miejscowosc_temp = trim($czysty_tekst[0]); $lokalizacja = function_exists('mb_convert_case') ? mb_convert_case($miejscowosc_temp, MB_CASE_TITLE, "UTF-8") : ucwords($miejscowosc_temp); } } if (!empty($res_sql->end_date)) { $koniec_zlecenia = isset($dzisiejszy_koniec_zlecenia) ? clone $dzisiejszy_koniec_zlecenia : new DateTime($res_sql->end_date, $tz); $sekundy_do_konca = $koniec_zlecenia->getTimestamp() - $teraz->getTimestamp(); if ($is_multi_day_active) { $calkowity_czas_uslugi = $dzisiejszy_koniec_zlecenia->getTimestamp() - $dzisiejszy_start_zlecenia->getTimestamp(); } else { $calkowity_czas_uslugi = $koniec_zlecenia->getTimestamp() - (new DateTime($res_sql->start_date, $tz))->getTimestamp(); } } } } } catch (\Throwable $e) { $usluga_bookly = 'Status: Oczekuje na harmonogram'; } // Zabezpieczenie przez podziałem przez ZERO if ($calkowity_czas_uslugi <= 0) $calkowity_czas_uslugi = 5400; $czy_swieto = false; $dzien_m_d = $teraz->format('m-d'); $dzien_y_m_d = $teraz->format('Y-m-d'); $swieta_stale = ['01-01', '01-06', '05-01', '05-03', '08-15', '11-01', '11-11', '12-25', '12-26']; try { if (function_exists('easter_date')) { $easter = (new DateTime())->setTimestamp(easter_date($rok))->setTimezone($tz); } else { $a = $rok % 19; $b = floor($rok / 100); $c = $rok % 100; $d = floor($b / 4); $e = $b % 4; $f = floor(($b + 8) / 25); $g = floor(($b - $f + 1) / 3); $h = (19 * $a + $b - $d - $g + 15) % 30; $i = floor($c / 4); $k = $c % 4; $L = (32 + 2 * $e + 2 * $i - $h - $k) % 7; $m = floor(($a + 11 * $h + 22 * $L) / 451); $miesiac = floor(($h + $L - 7 * $m + 114) / 31); $dzien = (($h + $L - 7 * $m + 114) % 31) + 1; $easter = new DateTime("$rok-$miesiac-$dzien", $tz); } $pon_w = (clone $easter)->modify('+1 day')->format('m-d'); $boze_c = (clone $easter)->modify('+60 days')->format('m-d'); if (in_array($dzien_m_d, $swieta_stale) || $dzien_m_d == $pon_w || $dzien_m_d == $boze_c || in_array($dzien_m_d, $bookly_holidays_stale) || in_array($dzien_y_m_d, $bookly_holidays_jednorazowe)) { $czy_swieto = true; } } catch (\Throwable $e) { $czy_swieto = false; } $czy_godziny = false; if ($teraz >= $dzis_start && $teraz < $dzis_koniec && !$czy_swieto) { $czy_godziny = true; } $dzis_czy_pracuje = (isset($grafik[$dzien_tyg]) && is_array($grafik[$dzien_tyg]) && !$czy_swieto); $czy_przerwa = false; $typ_przerwy = ''; if (!$jest_zlecenie && $czy_godziny && $dzis_czy_pracuje) { if ($godzina == 10 && $minuty >= 15 && $minuty <= 25) { $czy_przerwa = true; $typ_przerwy = 'Przerwa śniadaniowa 🍕'; } elseif (($godzina == 12 && $minuty >= 45) || $godzina == 13 || ($godzina == 14 && $minuty <= 15)) { $czy_przerwa = true; $typ_przerwy = 'Wolny termin / Przerwa 🔧'; } elseif ($godzina == 16 && $minuty >= 20 && $minuty <= 35) { $czy_przerwa = true; $typ_przerwy = 'Wolne okienko 🔧'; } elseif ($godzina == 17 && $minuty >= 10) { $czy_przerwa = true; $typ_przerwy = 'Krótka pauza 🔋'; } elseif ($godzina == 9 && $minuty <= 10) { $czy_przerwa = true; $typ_przerwy = 'Przerwa techniczna 🔋'; } } if (empty($usluga_bookly)) { try { if (isset($tables_exist) && $tables_exist) { $najblizsze_zlecenie = $wpdb->get_var($wpdb->prepare(" SELECT a.start_date FROM {$table_appointments} a LEFT JOIN {$table_customer_appointments} ca ON ca.appointment_id = a.id WHERE a.start_date > %s AND DATE(a.start_date) = DATE(%s) AND (ca.status IS NULL OR ca.status != 'cancelled') ORDER BY a.start_date ASC LIMIT 1 ", $teraz_str, $teraz_str)); } else { $najblizsze_zlecenie = null; } $ts_koniec_dnia = $dzis_koniec->getTimestamp(); $ts_teraz = $teraz->getTimestamp(); if ($najblizsze_zlecenie) { $wolny_czas_sekundy = strtotime($najblizsze_zlecenie) - $ts_teraz; } else { $wolny_czas_sekundy = $ts_koniec_dnia - $ts_teraz; } if ($wolny_czas_sekundy < 0) $wolny_czas_sekundy = 0; $stan_losowy = (($dzien_roku * 24) + $godzina) % 100; if ($wolny_czas_sekundy >= 3600 && $stan_losowy <= 30 && $czy_godziny) { if (empty($lokalizacja)) $lokalizacja = !empty($loc_reczna) ? $loc_reczna : $miejsca[($dzien_roku + $godzina) % count($miejsca)]; $pula_uslug = []; if (!empty($real_services) && is_array($real_services)) { foreach ($real_services as $s) { $pula_uslug[] = ['title' => $s->title, 'duration' => (int)$s->duration]; } } else { $pula_uslug[] = ['title' => 'Montaż TV-SAT', 'duration' => 5400]; } $dostepne_uslugi = []; foreach ($pula_uslug as $usl) { if ($usl['duration'] > 0 && $usl['duration'] <= $wolny_czas_sekundy) { $dostepne_uslugi[] = $usl; } } if (empty($dostepne_uslugi)) { usort($pula_uslug, function($a, $b) { return $a['duration'] - $b['duration']; }); $dostepne_uslugi[] = $pula_uslug[0]; } $indeks_uslugi = ($dzien_roku + $godzina) % count($dostepne_uslugi); $wylosowana_usluga = $dostepne_uslugi[$indeks_uslugi]; $usluga_bookly = $wylosowana_usluga['title']; $calkowity_czas_uslugi = (int)$wylosowana_usluga['duration']; if ($calkowity_czas_uslugi <= 0 || $calkowity_czas_uslugi > 14400) { $calkowity_czas_uslugi = 5400; } $sekundy_do_konca = $calkowity_czas_uslugi - ($ts_teraz % max(1, $calkowity_czas_uslugi)); if ($sekundy_do_konca > $wolny_czas_sekundy) { $sekundy_do_konca = $wolny_czas_sekundy; } } else { $usluga_bookly = 'Status: Brak zleceń'; $sekundy_do_konca = 0; if (empty($lokalizacja)) $lokalizacja = !empty($loc_reczna) ? $loc_reczna : 'Baza lub w terenie'; } } catch (\Throwable $e) { $usluga_bookly = 'Status: Oczekuje na harmonogram'; $sekundy_do_konca = 0; if (empty($lokalizacja)) $lokalizacja = !empty($loc_reczna) ? $loc_reczna : 'Baza lub w terenie'; } } else { if (empty($lokalizacja)) $lokalizacja = !empty($loc_reczna) ? $loc_reczna : $miejsca[($dzien_roku + $godzina) % count($miejsca)]; } $procent_wykonania = 100; if ($sekundy_do_konca > 0 && !$czy_przerwa) { $h = floor($sekundy_do_konca / 3600); $m = floor(($sekundy_do_konca % 3600) / 60); if ($is_multi_day_active) { $czas_info = "Dzisiejszy etap: "; } else { $czas_info = "Pozostało ok: "; } if ($h > 0) $czas_info .= "{$h} godz. "; if ($m > 0 || $h == 0) $czas_info .= "{$m} min."; $calkowity = ($calkowity_czas_uslugi > 0) ? $calkowity_czas_uslugi : 5400; $uplynelo = $calkowity - $sekundy_do_konca; if ($uplynelo < 0) $uplynelo = 0; $procent_wykonania = round(($uplynelo / max(1, $calkowity)) * 100); } $cel = clone $teraz; if ($teraz >= $dzis_koniec || !isset($grafik[$dzien_tyg]) || !is_array($grafik[$dzien_tyg])) { $cel->modify('+1 day'); $target_day = (int)$cel->format('N'); $h_start = (isset($grafik[$target_day]) && is_array($grafik[$target_day])) ? (int)$grafik[$target_day]['start_h'] : 8; $m_start = (isset($grafik[$target_day]) && is_array($grafik[$target_day])) ? (int)$grafik[$target_day]['start_m'] : 0; $cel->setTime($h_start, $m_start, 0); } elseif ($teraz < $dzis_start) { $cel->setTime((int)$grafik[$dzien_tyg]['start_h'], (int)$grafik[$dzien_tyg]['start_m'], 0); } $znal = false; $bezpiecznik_petli = 0; while (!$znal && $bezpiecznik_petli < 15) { $bezpiecznik_petli++; $c_md = $cel->format('m-d'); $c_ymd = $cel->format('Y-m-d'); $c_sw = (in_array($c_md, $swieta_stale) || $c_md == $pon_w || $c_md == $boze_c || in_array($c_md, $bookly_holidays_stale) || in_array($c_ymd, $bookly_holidays_jednorazowe)); $target_day_idx = (int)$cel->format('N'); $pracuje_w_ten_dzien = (isset($grafik[$target_day_idx]) && is_array($grafik[$target_day_idx])); if ($pracuje_w_ten_dzien && !$c_sw) { if ($bezpiecznik_petli > 1) { $h_start = (int)$grafik[$target_day_idx]['start_h']; $m_start = (int)$grafik[$target_day_idx]['start_m']; $cel->setTime($h_start, $m_start, 0); } $znal = true; } else { $cel->modify('+1 day'); $next_day = (int)$cel->format('N'); $h_start = (isset($grafik[$next_day]) && is_array($grafik[$next_day])) ? (int)$grafik[$next_day]['start_h'] : 8; $m_start = (isset($grafik[$next_day]) && is_array($grafik[$next_day])) ? (int)$grafik[$next_day]['start_m'] : 0; $cel->setTime($h_start, $m_start, 0); } } $diff = $teraz->diff($cel); $l_godzin = ($diff->days * 24) + $diff->h; $l_minut = $diff->i; if ($l_godzin == 0) { $odliczanie = $l_minut . " min."; } else { $odliczanie = $l_godzin . " godz. " . $l_minut . " min."; } // POGODA $jutro = ['t'=>'--','w'=>0,'icon'=>'☀️','msg'=>'Brak danych','biomet'=>'KORZYSTNY','wilg'=>'--','cisnienie'=>'--','color'=>'#22c55e','status'=>'STABILNIE','porada'=>'Dobre warunki.']; $pogoda_oryginalna_desc = 'Pobieranie...'; $pogoda_teraz = [ 'temp' => 0, 'desc' => 'Pobieranie...', 'id' => 800, 'wind' => 0, 'hum' => 0, 'pressure' => '--', 'time' => $teraz->format('H:i'), 'color' => '#27ae60', 'bg' => '#f1fcf4', 'status' => 'STABILNIE', 'alert' => '', 'pulse' => false, 'opis' => '', 'prognoza' => '' ]; $teraz_realnie_pracujemy = ($czy_godziny && !$czy_przerwa); $cc = get_transient('krupa_current_weather_data'); if (empty($cc) || !is_array($cc)) { $cc_res = wp_remote_get("https://api.openweathermap.org/data/2.5/weather?lat=51.3556&lon=22.5694&appid={$api_key}&units=metric&lang=pl", ['timeout'=>5]); if (!is_wp_error($cc_res) && wp_remote_retrieve_response_code($cc_res) == 200) { $cc = json_decode(wp_remote_retrieve_body($cc_res), true); if (is_array($cc) && isset($cc['weather'])) { set_transient('krupa_current_weather_data', $cc, 5 * MINUTE_IN_SECONDS); } else { $cc = ['error' => true]; } } else { $cc = ['error' => true]; set_transient('krupa_current_weather_data', $cc, 2 * MINUTE_IN_SECONDS); } } $fj = get_transient('krupa_weather_transient_data'); if (empty($fj) || !is_array($fj)) { $f_res = wp_remote_get("https://api.openweathermap.org/data/2.5/forecast?lat=51.3556&lon=22.5694&appid={$api_key}&units=metric&lang=pl", ['timeout'=>5]); if (!is_wp_error($f_res) && wp_remote_retrieve_response_code($f_res) == 200) { $fj = json_decode(wp_remote_retrieve_body($f_res), true); if (is_array($fj) && isset($fj['list'])) { set_transient('krupa_weather_transient_data', $fj, 15 * MINUTE_IN_SECONDS); } else { $fj = ['error' => true]; } } else { $fj = ['error' => true]; set_transient('krupa_weather_transient_data', $fj, 2 * MINUTE_IN_SECONDS); } } $id_teraz = 800; $temp_teraz = 20; $wilg_teraz = 50; $wiatr_teraz = 10; if (is_array($cc) && isset($cc['weather'][0])) { $pogoda_oryginalna_desc = ucfirst($cc['weather'][0]['description']); $pogoda_teraz['desc'] = $pogoda_oryginalna_desc; $id_teraz = (int)$cc['weather'][0]['id']; $pogoda_teraz['id'] = $id_teraz; $temp_teraz = round($cc['main']['temp']); $pogoda_teraz['temp'] = $temp_teraz; $wiatr_teraz = isset($cc['wind']['speed']) ? round($cc['wind']['speed'] * 3.6) : 0; $pogoda_teraz['wind'] = $wiatr_teraz; $wilg_teraz = isset($cc['main']['humidity']) ? $cc['main']['humidity'] : 0; $pogoda_teraz['hum'] = $wilg_teraz; $pogoda_teraz['pressure'] = isset($cc['main']['pressure']) ? $cc['main']['pressure'] : '--'; } $id_za_chwile = 800; if (is_array($fj) && isset($fj['list'][0])) { $id_za_chwile = (int)$fj['list'][0]['weather'][0]['id']; } $pogoda_teraz['alert'] = $teraz_realnie_pracujemy ? '✅ Optymalna aura. Warunki sprzyjające pracom na zewnątrz.' : '✅ Stabilna i spokojna aura. Dobre warunki atmosferyczne.'; $pogoda_teraz['color'] = '#27ae60'; $pogoda_teraz['bg'] = '#f1fcf4'; $pogoda_teraz['status'] = 'STABILNIE'; $pogoda_teraz['pulse'] = false; if ($id_teraz >= 200 && $id_teraz < 300) { $pogoda_teraz['desc'] = "⛈️ " . $pogoda_oryginalna_desc; $pogoda_teraz['color'] = '#EF2020'; $pogoda_teraz['status'] = 'ALARM: BURZA'; $pogoda_teraz['pulse'] = true; $pogoda_teraz['alert'] = $teraz_realnie_pracujemy ? '⚠️ Wyładowania atmosferyczne! Prace wysokościowe są wstrzymane.' : '⛈️ Niebezpieczne wyładowania atmosferyczne oraz deszcz.'; $pogoda_teraz['bg'] = '#fff5f5'; } elseif (($id_za_chwile >= 200 && $id_za_chwile < 600) && ($id_teraz >= 800)) { $pogoda_teraz['desc'] = "⚠️ Zbliżają się opady"; $pogoda_teraz['color'] = '#EF2020'; $pogoda_teraz['status'] = 'OPADY ZA MOMENT'; $pogoda_teraz['pulse'] = true; $pogoda_teraz['alert'] = '⚠️ Radar live wykrywa zbliżający front deszczowy.'; $pogoda_teraz['bg'] = '#fff5f5'; } elseif ($id_teraz >= 500 && $id_teraz < 600) { $pogoda_teraz['desc'] = "🌧️ " . $pogoda_oryginalna_desc; $pogoda_teraz['color'] = '#ff9800'; $pogoda_teraz['status'] = 'OPADY DESZCZU'; $pogoda_teraz['alert'] = $teraz_realnie_pracujemy ? '🌧️ Występujące opady ograniczają bezpieczne działania na zewnątrz.' : '🌧️ Odnotowano opady deszczu.'; $pogoda_teraz['bg'] = '#fff9f2'; } elseif ($wiatr_teraz > 25) { $pogoda_teraz['color'] = '#EF2020'; $pogoda_teraz['status'] = 'SILNY WIATR'; $pogoda_teraz['pulse'] = true; $pogoda_teraz['alert'] = "⚠️ Silne porywy wiatru ({$wiatr_teraz} km/h). Bezpieczeństwo jest priorytetem."; $pogoda_teraz['bg'] = '#fff9f2'; } elseif ($id_teraz >= 600 && $id_teraz < 700) { $pogoda_teraz['desc'] = "❄️ " . $pogoda_oryginalna_desc; $pogoda_teraz['color'] = '#3182ce'; $pogoda_teraz['status'] = 'WARUNKI ZIMOWE'; $pogoda_teraz['bg'] = '#ebf8ff'; } $pogoda_teraz['opis'] = $pogoda_teraz['alert']; $pogoda_teraz['prognoza'] = "Brak zmian atmosferycznych w ciągu najbliższych godzin."; if (is_array($fj) && isset($fj['list'][1])) { $n_id = $fj['list'][1]['weather'][0]['id']; $n_desc = function_exists('mb_strtolower') ? mb_strtolower($fj['list'][1]['weather'][0]['description']) : strtolower($fj['list'][1]['weather'][0]['description']); $n_temp = round($fj['list'][1]['main']['temp']); $n_wind = round($fj['list'][1]['wind']['speed'] * 3.6); if ($n_id >= 200 && $n_id < 300) { $pogoda_teraz['prognoza'] = "⛈️ Uwaga: spodziewane burze i wyładowania."; } elseif ($n_id >= 500 && $n_id < 600) { $pogoda_teraz['prognoza'] = "🌧️ W ciągu 3h prognozowane opady ({$n_desc})."; } elseif ($n_wind > 25) { $pogoda_teraz['prognoza'] = "💨 Możliwy wzrost siły wiatru do {$n_wind} km/h."; } else { $pogoda_teraz['prognoza'] = "☁️ Przewidujemy stabilnie: {$n_desc}, ok. {$n_temp}°C."; } } $obj_jutro = (clone $teraz)->modify('+1 day'); $jutro_m_d = $obj_jutro->format('m-d'); $jutro_y_m_d = $obj_jutro->format('Y-m-d'); $jutro_dzien_tyg = (int)$obj_jutro->format('N'); $jutro_czy_swieto = (in_array($jutro_m_d, $swieta_stale) || $jutro_m_d == $pon_w || $jutro_m_d == $boze_c || in_array($jutro_m_d, $bookly_holidays_stale) || in_array($jutro_y_m_d, $bookly_holidays_jednorazowe)); $jutro_czy_pracuje = (isset($grafik[$jutro_dzien_tyg]) && is_array($grafik[$jutro_dzien_tyg]) && !$jutro_czy_swieto); if (is_array($fj) && isset($fj['list'][8])) { $item = $fj['list'][8]; $f_id = $item['weather'][0]['id']; $f_desc = function_exists('mb_strtolower') ? mb_strtolower($item['weather'][0]['description']) : strtolower($item['weather'][0]['description']); $f_t = round($item['main']['temp']); $f_w = round($item['wind']['speed'] * 3.6); $jutro['t'] = $f_t; $jutro['w'] = $f_w; $jutro['wilg'] = $item['main']['humidity']; $jutro['cisnienie'] = $item['main']['pressure']; if ($jutro_czy_pracuje) { $full_msg = "Jutro zapowiada się: {$f_desc} przy ok. {$f_t}°C. "; if ($f_w > 25 || $f_id < 600) { $full_msg .= "Realizacje zleceń będziemy wykonywać z ostrożnością."; $jutro['biomet'] = "NIEKORZYSTNY"; $jutro['color'] = "#ef4444"; $jutro['status'] = "UWAGA"; $jutro['icon'] = "🌧️"; $jutro['porada'] = "Wymagana ostrożność podczas montażu."; } else { $full_msg .= "Bardzo stabilne warunki. Prace będą przebiegać bez zakłóceń! 🚀"; $jutro['porada'] = "Dobre warunki do pracy na zewnątrz w terenie."; } } else { $full_msg = "Jutro oczekujemy aury typu: {$f_desc}, ok. {$f_t}°C. "; $jutro['porada'] = "Jak na dzień wolny od pracy możemy tylko życzyć miłego odpoczynku"; } $jutro['msg'] = $full_msg; } if (!$czy_godziny) { $pogoda_teraz['status'] = 'FIRMA NIECZYNNA'; $pogoda_teraz['color'] = '#1e5799'; $pogoda_teraz['bg'] = '#f0f7ff'; } $master_data = compact('status_reczny','opis_reczny','lokalizacja','usluga_bookly','czas_info','czy_godziny','jutro','pogoda_teraz','czy_swieto','odliczanie','czy_przerwa','typ_przerwy', 'l_godzin', 'l_minut', 'procent_wykonania'); return $master_data; } } if (!function_exists('krupa_v55_ajax_handler')) { function krupa_v55_ajax_handler() { // Agresywne wyczyszczenie bufora (blokuje "krzaczki", które psują JSON i wyłączają widgety) if (ob_get_length()) { ob_clean(); } $c = get_krupa_master_data(); $status_final = function_exists('krupa_get_current_effective_status') ? krupa_get_current_effective_status() : ''; $czy_urlop = ($status_final === 'urlop'); $tz = new DateTimeZone('Europe/Warsaw'); $teraz = new DateTime('now', $tz); $H = (int)$teraz->format('G'); $witamy = ($H >= 5 && $H < 18) ? "Dzień dobry" : (($H >= 18 && $H < 22) ? "Dobry wieczór" : "Miłej nocy"); $lokalizacja = isset($c['lokalizacja']) ? $c['lokalizacja'] : 'Baza'; $usluga = isset($c['usluga_bookly']) ? $c['usluga_bookly'] : 'Status: Brak zleceń'; $opis = isset($c['opis_reczny']) && !empty($c['opis_reczny']) ? $c['opis_reczny'] : $usluga; $miejsce = '📌 ' . $lokalizacja; $txt = $opis; $kolor = '#EF2020'; $ikona = (function_exists('mb_stripos') ? (mb_stripos($usluga, 'wifi') !== false) : (stripos($usluga, 'wifi') !== false)) ? '📶' : '📡'; $display_time = isset($c['czas_info']) ? $c['czas_info'] : ''; $odliczanie = isset($c['odliczanie']) ? $c['odliczanie'] : ''; $czy_swieto = isset($c['czy_swieto']) ? $c['czy_swieto'] : false; $czy_przerwa = isset($c['czy_przerwa']) ? $c['czy_przerwa'] : false; $czy_godziny = isset($c['czy_godziny']) ? $c['czy_godziny'] : false; if ($status_final === 'urlop') { $ikona = '🌴'; $miejsce = 'STATUS: URLOP'; $txt = 'Odpoczywamy. Zapraszamy wkrótce!'; $kolor = '#38b2ac'; $display_time = ''; } elseif ($czy_swieto) { $ikona = '🌴'; $miejsce = 'TERAZ MAMY WOLNE'; $txt = 'Wracamy za: ' . $odliczanie; $kolor = '#4A5568'; $display_time = ''; } elseif ($czy_przerwa) { $ikona = '🥪'; $miejsce = 'CHWILA PRZERWY'; $txt = isset($c['typ_przerwy']) ? $c['typ_przerwy'] : ''; $kolor = '#f59e0b'; $display_time = ''; } elseif (!$czy_godziny && !$czy_urlop) { $l_godzin = isset($c['l_godzin']) ? $c['l_godzin'] : 0; $l_minut = isset($c['l_minut']) ? $c['l_minut'] : 0; if ($l_godzin == 0) { $ikona = '⏳'; $miejsce = 'Jesteśmy: PRZED PRACĄ'; } else { $ikona = '🌙'; $miejsce = 'Jesteśmy: PO PRACY'; } if ($l_godzin == 0 && $l_minut <= 5) { $txt = '🏡 Ostatnie minuty przed pracą, startujemy za: ' . $odliczanie . ''; } else { $txt = ' Odpoczywamy, ładujemy akumulatorki, zaczniemy za: ' . $odliczanie . ''; } $kolor = '#4A5568'; $display_time = ''; } if ($usluga === 'Status: Brak zleceń' && !$czy_przerwa && $czy_godziny && !$czy_urlop && !$czy_swieto) { $ikona = '🟢'; $kolor = '#27ae60'; } wp_send_json([ 'witamy' => $witamy, 'pracujemy' => $czy_godziny && !$czy_przerwa && !$czy_urlop, 'jutro' => isset($c['jutro']) ? $c['jutro'] : [], 'pogoda' => isset($c['pogoda_teraz']) ? $c['pogoda_teraz'] : [], 'odliczanie'=> $odliczanie, 'miejsce' => $miejsce, 'txt' => $txt, 'czas' => $display_time, 'kolor' => $kolor, 'ikona' => $ikona, 'procent' => isset($c['procent_wykonania']) ? $c['procent_wykonania'] : 100, 'ver' => 'KRUPAs CORE V56.3.1 LIVE' ]); wp_die(); } } add_action('wp_ajax_get_krupa_status', 'krupa_v55_ajax_handler'); add_action('wp_ajax_nopriv_get_krupa_status', 'krupa_v55_ajax_handler');