Example #1
0
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":
Example #2
0
 /**
  * @param UserInterface $user
  * @param MessageInterface $message
  * @return bool
  */
 public function sendNotification(UserInterface $user, MessageInterface $message)
 {
     $this->telegramCli->msg($user->getPhoneNumber()->getValue(), $message->getText());
     return true;
 }
Example #3
0
$phone = trim($_POST['phone']);
if (!preg_match("/^\\d{9,15}\$/", $phone)) {
    return Response::error('phone parameter does not seems a phone number');
}
$userStorage = new LocalFilesStorage('user');
$user = $userStorage->getById($phone);
if ($user) {
    return Response::error('phone exists already in this system');
}
$phoneRequested = isset($_SESSION['phone_requested']) ? json_decode($_SESSION['phone_requested'], true) : array();
if (isset($phoneRequested[$phone]) && intval(date("U")) < $phoneRequested[$phone]) {
    return Response::error('phone already requested, you must to wait 15 minutes');
}
$phoneRequested[$phone] = intval(date("U")) + 15 * 60 * 60;
$_SESSION['phone_requested'] = json_encode($phoneRequested);
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
$user = User::createUser($phone, $phone, "");
$t->addContact($user);
// send message with code in order to validate phone
$r = uniqid();
$user->code = substr($r, rand(1, strlen($r) - 6), 6);
$userStorage->save($user);
$msg = <<<EOD
Welcome to the telegram-cli-wrapper proof of concept
This is the code to access system, please keep it secret.
Code: {$user->code}
*Note: If this message was not solicited by you, please do not take in account.
EOD;
$t->msg($user->phone, $msg);
return Response::ok();
<?php

include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Models\User;
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
echo "These are my contacts" . PHP_EOL . User::getTitles() . PHP_EOL;
$contacts = $t->getContactList();
foreach ($contacts as $contact) {
    echo $contact . PHP_EOL;
}
$t->quit();
<?php

if ($argc < 3) {
    die("You have to invoke this program with addContact.php phone_number last_name first_name\n");
}
include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Models\Dialog;
$phone = $argv[1];
$peerSurname = $argv[2];
$peerName = $argv[3];
if (!preg_match("/^\\+\\d+/", $phone)) {
    die("Phone number must be: plus sign (+) country_code & number\n");
}
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
$t->add_contact($phone, $peerName, $peerSurname);
$t->quit();
Example #6
0
<?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;
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");
}
if (!isset($_POST['text'])) {
    return Response::error("text parameter missing");
}
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
$t->msg($user->phone, $_POST['text']);
return Response::ok();
Example #7
0
<?php

if (!isset($argv[1])) {
    die("You have to call this program with the peer you want to see his info\n");
}
include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Models\User;
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
$peer = trim($argv[1]);
echo "The info for '{$peer}' is " . PHP_EOL . User::getTitles() . PHP_EOL . $t->getUserInfo($peer) . PHP_EOL;
$t->quit();
Example #8
0
<?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;
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, 100);
$result = array();
foreach ($messages as $message) {
    $result[] = array('text' => nl2br($message->text), 'from' => $message->from->phone, 'to' => $message->to->phone, 'date' => date("y.m.d H:j:s", $message->date));
}
return Response::ok(array('messages' => $result));
Example #9
0
<?php

include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Models\User;
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
echo "These are my current dialogs" . PHP_EOL . User::getTitles() . PHP_EOL;
$currentDialogs = $t->getDialogList();
foreach ($currentDialogs as $currentDialog) {
    echo $currentDialog . PHP_EOL;
}
$t->quit();
Example #10
0
<?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;
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());
$user = $t->getUserInfo($user->phone);
$result = array('phone' => $user->phone, 'last_name' => $user->last_name, 'first_name' => $user->first_name, 'print_name' => $user->print_name, 'id' => $user->id, 'flags' => $user->flags);
return Response::ok(array('user' => $result));
Example #11
0
<?php

include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Models\User;
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
echo "this is me" . PHP_EOL . User::getTitles() . PHP_EOL . $t->whoAmI() . PHP_EOL;
$t->quit();
Example #12
0
<?php

if (!isset($argv[1])) {
    die("You have to call this program with the peer you want to see current messages\n");
}
include_once __DIR__ . '/../vendor/autoload.php';
use TelegramCliWrapper\TelegramCliWrapper;
use TelegramCliWrapper\TelegramCliHelper;
use TelegramCliWrapper\Models\Dialog;
$th = TelegramCliHelper::getInstance();
$t = new TelegramCliWrapper($th->getSocket(), $th->isDebug());
$peer = trim($argv[1]);
$n = isset($argv[2]) ? intval($argv[2]) : 5;
print "The last {$n} messages with '{$peer}' are " . PHP_EOL . Dialog::getTitles() . PHP_EOL;
$history = $t->getHistory($peer, $n);
foreach ($history as $historyItem) {
    print $historyItem . PHP_EOL;
}
$t->quit();