1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-06-27 16:36:00 +00:00
wallabag/src/Controller/Import/ImportController.php

100 lines
4.2 KiB
PHP
Raw Normal View History

<?php
2024-02-19 01:30:12 +01:00
namespace Wallabag\Controller\Import;
2022-08-28 02:01:46 +02:00
use Craue\ConfigBundle\Util\Config;
use Predis\Client;
2025-03-11 00:54:02 +01:00
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Component\Routing\Annotation\Route;
2022-08-28 02:01:46 +02:00
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
2024-02-19 01:30:12 +01:00
use Wallabag\Consumer\RabbitMQConsumerTotalProxy;
use Wallabag\Controller\AbstractController;
use Wallabag\Import\ImportChain;
class ImportController extends AbstractController
{
private RabbitMQConsumerTotalProxy $rabbitMQConsumerTotalProxy;
public function __construct(RabbitMQConsumerTotalProxy $rabbitMQConsumerTotalProxy)
{
$this->rabbitMQConsumerTotalProxy = $rabbitMQConsumerTotalProxy;
}
/**
2025-03-10 01:15:45 +01:00
* @Route("/import/", name="import", methods={"GET"})
2025-03-11 00:54:02 +01:00
* @IsGranted("IMPORT_ENTRIES")
*/
public function importAction(ImportChain $importChain)
{
2024-02-19 00:03:14 +01:00
return $this->render('Import/index.html.twig', [
'imports' => $importChain->getAll(),
]);
}
/**
* Display how many messages are queue (both in Redis and RabbitMQ).
* Only for admins.
*/
public function checkQueueAction(AuthorizationCheckerInterface $authorizationChecker, Config $craueConfig)
{
$nbRedisMessages = null;
$nbRabbitMessages = null;
$redisNotInstalled = false;
$rabbitNotInstalled = false;
if (!$authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
2024-02-19 00:03:14 +01:00
return $this->render('Import/check_queue.html.twig');
}
if ($craueConfig->get('import_with_rabbitmq')) {
// in case rabbit is activated but not installed
try {
$nbRabbitMessages = $this->rabbitMQConsumerTotalProxy->getTotalMessage('pocket')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('readability')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('wallabag_v1')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('wallabag_v2')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('firefox')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('chrome')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('instapaper')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('pinboard')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('delicious')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('elcurator')
2023-07-26 12:49:30 +02:00
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('shaarli')
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('pocket_html')
2024-10-31 08:10:33 +01:00
+ $this->rabbitMQConsumerTotalProxy->getTotalMessage('omnivore')
;
} catch (\Exception $e) {
$rabbitNotInstalled = true;
}
} elseif ($craueConfig->get('import_with_redis')) {
$redis = $this->get(Client::class);
try {
$nbRedisMessages = $redis->llen('wallabag.import.pocket')
+ $redis->llen('wallabag.import.readability')
+ $redis->llen('wallabag.import.wallabag_v1')
+ $redis->llen('wallabag.import.wallabag_v2')
+ $redis->llen('wallabag.import.firefox')
+ $redis->llen('wallabag.import.chrome')
+ $redis->llen('wallabag.import.instapaper')
2016-11-04 22:44:31 +01:00
+ $redis->llen('wallabag.import.pinboard')
+ $redis->llen('wallabag.import.delicious')
+ $redis->llen('wallabag.import.elcurator')
2023-07-26 12:49:30 +02:00
+ $redis->llen('wallabag.import.shaarli')
+ $redis->llen('wallabag.import.pocket_html')
2024-10-31 08:10:33 +01:00
+ $redis->llen('wallabag.import.omnivore')
;
} catch (\Exception $e) {
$redisNotInstalled = true;
}
}
2024-02-19 00:03:14 +01:00
return $this->render('Import/check_queue.html.twig', [
'nbRedisMessages' => $nbRedisMessages,
'nbRabbitMessages' => $nbRabbitMessages,
'redisNotInstalled' => $redisNotInstalled,
'rabbitNotInstalled' => $rabbitNotInstalled,
]);
}
}