<?php

/*
https://vk.com/dev/groups.isMember
https://vk.com/dev/friends.areFriends
https://vk.com/dev/likes.isLiked
*/

function add_award($task)
{
	global $pdo;
	
	include_once "../inc/notifications.php";
	
	$awards = array(
		'1' => 'Деньги',
		'2' => 'Скидка'
	);
	
	if( $task['award'] == 1 )
	{
		$STH = $pdo->prepare("UPDATE `users` SET `shilings`=`shilings`+:shilings WHERE `id`=:id LIMIT 1");
		$STH->execute(array(':shilings' => $task['award_count'], ':id' => $_SESSION['id']));
		send_noty($pdo, "Поздравляю, вы получили деньги {$task['award_count']}руб", $_SESSION['id'], 2);
	} else if( $task['award'] == 2 )
	{
		$STH = $pdo->prepare("UPDATE `users` SET `proc`=:proc WHERE `id`=:id LIMIT 1");
		$STH->execute(array(':proc' => $task['award_count'], ':id' => $_SESSION['id']));
		send_noty($pdo, "Поздравляю, вы получили скидку {$task['award_count']}%", $_SESSION['id'], 2);
	} else {
		exit (json_encode(array('status' => '2', 'data' => 'Такой награды не существует, обратитесь к администрации!')));
	}
	
	send_noty($pdo, "Пользователь {$_SESSION['login']}[{$_SESSION['id']}]<br>Функция {$task['file']}<br>Получил награду: ".$awards[$task['award']], 0, 2);
	service_log("Получил награду: ".$awards[$task['award']], $_SESSION['id'], $server->id, $pdo);
}

function vkgroup($taskid,$task) // vk api группы
{
	global $pdo;
	
	include_once "vkquery.php";
	
	$STH = $pdo->query("SELECT `vk` FROM `users` WHERE `id` = {$_SESSION[id]} LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$user = $STH->fetch();
	
	if( !preg_match('/id(\d+)/', $user->vk, $res ) )
	{
		exit (json_encode(array('status' => '2', 'data' => 'У вас не привязан аккаунт вк')));
	}
	
	$api = new vkquery( $task['strfield'], 5.103 );
	
	$isMember = $api->query('groups.isMember', [
		'group_id' => $task['intfield'],
		'user_id' => $res[1],
	]);
	
	if( $isMember === 1 )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Спасибо за подписку!', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вы не подписаны')));
}

function vkfriend($taskid,$task) // https://vkhost.github.io/
{
	global $pdo;
	
	include_once "vkquery.php";
	
	$STH = $pdo->query("SELECT `vk` FROM `users` WHERE `id` = {$_SESSION[id]} LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$user = $STH->fetch();
	
	if( !preg_match('/id(\d+)/', $user->vk, $res ) )
	{
		exit (json_encode(array('status' => '2', 'data' => 'У вас не привязан аккаунт вк')));
	}
	
	if( $task['intfield'] == $res[1] ) // свой ID
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Надеюсь на дальнейшую нашу дружбу', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	$api = new vkquery( $task['strfield'], 5.103 );
	
	$areFriends = $api->query('friends.areFriends', ['user_ids' => $res[1]]);
	
	if(isset($areFriends[0]['friend_status']))
	{
		if( $areFriends[0]['friend_status'] )
		{
			add_award($task);
			$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
			exit (json_encode(array('status' => '1', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
		}
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Надеюсь на дальнейшую нашу дружбу', 'data' => 'Вы не добавили/подписались')));
}

function chatter($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT count(`id`) as `msg` FROM `chat` WHERE `user_id` = {$_SESSION[id]} LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$count = $STH->fetch();
	if( $count->msg >= $task['intfield'] )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Поздравляю, вы достаточно общительная персона', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вам стоит пообщаться в чате')));
}

function friendly($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT count(`id`) as `friends` FROM `users__friends` WHERE ( `id_sender` = {$_SESSION[id]} OR `id_taker` = {$_SESSION[id]} ) AND `accept` = 1 LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$count = $STH->fetch();
	if( $count->friends >= $task['intfield'] )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Вы достаточно дружелюбный человек', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'У вас не достаточно друзей')));
}

function commentator($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT count(`id`) as `comments` FROM `news__comments` WHERE `user_id` = {$_SESSION[id]} LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$count = $STH->fetch();
	if( $count->comments >= $task['intfield'] )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Молодец, профи клавиатуры', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вы не набрали необходимое количество комментариев')));
}

function mecenat($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT SUM(`shilings`) as `money` FROM `money__actions` WHERE `author` = {$_SESSION[id]} AND `shilings` < 0 LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$count = $STH->fetch();
	if( $count->money <= -$task['intfield'] )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Ого, так много, ну спасибо!', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вы ещё не потратили необходимое количество средств')));
}

function forumgik($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT count(`id`) as `msg` FROM `forums__messages` WHERE `author` = {$_SESSION[id]} LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$count = $STH->fetch();
	if( $count->msg >= $task['intfield'] )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'На форуме намного лучше, не правда ли?', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вы не набрали необходимое количество сообщений')));
}

function thanks($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT count(`id`) as `thanks` FROM `thanks` WHERE `author` = {$_SESSION[id]} LIMIT 1");
	$STH->setFetchMode(PDO::FETCH_OBJ);
	$count = $STH->fetch();
	if( $count->thanks >= $task['intfield'] )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'Ну не стоило, так много благодарностей :)', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вы не набрали необходимое количество "Спасибо"')));
}

function donater($taskid,$task)
{
	global $pdo;
	$STH = $pdo->query("SELECT `id` FROM `money__actions` WHERE `author` = {$_SESSION[id]} AND `shilings` >= {$task['intfield']} LIMIT 1");
	if( $STH->fetch() )
	{
		add_award($task);
		$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
		exit (json_encode(array('status' => '1', 'data' => 'А слабо задонатить и 10 000 руб?', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Вы ещё не пополняли баланс на эту сумму')));
}

function csservgetcs($taskid,$task)
{
	global $pdo;
	$downloads = json_decode(file_get_contents("https://csserv.ru/gapi.php?type=ip_info&ip={$_SERVER['REMOTE_ADDR']}"));
	
	if( empty($downloads->error) )
	{
		foreach( $downloads as $download )
		{
			if( !empty($download->referal) && $download->num_order == $task['intfield'] && $download->link == $task['strfield'] )
			{
				add_award($task);
				$pdo->query("INSERT INTO `users__tasks` (`userid`, `taskid`) VALUES ({$_SESSION[id]}, {$taskid})");
				exit (json_encode(array('status' => '1', 'data' => 'Спасибо за скачивание', 'good' => '<div class="btn btn-outline-success">Выполнено</div>')));
			}
		}
	}
	
	exit (json_encode(array('status' => '2', 'data' => 'Увы, вы ещё не скачивали нашу сборку')));
}