$this->addPost($postinfo, $url, $post)
public function addPost(...параметры...) {
// добавляем запись о репосте в бд
}
public function post(...параметры...) {
//постим запись
}
public function run(...параметры...) {
// в условии сразу смотрите на дату последнего репоста
$result = $dbh->prepare("SELECT COUNT(*) FROM `reposts` WHERE `id` = :id AND SELECT DATEDIFF (`date`, CURDATE()) > 7");
$result->execute([
':id' => $id
]);
$result = $result->fetchAll();
//если записей нет - постим
if (!count($result)) {
$response = $this->post(...параметры...);
if ($response->success !== 1) {
$link = "https://vk.com/wall" . $gid . "_" . $response->post_id;
$this->addPost(...параметры...);
echo '<div class="alert alert-success" role="alert">Репост сделан! Проверить его наличие Вы можете по этой ссылке: <a href="' . $link . '" target="_blank">' . $link . '</a></div>';
} else {
echo '<div class="alert alert-danger" role="alert">Ошибка! Сервер ВКонтакте вернул ответ с кодом ошибки: ' . $response->error->error_code . '</div>';
}
} else {
echo '<div class="alert alert-danger" role="alert">Сожалеем, но мы уже делали с Вами репост на этой неделе.</div>';
}
while($row = $qwe->fetch()) {
$wall = file_get_contents("https://api.vk.com/method/wall.get?v=5.4&filter=owner&count=1000&owner_id=-".$row['id']);
$wall = json_decode($wall);
$wall = $wall->response->items;
// Удаление элементов, которые не подходят под условие
$wall = array_filter($wall, function($entry) {
return ($entry->post_type == 'post' && $entry->is_pinned !== -1);
});
// Переиндексация массива, чтобы ключи шли по порядку
$wall = array_values($wall);
$i = mt_rand(1, count($wall));
$repost = file_get_contents("https://api.vk.com/method/wall.repost?v=5.4&object=wall-".$row['id']."_".$wall[$i]->id."&group_id=".$gid."&access_token=".$token);
$repost = json_decode($repost);
sleep(mt_rand(25, 45));
}
<?php
$token = '';
$wall = file_get_contents("http://api.vk.com/method/wall.get?v=5.7&filter=all&domain=achan&count=1000");
$postAmount = count($wall->response->items);
$counter = 1;
$currentTime = new DateTime("now");
foreach($wall->response->items as $currentItem)
{
$postDate = new DateTime(date("Y-m-d H:i:s", $currentItem->date));
$interval = $currentTime->diff($postDate);
if($interval->d >= 1)
{
echo $counter.". Нужно удалить\t".$postDate->format("Y-m-d H:i:s")."\n";
}
else
{
echo $counter.". Пока оставляем\t".$postDate->format("Y-m-d H:i:s")."\n";
}
$counter++;
}
?>
$i = mt_rand(0, count($array) - 1);
$j = mt_rand(0, count($array[$i]) - 1);
echo $array[$i][$j];