purge.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. echo 'FreshRSS purging old entries for user “', $username, "”…\n";
  18. $databaseDAO = FreshRSS_Factory::createDatabaseDAO();
  19. $databaseDAO->minorDbMaintenance();
  20. $feedDAO = FreshRSS_Factory::createFeedDao();
  21. $feeds = $feedDAO->listFeeds();
  22. $nb_total = 0;
  23. $feedDAO->beginTransaction();
  24. foreach ($feeds as $feed) {
  25. $nb_total += ($feed->cleanOldEntries() ?: 0);
  26. }
  27. $feedDAO->updateCachedValues();
  28. $feedDAO->commit();
  29. invalidateHttpCache($username);
  30. echo "FreshRSS purged {$nb_total} old entries for {$username}\n";
  31. done(true);