From 3c43def90f62ef40fb177c35275413ee62a5d642 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 17 Jun 2015 16:50:21 +0300 Subject: [PATCH] add button to clear bayes database --- plugins/af_sort_bayes/init.js | 20 ++++++++++++++++ plugins/af_sort_bayes/init.php | 42 ++++++++++++++++++++++++++++++++-- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/plugins/af_sort_bayes/init.js b/plugins/af_sort_bayes/init.js index a6335ef81..e6523bc4f 100644 --- a/plugins/af_sort_bayes/init.js +++ b/plugins/af_sort_bayes/init.js @@ -15,3 +15,23 @@ function bayesTrain(id, train_up) { } } +function bayesClearDatabase() { + try { + + if (confirm(__("Clear classifier database?"))) { + + var query = "backend.php?op=pluginhandler&plugin=af_sort_bayes&method=clearDatabase"; + + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function (transport) { + notify(transport.responseText); + } + }); + } + + } catch (e) { + exception_error("showTrgmRelated", e); + } +} + diff --git a/plugins/af_sort_bayes/init.php b/plugins/af_sort_bayes/init.php index 79d287158..958127689 100644 --- a/plugins/af_sort_bayes/init.php +++ b/plugins/af_sort_bayes/init.php @@ -6,6 +6,7 @@ class Af_Sort_Bayes extends Plugin { private $filters = array(); private $dbh; private $score_modifier = 50; + private $sql_prefix = "ttrss_plugin_af_sort_bayes"; function about() { return array(1.0, @@ -71,6 +72,10 @@ class Af_Sort_Bayes extends Plugin { return file_get_contents(__DIR__ . "/init.js"); } + function get_prefs_js() { + return file_get_contents(__DIR__ . "/init.js"); + } + function hook_article_button($line) { return "sql_prefix; // TODO there probably should be a way for plugins to determine their schema version to upgrade tables @@ -163,7 +168,27 @@ class Af_Sort_Bayes extends Plugin { function hook_prefs_tab($args) { if ($args != "prefPrefs") return; - print "
"; + print "
"; + + $result = $this->dbh->query("SELECT category, probability, word_count FROM {$this->sql_prefix}_categories WHERE owner_uid = " . $_SESSION["uid"]); + + print ""; + print ""; + + while ($line = $this->dbh->fetch_assoc($result)) { + print ""; + foreach ($line as $k => $v) { + if ($k == "probability") $v = sprintf("%.3f", $v); + + print ""; + } + print ""; + } + + print "
CategoryProbabilityWord count
$v
"; + + print " "; // @@ -224,6 +249,19 @@ class Af_Sort_Bayes extends Plugin { } + function clearDatabase() { + $prefix = $this->sql_prefix; + + $this->dbh->query("BEGIN"); + $this->dbh->query("DELETE FROM ${prefix}_references WHERE owner_uid = " . $_SESSION["uid"]); + $this->dbh->query("DELETE FROM ${prefix}_wordfreqs WHERE owner_uid = " . $_SESSION["uid"]); + $this->dbh->query("COMMIT"); + + $nbs = new NaiveBayesianStorage($_SESSION["uid"]); + $nb = new NaiveBayesian($nbs); + $nb->updateProbabilities(); + } + function api_version() { return 2; }