actualize-user.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env php
  2. <?php
  3. declare(strict_types=1);
  4. require __DIR__ . '/_cli.php';
  5. performRequirementCheck(FreshRSS_Context::systemConf()->db['type'] ?? '');
  6. $cliOptions = new class extends CliOptionsParser {
  7. public string $user;
  8. public function __construct() {
  9. $this->addRequiredOption('user', (new CliOption('user')));
  10. parent::__construct();
  11. }
  12. };
  13. if (!empty($cliOptions->errors)) {
  14. fail('FreshRSS error: ' . array_shift($cliOptions->errors) . "\n" . $cliOptions->usage);
  15. }
  16. $username = cliInitUser($cliOptions->user);
  17. Minz_ExtensionManager::callHookVoid('freshrss_user_maintenance');
  18. fwrite(STDERR, 'FreshRSS actualizing user “' . $username . "”…\n");
  19. $databaseDAO = FreshRSS_Factory::createDatabaseDAO();
  20. $databaseDAO->minorDbMaintenance();
  21. Minz_ExtensionManager::callHookVoid('freshrss_user_maintenance');
  22. FreshRSS_feed_Controller::commitNewEntries();
  23. $feedDAO = FreshRSS_Factory::createFeedDao();
  24. $feedDAO->updateCachedValues();
  25. $result = FreshRSS_category_Controller::refreshDynamicOpmls();
  26. if (!empty($result['errors'])) {
  27. $errors = $result['errors'];
  28. fwrite(STDERR, "FreshRSS error refreshing $errors dynamic OPMLs!\n");
  29. }
  30. if (!empty($result['successes'])) {
  31. $successes = $result['successes'];
  32. echo "FreshRSS refreshed $successes dynamic OPMLs for $username\n";
  33. }
  34. [$nbUpdatedFeeds, , $nbNewArticles] = FreshRSS_feed_Controller::actualizeFeedsAndCommit();
  35. echo "FreshRSS actualized $nbUpdatedFeeds feeds for $username ($nbNewArticles new articles)\n";
  36. invalidateHttpCache($username);
  37. done($nbUpdatedFeeds > 0);