require_once "autoload.php";
require_once "functions.php";
- require_once "rssfuncs.php";
require_once "config.php";
require_once "sanity_check.php";
require_once "db.php";
"force-update",
"gen-search-idx",
"list-plugins",
+ "debug-feed:",
+ "force-refetch",
+ "force-rehash",
+ "decrypt-feeds",
"help");
foreach (PluginHost::getInstance()->get_commands() as $command => $data) {
<div class="floatingLogo"><img src="images/logo_small.png"></div>
<h1><?php echo __("Tiny Tiny RSS data update script.") ?></h1>
- <?php print_error("Please run this script from the command line. Use option \"-help\" to display command help if this error is displayed erroneously."); ?>
+ <?php print_error("Please run this script from the command line. Use option \"--help\" to display command help if this error is displayed erroneously."); ?>
</body></html>
<?php
print " --convert-filters - convert type1 filters to type2\n";
print " --force-update - force update of all feeds\n";
print " --list-plugins - list all available plugins\n";
+ print " --debug-feed N - perform debug update of feed N\n";
+ print " --force-refetch - debug update: force refetch feed data\n";
+ print " --force-rehash - debug update: force rehash articles\n";
+ print " --decrypt-feeds - decrypt feed passwords\n";
print " --help - show this help\n";
print "Plugin options:\n";
}
if (isset($options["feeds"])) {
- update_daemon_common();
- housekeeping_common(true);
+ RSSUtils::update_daemon_common();
+ RSSUtils::housekeeping_common(true);
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
if (isset($options["feedbrowser"])) {
- $count = update_feedbrowser_cache();
+ $count = RSSUtils::update_feedbrowser_cache();
print "Finished, $count feeds processed.\n";
}
$log = isset($options['log']) ? '--log '.$options['log'] : '';
passthru(PHP_EXECUTABLE . " " . $argv[0] ." --daemon-loop $quiet $log");
- _debug("Sleeping for " . DAEMON_SLEEP_INTERVAL . " seconds...");
- sleep(DAEMON_SLEEP_INTERVAL);
+
+ // let's enforce a minimum spawn interval as to not forkbomb the host
+ $spawn_interval = max(60, DAEMON_SLEEP_INTERVAL);
+
+ _debug("Sleeping for $spawn_interval seconds...");
+ sleep($spawn_interval);
}
}
_debug("warning: unable to create stampfile\n");
}
- update_daemon_common(isset($options["pidlock"]) ? 50 : DAEMON_FEED_LIMIT);
+ RSSUtils::update_daemon_common(isset($options["pidlock"]) ? 50 : DAEMON_FEED_LIMIT);
if (!isset($options["pidlock"]) || $options["task"] == 0)
- housekeeping_common(true);
+ RSSUtils::housekeeping_common(true);
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
for ($i = $updater->getSchemaVersion() + 1; $i <= SCHEMA_VERSION; $i++) {
_debug("performing update up to version $i...");
- $result = $updater->performUpdateTo($i);
+ $result = $updater->performUpdateTo($i, false);
_debug($result ? "OK!" : "FAILED!");
}
+ if (isset($options["debug-feed"])) {
+ $feed = $options["debug-feed"];
+
+ if (isset($options["force-refetch"])) $_REQUEST["force_refetch"] = true;
+ if (isset($options["force-rehash"])) $_REQUEST["force_rehash"] = true;
+
+ $_REQUEST['xdebug'] = 1;
+
+ $rc = RSSUtils::update_rss_feed($feed) != false ? 0 : 1;
+
+ exit($rc);
+ }
+
+ if (isset($options["decrypt-feeds"])) {
+ $result = db_query("SELECT id, auth_pass FROM ttrss_feeds WHERE auth_pass_encrypted = true");
+
+ if (!function_exists("mcrypt_decrypt")) {
+ _debug("mcrypt functions not available.");
+ return;
+ }
+
+ require_once "crypt.php";
+
+ $total = 0;
+
+ db_query("BEGIN");
+
+ while ($line = db_fetch_assoc($result)) {
+ _debug("processing feed id " . $line["id"]);
+
+ $auth_pass = db_escape_string(decrypt_string($line["auth_pass"]));
+
+ db_query("UPDATE ttrss_feeds SET auth_pass_encrypted = false, auth_pass = '$auth_pass'
+ WHERE id = " . $line["id"]);
+
+ ++$total;
+ }
+
+ db_query("COMMIT");
+
+ _debug("$total feeds processed.");
+ }
+
PluginHost::getInstance()->run_commands($options);
if (file_exists(LOCK_DIRECTORY . "/$lock_filename"))
+ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
+ fclose($lock_handle);
unlink(LOCK_DIRECTORY . "/$lock_filename");
?>