2016-08-20 23:02:05 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Shikiryu\LBCReposter;
|
|
|
|
|
|
|
|
use Goutte\Client;
|
|
|
|
|
|
|
|
class Account
|
|
|
|
{
|
|
|
|
/** @var Client */
|
|
|
|
protected $client;
|
2016-09-11 22:53:40 +02:00
|
|
|
/** @var Config */
|
|
|
|
protected $config;
|
2016-08-20 23:02:05 +02:00
|
|
|
/** @var bool */
|
|
|
|
protected $is_connected = false;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Account constructor.
|
|
|
|
* @param Client $client
|
2016-09-11 22:53:40 +02:00
|
|
|
* @param Config $config
|
2016-08-20 23:02:05 +02:00
|
|
|
*/
|
2016-09-11 22:53:40 +02:00
|
|
|
public function __construct(Client $client, Config $config)
|
2016-08-20 23:02:05 +02:00
|
|
|
{
|
|
|
|
$this->client = $client;
|
2016-09-11 22:53:40 +02:00
|
|
|
$this->config = $config;
|
2016-08-20 23:02:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return Client
|
|
|
|
*/
|
|
|
|
public function getClient()
|
|
|
|
{
|
|
|
|
return $this->client;
|
|
|
|
}
|
|
|
|
|
2016-08-24 23:37:29 +02:00
|
|
|
/**
|
2017-09-27 21:42:22 +02:00
|
|
|
* @return Config
|
2016-08-24 23:37:29 +02:00
|
|
|
*/
|
2017-09-27 21:42:22 +02:00
|
|
|
public function getConfig()
|
2016-08-20 23:02:05 +02:00
|
|
|
{
|
2017-09-27 21:42:22 +02:00
|
|
|
return $this->config;
|
2016-08-20 23:02:05 +02:00
|
|
|
}
|
|
|
|
|
2016-08-24 23:37:29 +02:00
|
|
|
/**
|
2017-09-27 21:42:22 +02:00
|
|
|
* Check if it's connected
|
|
|
|
* (if there's a "logout" link)
|
2016-08-24 23:37:29 +02:00
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
*/
|
2017-09-27 21:42:22 +02:00
|
|
|
public function isConnected()
|
2016-08-20 23:02:05 +02:00
|
|
|
{
|
2017-09-27 21:42:22 +02:00
|
|
|
if (!$this->is_connected) {
|
|
|
|
$crawler = $this->client->request('GET', Actions::HOME_URL);
|
|
|
|
$this->is_connected = $crawler->filter('#account_logout')->count() == 1;
|
2016-08-20 23:02:05 +02:00
|
|
|
}
|
|
|
|
return $this->is_connected;
|
|
|
|
}
|
|
|
|
|
2016-08-24 23:37:29 +02:00
|
|
|
/**
|
2017-09-27 21:42:22 +02:00
|
|
|
* @param bool $connected
|
2016-08-24 23:37:29 +02:00
|
|
|
*/
|
2017-09-27 21:42:22 +02:00
|
|
|
public function setConnected($connected = false)
|
2017-09-06 22:28:00 +02:00
|
|
|
{
|
2017-09-27 21:42:22 +02:00
|
|
|
$this->is_connected = $connected;
|
2017-09-06 22:28:00 +02:00
|
|
|
}
|
2016-09-12 16:41:57 +02:00
|
|
|
}
|