<?php
function getIpCountry($ip){
	$url = "http://ip-api.com/json/" . urlencode($ip) . "?fields=status,countryCode";
	$response = file_get_contents($url);
	
	if ($response === false) {
		return ''; // API ei vastannut
	}
	
	$data = json_decode($response, true);
	
	if (!isset($data['status']) || $data['status'] !== 'success') {
		return '';
	}
	
	return $data['countryCode'];
}

function isIpFromEurope($ip) {
		$url = "http://ip-api.com/json/" . urlencode($ip) . "?fields=status,countryCode";

		$response = file_get_contents($url);
		
		if ($response === false) {
			return true; // API ei vastannut
		}

		$data = json_decode($response, true);

		if (!isset($data['status']) || $data['status'] !== 'success') {
			return true;
		}

		// Euroopan maat (ISO country code)
		$europe = [
			"DK","EE","FI","DE","SE"
		];
		
		$kill = [
			"HK", "SG", "VN", "IN", "ID", "AM", "CN"
		];
		
		if (in_array($data['countryCode'], $kill, true)){
			file_put_contents("core/ban.dat", $ip . "\n", FILE_APPEND);
			http_response_code(403);
			exit;
		}

		if (in_array($data['countryCode'], $europe, true)){
			file_put_contents("core/whitelist.dat", $_SERVER['REMOTE_ADDR'] . "\n", FILE_APPEND);
		}
		return in_array($data['countryCode'], $europe, true);
}



//die("KAUPPA HUOLTOTILASSA, OLE KÄRSIVÄLLINEN / WEBSHOP UNDER CONSTRUCTION, BE PATIENT ");

if (strpos($_SERVER['REMOTE_ADDR'],'65.109.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'172.121.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'172.252.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'142.147.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'45.206.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'45.207.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'45.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'43.130') === 0 || strpos($_SERVER['REMOTE_ADDR'],'113.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'123.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'14.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'143.') === 0 || strpos($_SERVER['REMOTE_ADDR'],'162.24') === 0 || strpos($_SERVER['REMOTE_ADDR'],'63.181') === 0 || strpos($_SERVER['REMOTE_ADDR'],'144.31') === 0 || strpos($_SERVER['REMOTE_ADDR'],'206.189') === 0 || strpos($_SERVER['REMOTE_ADDR'],'216.75') === 0 || strpos($_SERVER['REMOTE_ADDR'],'207.18') === 0 || strpos($_SERVER['REMOTE_ADDR'],'142.93') === 0){
	http_response_code(403);
	echo "GOODBYE!";
	exit;
}


//REDIRECT_URL
if (isset($_SERVER['REDIRECT_URL'])){
	if (strpos($_SERVER['REDIRECT_URL'], "/other") === 0){
		http_response_code(403);
		echo "GOODBYE!";
		exit;
	}
}

if (isset($_SERVER['SCRIPT_URI'])){
	if (strpos($_SERVER['SCRIPT_URI'], "/other") === 0){
		http_response_code(403);
		echo "GOODBYE!";
		exit;
	}
}

if (isset($_SERVER['REDIRECT_URL'])){
	if (strpos($_SERVER['REDIRECT_URL'], "/(other") === 0){
		http_response_code(403);
		echo "GOODBYE!";
		exit;
	}
}

if (isset($_SERVER['SCRIPT_URI'])){
	if (strpos($_SERVER['SCRIPT_URI'], "/(other") === 0){
		http_response_code(403);
		echo "GOODBYE!";
		exit;
	}
}

if (count(explode("/", $_SERVER['REQUEST_URI'])) > 10){
	//file_put_contents("core/ban.dat", $_SERVER['REMOTE_ADDR'] . "\n", FILE_APPEND);
	http_response_code(403);
	echo "GOODBYE!";
	exit;
}


$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$allowedBots = ['Google', 'bingbot', 'adidxbot', 'Applebot', 'DuckDuckBot',
    'OAI-SearchBot', 'ChatGPT-User', 'PerplexityBot', 'Perplexity-User',
    'ClaudeBot', 'Claude-SearchBot', 'Claude-User', 'LinkedInBot',
    'meta-externalagent', 'SiteCheckerBotCrawler', 'Pinterestbot',
    'AhrefsBot', 'AhrefsSiteAudit'];
$isAllowedBot = false;
foreach ($allowedBots as $b) {
    if (stripos($ua, $b) !== false) { 
		$isAllowedBot = true; 
		break; 
	}
}
$uaLower = mb_strtolower($ua);
if ((strpos($uaLower, 'bot') !== false || strpos($uaLower, 'crawler') !== false || strpos($uaLower, 'python-requests') !== false) && !$isAllowedBot) {
	
	//file_put_contents("core/logs/goodbyebot.log", date("c") . " / " .  $_SERVER['HTTP_USER_AGENT'] . " / " . $_SERVER['SCRIPT_URI'] . " / " . $_SERVER['REMOTE_ADDR'] . "\n", FILE_APPEND);
	file_put_contents("core/ban.dat", $_SERVER['REMOTE_ADDR'] . "\n", FILE_APPEND);
	http_response_code(403);
	echo "GOODBYE";
	exit;
}

if (isset($_SERVER['SCRIPT_URI'])){
	if (strpos($_SERVER['SCRIPT_URI'], "/fi/") !== false){
		$url = str_replace("/fi/","/sv/",$_SERVER['SCRIPT_URI']);
		$url = str_replace("/kategoria/", "/kategori/", $url);
		$url = str_replace("/tuote/", "/produkt/", $url);
		
		
		header("Location: " . $url,true,301);
		exit;
	}
}


error_reporting(E_ERROR | E_PARSE);
ini_set("display_errors",1);

require ("core/settings.php");

/*
if (!isset($_GET['h'])){
	echo '<html><head><title>'.'direktimporter.se / tuontitukku.se'.'</title><link rel="stylesheet" href="/themes/teema/css/base.css" type="text/css" /><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /><meta name="robots" content="noindex"><meta name="googlebot" content="noindex"></head><body><center><div class="alert">Webbutiken är i serviceläge, vi uppdaterar mjukvaran. Vi ber om ursäkt för eventuella besvär.</div></center></body></html>';
	exit;
}
*/
$url = $_SERVER['REQUEST_SCHEME'] . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$parts = parse_url($url);

if (mb_strtolower($parts['host']) != DEFAULT_DOMAIN && mb_strtolower($parts['host']) != SECONDARY_DOMAIN){
	
	$url = str_replace($parts['host'],DEFAULT_DOMAIN,$url);
	
	
	header("Location: " . $url,true,301);
	exit;
}




$core = new core();


$core->Headers();
$core->Application();

if (isset($_GET['spareSearch'])){
	$_SESSION['spareSearch'] = (int)$_GET['spareSearch'];
}

$theme_contents = $core->ThemeContents();

if ((int)$_SESSION['debug'] == 1){
		error_reporting(E_ALL);
		ini_set("display_errors", 1);
}

include(THEME_FOLDER . 'index.php');

$core->ExitProgram();