Unverified Commit b552a0d3 authored by Armando Lüscher's avatar Armando Lüscher Committed by GitHub

Merge branch 'develop' into housekeeping_git_meta_and_tests

parents b1983411 ba25843d
......@@ -7,3 +7,6 @@ charset = utf-8
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.{yml, yaml}]
indent_size = 2
build:
nodes:
analysis:
tests:
override:
- php-scrutinizer-run
filter:
paths: [src/*]
paths:
- src/
dependency_paths:
- lib/
checks:
php:
remove_extra_empty_lines: true
remove_php_closing_tag: true
remove_trailing_whitespace: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
fix_php_opening_tag: true
fix_linefeed: true
fix_line_ending: true
fix_identation_4spaces: true
fix_doc_comments: true
php:
check_method_contracts:
verify_interface_like_constraints: true
verify_documented_constraints: true
verify_parent_constraints: true
fix_doc_comments: true
fix_identation_4spaces: true
fix_line_ending: true
fix_linefeed: true
fix_php_opening_tag: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
more_specific_types_in_doc_comments: true
no_goto: true
param_doc_comment_if_not_inferrable: true
parameter_doc_comments: true
remove_extra_empty_lines: true
return_doc_comment_if_not_inferrable: true
return_doc_comments: true
simplify_boolean_return: true
tools:
external_code_coverage:
timeout: 120
external_code_coverage:
timeout: 120
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
bootstrap="./tests/bootstrap.php"
backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
syntaxCheck="true"
timeoutForLargeTests="60"
timeoutForMediumTests="10"
timeoutForSmallTests="1"
verbose="false"
>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
bootstrap="./tests/bootstrap.php"
backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
syntaxCheck="true"
timeoutForLargeTests="60"
timeoutForMediumTests="10"
timeoutForSmallTests="1"
verbose="false"
>
<php>
<ini name="error_reporting" value="-1" />
<ini name="error_reporting" value="-1"/>
<const name="PHPUNIT_TESTSUITE" value="true"/>
<const name="PHPUNIT_DB_HOST" value="127.0.0.1"/>
<const name="PHPUNIT_DB_NAME" value="telegrambot"/>
......
......@@ -13,6 +13,8 @@ namespace Longman\TelegramBot\Commands\AdminCommands;
use Longman\TelegramBot\Commands\AdminCommand;
use Longman\TelegramBot\DB;
use Longman\TelegramBot\Entities\Chat;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
class ChatsCommand extends AdminCommand
......@@ -45,8 +47,8 @@ class ChatsCommand extends AdminCommand
/**
* Command execute method
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function execute()
{
......
......@@ -12,6 +12,7 @@ namespace Longman\TelegramBot\Commands\AdminCommands;
use Longman\TelegramBot\Commands\AdminCommand;
use Longman\TelegramBot\DB;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\TelegramLog;
......@@ -338,7 +339,8 @@ class CleanupCommand extends AdminCommand
/**
* Execution if MySQL is required but not available
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
* @throws TelegramException
*/
public function executeNoDb()
{
......@@ -357,8 +359,8 @@ class CleanupCommand extends AdminCommand
/**
* Command execute method
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function execute()
{
......
......@@ -12,6 +12,7 @@ namespace Longman\TelegramBot\Commands\AdminCommands;
use Longman\TelegramBot\Commands\AdminCommand;
use Longman\TelegramBot\DB;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
/**
......@@ -43,14 +44,14 @@ class DebugCommand extends AdminCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function execute()
{
$pdo = DB::getPdo();
$pdo = DB::getPdo();
$message = $this->getMessage();
$chat = $message->getChat();
$text = strtolower($message->getText(true));
$chat = $message->getChat();
$text = strtolower($message->getText(true));
$data = ['chat_id' => $chat->getId()];
......@@ -80,7 +81,7 @@ class DebugCommand extends AdminCommand
$debug_info[] = sprintf('*Maximum PHP script execution time:* `%d seconds`', ini_get('max_execution_time'));
$mysql_version = $pdo ? $pdo->query('SELECT VERSION() AS version')->fetchColumn() : null;
$debug_info[] = sprintf('*MySQL version:* `%s`', $mysql_version ?: 'disabled');
$debug_info[] = sprintf('*MySQL version:* `%s`', $mysql_version ?: 'disabled');
$debug_info[] = sprintf('*Operating System:* `%s`', php_uname());
......@@ -88,7 +89,7 @@ class DebugCommand extends AdminCommand
$debug_info[] = sprintf('*Web Server:* `%s`', $_SERVER['SERVER_SOFTWARE']);
}
if (function_exists('curl_init')) {
$curlversion = curl_version();
$curlversion = curl_version();
$debug_info[] = sprintf('*curl version:* `%1$s; %2$s`', $curlversion['version'], $curlversion['ssl_version']);
}
......@@ -105,8 +106,8 @@ class DebugCommand extends AdminCommand
}
$webhook_info_result_str = json_encode($webhook_info_result, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
$debug_info[] = $webhook_info_title;
$debug_info[] = sprintf(
$debug_info[] = $webhook_info_title;
$debug_info[] = sprintf(
'```' . PHP_EOL . '%s```',
$webhook_info_result_str
);
......@@ -116,7 +117,7 @@ class DebugCommand extends AdminCommand
}
$data['parse_mode'] = 'Markdown';
$data['text'] = implode(PHP_EOL, $debug_info);
$data['text'] = implode(PHP_EOL, $debug_info);
return Request::sendMessage($data);
}
......
......@@ -13,6 +13,7 @@ namespace Longman\TelegramBot\Commands\AdminCommands;
use Longman\TelegramBot\Commands\AdminCommand;
use Longman\TelegramBot\Entities\Message;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
/**
......@@ -48,8 +49,8 @@ class SendtoallCommand extends AdminCommand
/**
* Execute command
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function execute()
{
......
......@@ -15,6 +15,8 @@ use Longman\TelegramBot\Conversation;
use Longman\TelegramBot\Entities\Chat;
use Longman\TelegramBot\Entities\Keyboard;
use Longman\TelegramBot\Entities\Message;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
class SendtochannelCommand extends AdminCommand
......@@ -47,15 +49,15 @@ class SendtochannelCommand extends AdminCommand
/**
* Conversation Object
*
* @var \Longman\TelegramBot\Conversation
* @var Conversation
*/
protected $conversation;
/**
* Command execute method
*
* @return \Longman\TelegramBot\Entities\ServerResponse|mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse|mixed
* @throws TelegramException
*/
public function execute()
{
......@@ -272,11 +274,11 @@ class SendtochannelCommand extends AdminCommand
* @todo This method will be moved to a higher level maybe in AdminCommand or Command
* @todo Looking for a more significant name
*
* @param \Longman\TelegramBot\Entities\Message $message
* @param array $data
* @param Message $message
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
protected function sendBack(Message $message, array $data)
{
......@@ -311,12 +313,12 @@ class SendtochannelCommand extends AdminCommand
/**
* Publish a message to a channel and return success or failure message in markdown format
*
* @param \Longman\TelegramBot\Entities\Message $message
* @param string|int $channel_id
* @param string|null $caption
* @param Message $message
* @param string|int $channel_id
* @param string|null $caption
*
* @return string
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
protected function publish(Message $message, $channel_id, $caption = null)
{
......@@ -351,7 +353,7 @@ class SendtochannelCommand extends AdminCommand
* @todo Why send just to the first found channel?
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function executeNoDb()
{
......
......@@ -16,7 +16,9 @@ use Longman\TelegramBot\Commands\AdminCommand;
use Longman\TelegramBot\DB;
use Longman\TelegramBot\Entities\Chat;
use Longman\TelegramBot\Entities\PhotoSize;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\UserProfilePhotos;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
/**
......@@ -52,8 +54,8 @@ class WhoisCommand extends AdminCommand
/**
* Command execute method
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function execute()
{
......
......@@ -18,7 +18,9 @@ use Longman\TelegramBot\Entities\Message;
use Longman\TelegramBot\Entities\Payments\PreCheckoutQuery;
use Longman\TelegramBot\Entities\Payments\ShippingQuery;
use Longman\TelegramBot\Entities\Poll;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\Update;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\Telegram;
......@@ -43,14 +45,14 @@ abstract class Command
/**
* Telegram object
*
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
protected $telegram;
/**
* Update object
*
* @var \Longman\TelegramBot\Entities\Update
* @var Update
*/
protected $update;
......@@ -120,8 +122,8 @@ abstract class Command
/**
* Constructor
*
* @param \Longman\TelegramBot\Telegram $telegram
* @param \Longman\TelegramBot\Entities\Update $update
* @param Telegram $telegram
* @param Update $update
*/
public function __construct(Telegram $telegram, Update $update = null)
{
......@@ -133,9 +135,9 @@ abstract class Command
/**
* Set update object
*
* @param \Longman\TelegramBot\Entities\Update $update
* @param Update $update
*
* @return \Longman\TelegramBot\Commands\Command
* @return Command
*/
public function setUpdate(Update $update = null)
{
......@@ -149,8 +151,8 @@ abstract class Command
/**
* Pre-execute command
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function preExecute()
{
......@@ -182,16 +184,16 @@ abstract class Command
/**
* Execute command
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
abstract public function execute();
/**
* Execution if MySQL is required but not available
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function executeNoDb()
{
......@@ -210,7 +212,7 @@ abstract class Command
/**
* Get update object
*
* @return \Longman\TelegramBot\Entities\Update
* @return Update
*/
public function getUpdate()
{
......@@ -260,7 +262,7 @@ abstract class Command
/**
* Get telegram object
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function getTelegram()
{
......@@ -399,7 +401,8 @@ abstract class Command
* @param string $text
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
* @throws TelegramException
*/
public function replyToChat($text, array $data = [])
{
......@@ -419,7 +422,8 @@ abstract class Command
* @param string $text
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
* @throws TelegramException
*/
public function replyToUser($text, array $data = [])
{
......
......@@ -10,6 +10,7 @@
namespace Longman\TelegramBot\Commands;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Request;
abstract class SystemCommand extends Command
......@@ -20,7 +21,7 @@ abstract class SystemCommand extends Command
* Although system commands should just work and return a successful ServerResponse,
* each system command can override this method to add custom functionality.
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
*/
public function execute()
{
......
......@@ -42,7 +42,6 @@ class CallbackqueryCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class ChannelchatcreatedCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class ChannelpostCommand extends SystemCommand
* Execute command
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class ChoseninlineresultCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class DeletechatphotoCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class EditedchannelpostCommand extends SystemCommand
* Execute command
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class EditedmessageCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -11,7 +11,7 @@
namespace Longman\TelegramBot\Commands\SystemCommands;
use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\Entities\ServerResponse;
/**
* Generic command
......@@ -36,8 +36,7 @@ class GenericCommand extends SystemCommand
/**
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
*/
public function execute()
{
......
......@@ -10,9 +10,11 @@
namespace Longman\TelegramBot\Commands\SystemCommands;
use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Conversation;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\Commands\SystemCommand;
/**
* Generic message command
......@@ -42,7 +44,7 @@ class GenericmessageCommand extends SystemCommand
/**
* Execution if MySQL is required but not available
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
*/
public function executeNoDb()
{
......@@ -53,8 +55,8 @@ class GenericmessageCommand extends SystemCommand
/**
* Execute command
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class GroupchatcreatedCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -11,8 +11,6 @@
namespace Longman\TelegramBot\Commands\SystemCommands;
use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Entities\InlineQuery\InlineQueryResultArticle;
use Longman\TelegramBot\Entities\InputMessageContent\InputTextMessageContent;
use Longman\TelegramBot\Request;
/**
......@@ -39,7 +37,6 @@ class InlinequeryCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class LeftchatmemberCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class MigratefromchatidCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class MigratetochatidCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class NewchatmembersCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class NewchatphotoCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class NewchattitleCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class PinnedmessageCommand extends SystemCommand
* Execute command
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -11,7 +11,6 @@
namespace Longman\TelegramBot\Commands\SystemCommands;
use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Request;
/**
* Start command
......@@ -44,7 +43,6 @@ class StartCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -38,7 +38,6 @@ class SupergroupchatcreatedCommand extends SystemCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -10,6 +10,8 @@
namespace Longman\TelegramBot;
use Longman\TelegramBot\Exception\TelegramException;
/**
* Class Conversation
*
......@@ -67,7 +69,7 @@ class Conversation
* @param int $chat_id
* @param string $command
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function __construct($user_id, $chat_id, $command = null)
{
......@@ -100,7 +102,7 @@ class Conversation
* Load the conversation from the database
*
* @return bool
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
protected function load()
{
......@@ -140,7 +142,7 @@ class Conversation
* Start a new conversation if the current command doesn't have one yet
*
* @return bool
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
protected function start()
{
......@@ -164,6 +166,7 @@ class Conversation
* Currently the Conversation is not deleted but just set to 'stopped'
*
* @return bool
* @throws TelegramException
*/
public function stop()
{
......@@ -174,6 +177,7 @@ class Conversation
* Cancel the current conversation
*
* @return bool
* @throws TelegramException
*/
public function cancel()
{
......@@ -186,6 +190,7 @@ class Conversation
* @param string $status
*
* @return bool
* @throws TelegramException
*/
protected function updateStatus($status)
{
......@@ -209,6 +214,7 @@ class Conversation
* Store the array/variable in the database with json_encode() function
*
* @return bool
* @throws TelegramException
*/
public function update()
{
......
......@@ -1186,13 +1186,13 @@ class DB
* @param integer $chat_id
* @param string $inline_message_id
*
* @return array|bool Array containing TOTAL and CURRENT fields or false on invalid arguments
* @return array Array containing TOTAL and CURRENT fields or false on invalid arguments
* @throws TelegramException
*/
public static function getTelegramRequestCount($chat_id = null, $inline_message_id = null)
{
if (!self::isDbConnected()) {
return false;
return [];
}
try {
......
......@@ -33,8 +33,6 @@ abstract class Entity
*
* @param array $data
* @param string $bot_username
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct($data, $bot_username = '')
{
......@@ -96,8 +94,6 @@ abstract class Entity
/**
* Perform any special entity validation
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
protected function validate()
{
......
......@@ -47,7 +47,7 @@ class Game extends Entity
* This method overrides the default getPhoto method
* and returns a nice array of PhotoSize objects.
*
* @return null|\Longman\TelegramBot\Entities\PhotoSize[]
* @return null|PhotoSize[]
*/
public function getPhoto()
{
......@@ -62,7 +62,7 @@ class Game extends Entity
* This method overrides the default getTextEntities method
* and returns a nice array of MessageEntity objects.
*
* @return null|\Longman\TelegramBot\Entities\MessageEntity[]
* @return null|MessageEntity[]
*/
public function getTextEntities()
{
......
......@@ -62,8 +62,6 @@ class InlineQueryResultArticle extends InlineEntity implements InlineQueryResult
* InlineQueryResultArticle constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -56,8 +56,6 @@ class InlineQueryResultAudio extends InlineEntity implements InlineQueryResult
* InlineQueryResultAudio constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -47,8 +47,6 @@ class InlineQueryResultCachedAudio extends InlineEntity implements InlineQueryRe
* InlineQueryResultCachedAudio constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -53,8 +53,6 @@ class InlineQueryResultCachedDocument extends InlineEntity implements InlineQuer
* InlineQueryResultCachedDocument constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -50,8 +50,6 @@ class InlineQueryResultCachedGif extends InlineEntity implements InlineQueryResu
* InlineQueryResultCachedGif constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -50,8 +50,6 @@ class InlineQueryResultCachedMpeg4Gif extends InlineEntity implements InlineQuer
* InlineQueryResultCachedMpeg4Gif constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -53,8 +53,6 @@ class InlineQueryResultCachedPhoto extends InlineEntity implements InlineQueryRe
* InlineQueryResultCachedPhoto constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -44,8 +44,6 @@ class InlineQueryResultCachedSticker extends InlineEntity implements InlineQuery
* InlineQueryResultCachedSticker constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -53,8 +53,6 @@ class InlineQueryResultCachedVideo extends InlineEntity implements InlineQueryRe
* InlineQueryResultCachedVideo constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -50,8 +50,6 @@ class InlineQueryResultCachedVoice extends InlineEntity implements InlineQueryRe
* InlineQueryResultCachedVoice constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -61,8 +61,6 @@ class InlineQueryResultContact extends InlineEntity implements InlineQueryResult
* InlineQueryResultContact constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -65,8 +65,6 @@ class InlineQueryResultDocument extends InlineEntity implements InlineQueryResul
* InlineQueryResultDocument constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -40,8 +40,6 @@ class InlineQueryResultGame extends InlineEntity implements InlineQueryResult
* InlineQueryResultGame constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -61,8 +61,6 @@ class InlineQueryResultGif extends InlineEntity implements InlineQueryResult
* InlineQueryResultGif constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -62,8 +62,6 @@ class InlineQueryResultLocation extends InlineEntity implements InlineQueryResul
* InlineQueryResultLocation constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -61,8 +61,6 @@ class InlineQueryResultMpeg4Gif extends InlineEntity implements InlineQueryResul
* InlineQueryResultMpeg4Gif constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -62,8 +62,6 @@ class InlineQueryResultPhoto extends InlineEntity implements InlineQueryResult
* InlineQueryResultPhoto constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -67,8 +67,6 @@ class InlineQueryResultVenue extends InlineEntity implements InlineQueryResult
* InlineQueryResultVenue constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -68,8 +68,6 @@ class InlineQueryResultVideo extends InlineEntity implements InlineQueryResult
* InlineQueryResultVideo constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -53,8 +53,6 @@ class InlineQueryResultVoice extends InlineEntity implements InlineQueryResult
* InlineQueryResultVoice constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -4,5 +4,20 @@ namespace Longman\TelegramBot\Entities\InputMedia;
interface InputMedia
{
/**
* @return string Type of the result.
*/
public function getType();
/**
* @return string File to send.
*/
public function getMedia();
/**
* @param string $media File to send.
*
* @return string
*/
public function setMedia($media);
}
......@@ -52,8 +52,6 @@ class InputMediaAnimation extends Entity implements InputMedia
* InputMediaAnimation constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -52,8 +52,6 @@ class InputMediaAudio extends Entity implements InputMedia
* InputMediaAudio constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -43,8 +43,6 @@ class InputMediaDocument extends Entity implements InputMedia
* InputMediaDocument constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -40,8 +40,6 @@ class InputMediaPhoto extends Entity implements InputMedia
* InputMediaPhoto constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -55,8 +55,6 @@ class InputMediaVideo extends Entity implements InputMedia
* InputMediaVideo constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -54,7 +54,7 @@ class Keyboard extends Entity
/**
* Get the proper keyboard button class for this keyboard.
*
* @return KeyboardButton|InlineKeyboardButton
* @return string
*/
public function getKeyboardButtonClass()
{
......@@ -154,9 +154,9 @@ class Keyboard extends Entity
/**
* Parse a given button to the correct KeyboardButton object type.
*
* @param array|string|\Longman\TelegramBot\Entities\KeyboardButton $button
* @param array|string|KeyboardButton $button
*
* @return \Longman\TelegramBot\Entities\KeyboardButton|null
* @return KeyboardButton|null
*/
protected function parseButton($button)
{
......@@ -166,7 +166,7 @@ class Keyboard extends Entity
return $button;
}
if (!$this->isInlineKeyboard() || $button_class::couldBe($button)) {
if (!$this->isInlineKeyboard() || call_user_func([$button_class, 'couldBe'], $button)) {
return new $button_class($button);
}
......@@ -179,7 +179,7 @@ class Keyboard extends Entity
protected function validate()
{
$keyboard_type = $this->getKeyboardType();
$keyboard = $this->getProperty($keyboard_type);
$keyboard = $this->getProperty($keyboard_type);
if ($keyboard !== null) {
if (!is_array($keyboard)) {
......@@ -201,8 +201,7 @@ class Keyboard extends Entity
*
* @param array $data
*
* @return \Longman\TelegramBot\Entities\Keyboard
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return Keyboard
*/
public static function remove(array $data = [])
{
......@@ -216,8 +215,7 @@ class Keyboard extends Entity
*
* @param array $data
*
* @return \Longman\TelegramBot\Entities\Keyboard
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return Keyboard
*/
public static function forceReply(array $data = [])
{
......
......@@ -104,8 +104,6 @@ class Message extends Entity
*
* @param array $data
* @param string $bot_username
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data, $bot_username = '')
{
......@@ -264,7 +262,6 @@ class Message extends Entity
* Bot added in chat
*
* @return bool
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function botAddedInChat()
{
......
......@@ -11,6 +11,7 @@
namespace Longman\TelegramBot\Entities\Payments;
use Longman\TelegramBot\Entities\Entity;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\User;
use Longman\TelegramBot\Request;
......@@ -48,7 +49,7 @@ class PreCheckoutQuery extends Entity
* @param bool $ok
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
*/
public function answer($ok, array $data = [])
{
......
......@@ -11,6 +11,7 @@
namespace Longman\TelegramBot\Entities\Payments;
use Longman\TelegramBot\Entities\Entity;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\User;
use Longman\TelegramBot\Request;
......@@ -45,7 +46,7 @@ class ShippingQuery extends Entity
* @param bool $ok
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
*/
public function answer($ok, array $data = [])
{
......
......@@ -22,8 +22,6 @@ class ReplyToMessage extends Message
*
* @param array $data
* @param string $bot_username
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data, $bot_username = '')
{
......
......@@ -30,8 +30,6 @@ class ServerResponse extends Entity
*
* @param array $data
* @param string $bot_username
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data, $bot_username)
{
......@@ -105,7 +103,7 @@ class ServerResponse extends Entity
* @param array $result
* @param string $bot_username
*
* @return \Longman\TelegramBot\Entities\Chat|\Longman\TelegramBot\Entities\ChatMember|\Longman\TelegramBot\Entities\File|\Longman\TelegramBot\Entities\Message|\Longman\TelegramBot\Entities\User|\Longman\TelegramBot\Entities\UserProfilePhotos|\Longman\TelegramBot\Entities\WebhookInfo
* @return Chat|ChatMember|File|Message|User|UserProfilePhotos|WebhookInfo
*/
private function createResultObject(array $result, $bot_username)
{
......@@ -135,7 +133,7 @@ class ServerResponse extends Entity
* @param array $result
* @param string $bot_username
*
* @return \Longman\TelegramBot\Entities\ChatMember[]|\Longman\TelegramBot\Entities\Games\GameHighScore[]|\Longman\TelegramBot\Entities\Message[]|\Longman\TelegramBot\Entities\Update[]
* @return ChatMember[]|GameHighScore[]|Message[]|Update[]
*/
private function createResultObjects(array $result, $bot_username)
{
......
......@@ -31,8 +31,6 @@ class PassportElementErrorDataField extends Entity implements PassportElementErr
* PassportElementErrorDataField constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorFile extends Entity implements PassportElementError
* PassportElementErrorFile constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorFiles extends Entity implements PassportElementError
* PassportElementErrorFiles constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorFrontSide extends Entity implements PassportElementErr
* PassportElementErrorFrontSide constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorReverseSide extends Entity implements PassportElementE
* PassportElementErrorReverseSide constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorSelfie extends Entity implements PassportElementError
* PassportElementErrorSelfie constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorTranslationFile extends Entity implements PassportElem
* PassportElementErrorTranslationFile constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorTranslationFiles extends Entity implements PassportEle
* PassportElementErrorTranslationFiles constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -30,8 +30,6 @@ class PassportElementErrorUnspecified extends Entity implements PassportElementE
* PassportElementErrorUnspecified constructor
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function __construct(array $data = [])
{
......
......@@ -82,10 +82,7 @@ class Update extends Entity
/**
* Get update content
*
* @return \Longman\TelegramBot\Entities\CallbackQuery
* |\Longman\TelegramBot\Entities\ChosenInlineResult
* |\Longman\TelegramBot\Entities\InlineQuery
* |\Longman\TelegramBot\Entities\Message
* @return CallbackQuery|ChosenInlineResult|InlineQuery|Message
*/
public function getUpdateContent()
{
......
......@@ -34,7 +34,7 @@ class UserProfilePhotos extends Entity
*
* This method overrides the default getPhotos method and returns a nice array
*
* @return PhotoSize[]
* @return PhotoSize[][]
*/
public function getPhotos()
{
......@@ -42,11 +42,9 @@ class UserProfilePhotos extends Entity
if ($these_photos = $this->getProperty('photos')) {
foreach ($these_photos as $photos) {
$new_photos = [];
foreach ($photos as $photo) {
$new_photos[] = new PhotoSize($photo);
}
$all_photos[] = $new_photos;
$all_photos[] = array_map(function ($photo) {
return new PhotoSize($photo);
}, $photos);
}
}
......
......@@ -91,7 +91,7 @@ class Request
/**
* Telegram object
*
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
private static $telegram;
......@@ -105,7 +105,7 @@ class Request
/**
* Guzzle Client object
*
* @var \GuzzleHttp\Client
* @var Client
*/
private static $client;
......@@ -253,7 +253,7 @@ class Request
/**
* Initialize
*
* @param \Longman\TelegramBot\Telegram $telegram
* @param Telegram $telegram
*
* @throws TelegramException
*/
......@@ -287,7 +287,7 @@ class Request
* Set input from custom input or stdin and return it
*
* @return string
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public static function getInput()
{
......@@ -377,7 +377,7 @@ class Request
}
// Reformat data array in multipart way if it contains a resource
$has_resource |= (is_resource($item) || $item instanceof Stream);
$has_resource = $has_resource || is_resource($item) || $item instanceof Stream;
$multipart[] = ['name' => $key, 'contents' => $item];
}
......@@ -421,6 +421,7 @@ class Request
* @param array $multipart
*
* @return mixed
* @throws TelegramException
*/
private static function mediaInputHelper($item, &$has_resource, array &$multipart)
{
......@@ -472,7 +473,7 @@ class Request
* @param array $data Data to attach to the execution
*
* @return string Result of the HTTP Request
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public static function execute($action, array $data = [])
{
......@@ -509,10 +510,10 @@ class Request
/**
* Download file
*
* @param \Longman\TelegramBot\Entities\File $file
* @param File $file
*
* @return boolean
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public static function downloadFile(File $file)
{
......@@ -540,7 +541,7 @@ class Request
return filesize($file_path) > 0;
} catch (RequestException $e) {
return ($e->getResponse()) ? (string) $e->getResponse()->getBody() : '';
return false;
} finally {
//Logging verbose debug output
TelegramLog::endDebugLogTempStream('Verbose HTTP File Download Request output:' . PHP_EOL . '%s' . PHP_EOL);
......@@ -553,7 +554,7 @@ class Request
* @param string $file
*
* @return resource
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public static function encodeFile($file)
{
......@@ -574,8 +575,8 @@ class Request
* @param string $action
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public static function send($action, array $data = [])
{
......@@ -643,7 +644,7 @@ class Request
*
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
private static function ensureNonEmptyData(array $data)
{
......@@ -657,7 +658,7 @@ class Request
*
* @param string $action
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
private static function ensureValidAction($action)
{
......@@ -673,8 +674,8 @@ class Request
*
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public static function sendMessage(array $data)
{
......@@ -698,8 +699,7 @@ class Request
* @param string $action
* @param array $data
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
*/
public static function __callStatic($action, array $data)
{
......@@ -716,8 +716,7 @@ class Request
* No request to telegram are sent, this function is used in commands that
* don't need to fire a message after execution
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
*/
public static function emptyResponse()
{
......@@ -760,7 +759,7 @@ class Request
* @param boolean $enable
* @param array $options
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public static function setLimiter($enable = true, array $options = [])
{
......@@ -789,7 +788,7 @@ class Request
* @param string $action
* @param array $data
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
private static function limitTelegramRequests($action, array $data = [])
{
......@@ -830,7 +829,7 @@ class Request
$chat_id = isset($data['chat_id']) ? $data['chat_id'] : null;
$inline_message_id = isset($data['inline_message_id']) ? $data['inline_message_id'] : null;
if (($chat_id || $inline_message_id) && in_array($action, $limited_methods)) {
if (($chat_id || $inline_message_id) && in_array($action, $limited_methods, true)) {
$timeout = 60;
while (true) {
......@@ -838,18 +837,23 @@ class Request
throw new TelegramException('Timed out while waiting for a request spot!');
}
$requests = DB::getTelegramRequestCount($chat_id, $inline_message_id);
if (!($requests = DB::getTelegramRequestCount($chat_id, $inline_message_id))) {
break;
}
// Make sure we're handling integers here.
$requests = array_map('intval', $requests);
$chat_per_second = ($requests['LIMIT_PER_SEC'] == 0); // No more than one message per second inside a particular chat
$global_per_second = ($requests['LIMIT_PER_SEC_ALL'] < 30); // No more than 30 messages per second to different chats
$groups_per_minute = (((is_numeric($chat_id) && $chat_id > 0) || !is_null($inline_message_id)) || ((!is_numeric($chat_id) || $chat_id < 0) && $requests['LIMIT_PER_MINUTE'] < 20)); // No more than 20 messages per minute in groups and channels
$chat_per_second = ($requests['LIMIT_PER_SEC'] === 0); // No more than one message per second inside a particular chat
$global_per_second = ($requests['LIMIT_PER_SEC_ALL'] < 30); // No more than 30 messages per second to different chats
$groups_per_minute = (((is_numeric($chat_id) && $chat_id > 0) || $inline_message_id !== null) || ((!is_numeric($chat_id) || $chat_id < 0) && $requests['LIMIT_PER_MINUTE'] < 20)); // No more than 20 messages per minute in groups and channels
if ($chat_per_second && $global_per_second && $groups_per_minute) {
break;
}
$timeout--;
usleep(self::$limiter_interval * 1000000);
usleep((int) (self::$limiter_interval * 1000000));
}
DB::insertTelegramRequest($action, $data);
......
......@@ -70,7 +70,7 @@ class Telegram
/**
* Current Update object
*
* @var \Longman\TelegramBot\Entities\Update
* @var Update
*/
protected $update;
......@@ -98,7 +98,7 @@ class Telegram
/**
* PDO object
*
* @var \PDO
* @var PDO
*/
protected $pdo;
......@@ -119,7 +119,7 @@ class Telegram
/**
* ServerResponse of the last Command execution
*
* @var \Longman\TelegramBot\Entities\ServerResponse
* @var ServerResponse
*/
protected $last_command_response;
......@@ -151,7 +151,7 @@ class Telegram
* @param string $api_key
* @param string $bot_username
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function __construct($api_key, $bot_username = '')
{
......@@ -182,8 +182,8 @@ class Telegram
* @param string $table_prefix
* @param string $encoding
*
* @return \Longman\TelegramBot\Telegram
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return Telegram
* @throws TelegramException
*/
public function enableMySql(array $credential, $table_prefix = null, $encoding = 'utf8mb4')
{
......@@ -200,8 +200,8 @@ class Telegram
* @param PDO $external_pdo_connection PDO database object
* @param string $table_prefix
*
* @return \Longman\TelegramBot\Telegram
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return Telegram
* @throws TelegramException
*/
public function enableExternalMySql($external_pdo_connection, $table_prefix = null)
{
......@@ -216,7 +216,7 @@ class Telegram
* Get commands list
*
* @return array $commands
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function getCommandsList()
{
......@@ -261,7 +261,7 @@ class Telegram
*
* @param string $command
*
* @return \Longman\TelegramBot\Commands\Command|null
* @return Command|null
*/
public function getCommandObject($command)
{
......@@ -284,7 +284,7 @@ class Telegram
*
* @param string $input (json format)
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function setCustomInput($input)
{
......@@ -306,7 +306,7 @@ class Telegram
/**
* Get the ServerResponse of the last Command execution
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @return ServerResponse
*/
public function getLastCommandResponse()
{
......@@ -319,8 +319,8 @@ class Telegram
* @param int|null $limit
* @param int|null $timeout
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function handleGetUpdates($limit = null, $timeout = null)
{
......@@ -344,9 +344,8 @@ class Telegram
if ($custom_input = $this->getCustomInput()) {
$response = new ServerResponse(json_decode($custom_input, true), $this->bot_username);
} else {
if (DB::isDbConnected()) {
if (DB::isDbConnected() && $last_update = DB::selectTelegramUpdate(1)) {
//Get last update id from the database
$last_update = DB::selectTelegramUpdate(1);
$last_update = reset($last_update);
$this->last_update_id = isset($last_update['id']) ? $last_update['id'] : null;
......@@ -394,7 +393,7 @@ class Telegram
*
* @return bool
*
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function handle()
{
......@@ -435,14 +434,14 @@ class Telegram
/**
* Process bot Update request
*
* @param \Longman\TelegramBot\Entities\Update $update
* @param Update $update
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function processUpdate(Update $update)
{
$this->update = $update;
$this->update = $update;
$this->last_update_id = $update->getUpdateId();
//Load admin commands
......@@ -493,7 +492,7 @@ class Telegram
* @param string $command
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function executeCommand($command)
{
......@@ -534,7 +533,7 @@ class Telegram
*
* @param integer $admin_id Single admin id
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function enableAdmin($admin_id)
{
......@@ -552,7 +551,7 @@ class Telegram
*
* @param array $admin_ids List of admin ids
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function enableAdmins(array $admin_ids)
{
......@@ -627,7 +626,7 @@ class Telegram
* @param string $path Custom commands path to add
* @param bool $before If the path should be prepended or appended to the list
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function addCommandsPath($path, $before = true)
{
......@@ -650,7 +649,7 @@ class Telegram
* @param array $paths Custom commands paths to add
* @param bool $before If the paths should be prepended or appended to the list
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function addCommandsPaths(array $paths, $before = true)
{
......@@ -676,7 +675,7 @@ class Telegram
*
* @param string $path Custom upload path
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function setUploadPath($path)
{
......@@ -700,7 +699,7 @@ class Telegram
*
* @param string $path Custom download path
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function setDownloadPath($path)
{
......@@ -729,7 +728,7 @@ class Telegram
* @param string $command
* @param array $config
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
*/
public function setCommandConfig($command, array $config)
{
......@@ -796,8 +795,8 @@ class Telegram
* @param string $url
* @param array $data Optional parameters.
*
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
* @return ServerResponse
* @throws TelegramException
*/
public function setWebhook($url, array $data = [])
{
......@@ -832,7 +831,7 @@ class Telegram
* Delete any assigned webhook
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
* @throws TelegramException
*/
public function deleteWebhook()
{
......@@ -877,9 +876,10 @@ class Telegram
/**
* Enable requests limiter
*
* @param array $options
* @param array $options
*
* @return \Longman\TelegramBot\Telegram
* @return Telegram
* @throws TelegramException
*/
public function enableLimiter(array $options = [])
{
......@@ -901,7 +901,7 @@ class Telegram
throw new TelegramException('No command(s) provided!');
}
$this->run_commands = true;
$this->run_commands = true;
$result = Request::getMe();
......
......@@ -20,14 +20,14 @@ class TelegramLog
/**
* Monolog instance
*
* @var \Monolog\Logger
* @var Logger
*/
protected static $monolog;
/**
* Monolog instance for update
*
* @var \Monolog\Logger
* @var Logger
*/
protected static $monolog_update;
......@@ -62,9 +62,9 @@ class TelegramLog
/**
* Initialize Monolog Logger instance, optionally passing an existing one
*
* @param \Monolog\Logger
* @param Logger
*
* @return \Monolog\Logger
* @return Logger
*/
public static function initialize(Logger $external_monolog = null)
{
......@@ -93,8 +93,8 @@ class TelegramLog
*
* @param string $path
*
* @return \Monolog\Logger
* @throws \Longman\TelegramBot\Exception\TelegramLogException
* @return Logger
* @throws TelegramLogException
* @throws \InvalidArgumentException
* @throws \Exception
*/
......@@ -117,8 +117,8 @@ class TelegramLog
*
* @param string $path
*
* @return \Monolog\Logger
* @throws \Longman\TelegramBot\Exception\TelegramLogException
* @return Logger
* @throws TelegramLogException
* @throws \InvalidArgumentException
* @throws \Exception
*/
......@@ -147,7 +147,9 @@ class TelegramLog
if (!self::isDebugLogActive()) {
return false;
}
self::$debug_log_temp_stream_handle = fopen('php://temp', 'w+b');
if ($temp_stream_handle = fopen('php://temp', 'wb+')) {
self::$debug_log_temp_stream_handle = $temp_stream_handle;
}
}
return self::$debug_log_temp_stream_handle;
......@@ -173,8 +175,8 @@ class TelegramLog
*
* @param string $path
*
* @return \Monolog\Logger
* @throws \Longman\TelegramBot\Exception\TelegramLogException
* @return Logger
* @throws TelegramLogException
* @throws \InvalidArgumentException
* @throws \Exception
*/
......
......@@ -10,6 +10,7 @@
namespace Longman\TelegramBot\Tests\Unit\Commands;
use Longman\TelegramBot\Commands\Command;
use Longman\TelegramBot\Telegram;
use Longman\TelegramBot\Tests\Unit\TestCase;
use Longman\TelegramBot\Tests\Unit\TestHelpers;
......@@ -26,25 +27,25 @@ class CommandTest extends TestCase
/**
* @var string
*/
private $command_namespace = 'Longman\TelegramBot\Commands\Command';
private $command_namespace = Command::class;
/**
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
private $telegram;
/**
* @var \Longman\TelegramBot\Commands\Command
* @var Command
*/
private $command_stub;
/**
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
private $telegram_with_config;
/**
* @var \Longman\TelegramBot\Commands\Command
* @var Command
*/
private $command_stub_with_config;
......
......@@ -10,6 +10,7 @@
namespace Longman\TelegramBot\Tests\Unit\Commands;
use Longman\TelegramBot\Commands\Command;
use Longman\TelegramBot\Telegram;
use Longman\TelegramBot\Tests\Unit\TestCase;
......@@ -23,12 +24,12 @@ use Longman\TelegramBot\Tests\Unit\TestCase;
class CommandTestCase extends TestCase
{
/**
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
protected $telegram;
/**
* @var \Longman\TelegramBot\Commands\Command
* @var Command
*/
protected $command;
......
......@@ -47,7 +47,6 @@ class HiddenCommand extends UserCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -47,7 +47,6 @@ class VisibleCommand extends UserCommand
* Command execute method
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
......
......@@ -23,7 +23,7 @@ use Longman\TelegramBot\Telegram;
class ConversationTest extends TestCase
{
/**
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
private $telegram;
......@@ -53,7 +53,7 @@ class ConversationTest extends TestCase
public function testConversationThatExistsPropertiesSetCorrectly()
{
$info = TestHelpers::startFakeConversation();
$info = TestHelpers::startFakeConversation();
$conversation = new Conversation($info['user_id'], $info['chat_id'], 'command');
$this->assertAttributeEquals($info['user_id'], 'user_id', $conversation);
$this->assertAttributeEquals($info['chat_id'], 'chat_id', $conversation);
......@@ -85,7 +85,7 @@ class ConversationTest extends TestCase
public function testNewConversationThatWillExistWithCommand()
{
$info = TestHelpers::startFakeConversation();
$info = TestHelpers::startFakeConversation();
$conversation = new Conversation($info['user_id'], $info['chat_id'], 'command');
$this->assertTrue($conversation->exists());
$this->assertEquals('command', $conversation->getCommand());
......@@ -93,7 +93,7 @@ class ConversationTest extends TestCase
public function testStopConversation()
{
$info = TestHelpers::startFakeConversation();
$info = TestHelpers::startFakeConversation();
$conversation = new Conversation($info['user_id'], $info['chat_id'], 'command');
$this->assertTrue($conversation->exists());
$conversation->stop();
......@@ -104,7 +104,7 @@ class ConversationTest extends TestCase
public function testCancelConversation()
{
$info = TestHelpers::startFakeConversation();
$info = TestHelpers::startFakeConversation();
$conversation = new Conversation($info['user_id'], $info['chat_id'], 'command');
$this->assertTrue($conversation->exists());
$conversation->cancel();
......@@ -115,8 +115,8 @@ class ConversationTest extends TestCase
public function testUpdateConversationNotes()
{
$info = TestHelpers::startFakeConversation();
$conversation = new Conversation($info['user_id'], $info['chat_id'], 'command');
$info = TestHelpers::startFakeConversation();
$conversation = new Conversation($info['user_id'], $info['chat_id'], 'command');
$conversation->notes = 'newnote';
$conversation->update();
......
......@@ -34,7 +34,7 @@ class AudioTest extends TestCase
public function testInstance()
{
$audio = new Audio($this->record);
self::assertInstanceOf('Longman\TelegramBot\Entities\Audio', $audio);
self::assertInstanceOf(Audio::class, $audio);
}
public function testGetProperties()
......
......@@ -38,7 +38,7 @@ class FileTest extends TestCase
public function testBaseStageLocation()
{
$file = new File($this->data);
$this->assertInstanceOf('Longman\TelegramBot\Entities\File', $file);
$this->assertInstanceOf(File::class, $file);
}
public function testGetFileId()
......
......@@ -34,7 +34,7 @@ class LocationTest extends TestCase
public function testBaseStageLocation()
{
$location = new Location($this->coordinates);
$this->assertInstanceOf('Longman\TelegramBot\Entities\Location', $location);
$this->assertInstanceOf(Location::class, $location);
}
public function testGetLongitude()
......
......@@ -12,8 +12,14 @@
namespace Longman\TelegramBot\Tests\Unit;
use Longman\TelegramBot\Entities\File;
use Longman\TelegramBot\Entities\Message;
use Longman\TelegramBot\Entities\PhotoSize;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\Sticker;
use Longman\TelegramBot\Entities\StickerSet;
use Longman\TelegramBot\Entities\Update;
use Longman\TelegramBot\Entities\UserProfilePhotos;
use Longman\TelegramBot\Request;
/**
......@@ -54,7 +60,7 @@ class ServerResponseTest extends TestCase
self::assertTrue($server->isOk());
self::assertNull($server->getErrorCode());
self::assertNull($server->getDescription());
self::assertInstanceOf('\Longman\TelegramBot\Entities\Message', $server_result);
self::assertInstanceOf(Message::class, $server_result);
//Message
self::assertEquals('1234', $server_result->getMessageId());
......@@ -181,7 +187,7 @@ class ServerResponseTest extends TestCase
$server = new ServerResponse(json_decode($result, true), 'testbot');
self::assertCount(4, $server->getResult());
self::assertInstanceOf('\Longman\TelegramBot\Entities\Update', $server->getResult()[0]);
self::assertInstanceOf(Update::class, $server->getResult()[0]);
}
public function getUpdatesEmpty()
......@@ -239,8 +245,8 @@ class ServerResponseTest extends TestCase
//Photo size count
self::assertCount(3, $photos[0]);
self::assertInstanceOf('\Longman\TelegramBot\Entities\UserProfilePhotos', $server_result);
self::assertInstanceOf('\Longman\TelegramBot\Entities\PhotoSize', $photos[0][0]);
self::assertInstanceOf(UserProfilePhotos::class, $server_result);
self::assertInstanceOf(PhotoSize::class, $photos[0][0]);
}
public function getFile()
......@@ -261,7 +267,7 @@ class ServerResponseTest extends TestCase
$result = $this->getFile();
$server = new ServerResponse(json_decode($result, true), 'testbot');
self::assertInstanceOf('\Longman\TelegramBot\Entities\File', $server->getResult());
self::assertInstanceOf(File::class, $server->getResult());
}
public function testSetGeneralTestFakeResponse()
......@@ -287,7 +293,7 @@ class ServerResponseTest extends TestCase
self::assertTrue($server->isOk());
self::assertNull($server->getErrorCode());
self::assertNull($server->getDescription());
self::assertInstanceOf('\Longman\TelegramBot\Entities\Message', $server_result);
self::assertInstanceOf(Message::class, $server_result);
//Message
self::assertEquals('1234', $server_result->getMessageId());
......@@ -306,7 +312,7 @@ class ServerResponseTest extends TestCase
//... they are not finished...
}
public function getStickerSet()
{
TestHelpers::setStaticProperty(Request::class, 'current_action', 'getStickerSet');
......@@ -357,21 +363,21 @@ class ServerResponseTest extends TestCase
}
}';
}
public function testGetStickerSet()
{
$result = $this->getStickerSet();
$server = new ServerResponse(json_decode($result, true), 'testbot');
$server_result = $server->getResult();
self::assertInstanceOf('\Longman\TelegramBot\Entities\StickerSet', $server_result);
self::assertInstanceOf(StickerSet::class, $server_result);
self::assertEquals('stickerset_name', $server_result->getName());
self::assertEquals('Some name', $server_result->getTitle());
self::assertFalse($server_result->getContainsMasks());
$stickers = $server_result->getStickers();
self::assertCount(4, $stickers);
self::assertInstanceOf('\Longman\TelegramBot\Entities\Sticker', $stickers[0]);
self::assertInstanceOf(Sticker::class, $stickers[0]);
}
}
......@@ -24,7 +24,7 @@ class UserTest extends TestCase
public function testInstance()
{
$user = new User(['id' => 1]);
self::assertInstanceOf('Longman\TelegramBot\Entities\User', $user);
self::assertInstanceOf(User::class, $user);
}
public function testGetId()
......
......@@ -42,7 +42,7 @@ class WebhookInfoTest extends TestCase
public function testBaseStageWebhookInfo()
{
$webhook = new WebhookInfo($this->data);
$this->assertInstanceOf('Longman\TelegramBot\Entities\WebhookInfo', $webhook);
$this->assertInstanceOf(WebhookInfo::class, $webhook);
}
public function testGetUrl()
......
......@@ -36,7 +36,7 @@ class TelegramLogTest extends TestCase
protected function setUp()
{
// Make sure no monolog instance is set before each test.
TestHelpers::setStaticProperty('Longman\TelegramBot\TelegramLog', 'monolog', null);
TestHelpers::setStaticProperty(TelegramLog::class, 'monolog', null);
}
protected function tearDown()
......
......@@ -22,7 +22,7 @@ use Longman\TelegramBot\Telegram;
class TelegramTest extends TestCase
{
/**
* @var \Longman\TelegramBot\Telegram
* @var Telegram
*/
private $telegram;
......
......@@ -85,7 +85,7 @@ class TestHelpers
*
* @param array $data Pass custom data array if needed
*
* @return \Longman\TelegramBot\Entities\Update
* @return Update
*/
public static function getFakeUpdateObject($data = null)
{
......@@ -107,7 +107,7 @@ class TestHelpers
*
* @param string $command_text
*
* @return \Longman\TelegramBot\Entities\Update
* @return Update
*/
public static function getFakeUpdateCommandObject($command_text)
{
......@@ -129,7 +129,7 @@ class TestHelpers
*
* @param array $data Pass custom data array if needed
*
* @return \Longman\TelegramBot\Entities\User
* @return User
*/
public static function getFakeUserObject(array $data = [])
{
......@@ -143,7 +143,7 @@ class TestHelpers
*
* @param array $data Pass custom data array if needed
*
* @return \Longman\TelegramBot\Entities\Chat
* @return Chat
*/
public static function getFakeChatObject(array $data = [])
{
......@@ -179,7 +179,7 @@ class TestHelpers
* @param array $user_data Pass custom user data array if needed
* @param array $chat_data Pass custom chat data array if needed
*
* @return \Longman\TelegramBot\Entities\Message
* @return Message
*/
public static function getFakeMessageObject(array $message_data = [], array $user_data = [], array $chat_data = [])
{
......@@ -223,7 +223,7 @@ class TestHelpers
/**
* Empty all tables for the passed database
*
* @param array $credentials
* @param array $credentials
*/
public static function emptyDb(array $credentials)
{
......
<?php
require __DIR__ . '/../vendor/autoload.php';
$filename='logfile.log';
$API_KEY = 'random';
$filename = 'logfile.log';
$API_KEY = 'random';
$BOT_NAME = 'bot_name';
define('PHPUNIT_TESTSUITE', 'some value');
$CREDENTIALS = array('host'=>'localhost', 'user'=>'', 'password'=>'', 'database'=>'');
$CREDENTIALS = ['host' => 'localhost', 'user' => '', 'password' => '', 'database' => ''];
$update = null;
try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment