<?php
session_start();
include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Storage\LocalFilesStorage;
use TelegramCliWrapper\Response;
use TelegramCliWrapper\Models\User;
use TelegramCliWrapper\Services\Weather\OpenWeatherApi;
use TelegramCliWrapper\Services\Media\MediaSelector;
use TelegramCliWrapper\Services\Joke\IcndbApi;
if (!isset($_SESSION['user'])) {
return Response::error("illegal request");
}
$userStorage = new LocalFilesStorage('user');
$user = $userStorage->getById($_SESSION['user']);
if (!$user) {
return Response::error("user does not exist");
}
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
$messages = $t->getHistory($user->phone, 1);
if (count($messages) < 1) {
return Response::error('no messages received');
}
$message = $messages[0];
if (intval($message->unread) != 1) {
return Response::error("no unread messages");
}
$text = strtolower(trim($message->text));
$response = "";
switch ($text) {
case "help":
$response = "These are the things you can ask me:\n" .
"help => this info\n" .
"remove me => remove my phone number from the system\n" .
"send me a photo => invite system to send a photo\n" .
"tell me a joke => I send to you something funny\n" .
"say me the time => I send to you the current time on my timezone\n" .
"weather => I send to you the weather where I live\n";
break;
case "weather":
$weather = new OpenWeatherApi();
$response = $weather->getWeatherInfoAsString();
break;
case "say me the time":
$response = sprintf("The current time here is %s", date("l, F jS Y h:ia"));
break;
case "tell me a joke":
$response = IcndbApi::getAJoke();
break;
case "remove me":
$t->msg($user->phone, "You have been deleted from my contact list");
$t->del_contact($user->phone);
$userStorage->remove($user->phone);
unset($_SESSION['user']);
header("location: index.php");
die;
break;
case "send me a photo":
$t->send_photo($user->phone, MediaSelector::getRandomPicture());
break;
default:
$response = "I'm so sorry.\nI'm not ready yet to understand you";
break;
}
$t->msg($user->phone, $response);
return Response::ok();
|