diff options
author | Andrew Dolgov <[email protected]> | 2015-06-17 16:50:21 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2015-06-17 16:50:21 +0300 |
commit | 3c43def90f62ef40fb177c35275413ee62a5d642 (patch) | |
tree | 76cbcabb8036ac50d9a2602cf57c3a2931ffca8f /plugins | |
parent | b02e8bc8f2f682077e41b0e4cc3c6a13a39d6fe3 (diff) |
add button to clear bayes database
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/af_sort_bayes/init.js | 20 | ||||
-rw-r--r-- | 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 "<img src=\"plugins/af_sort_bayes/thumb_up.png\" style=\"cursor : pointer\" style=\"cursor : pointer\" @@ -84,7 +89,7 @@ class Af_Sort_Bayes extends Plugin { } function init_database() { - $prefix = "ttrss_plugin_af_sort_bayes"; + $prefix = $this->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 "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('af_sort_bayes')."\">"; + print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Bayesian classifier (af_sort_bayes)')."\">"; + + $result = $this->dbh->query("SELECT category, probability, word_count FROM {$this->sql_prefix}_categories WHERE owner_uid = " . $_SESSION["uid"]); + + print "<table>"; + print "<tr><th>Category</th><th>Probability</th><th>Word count</th></tr>"; + + while ($line = $this->dbh->fetch_assoc($result)) { + print "<tr>"; + foreach ($line as $k => $v) { + if ($k == "probability") $v = sprintf("%.3f", $v); + + print "<td>$v</td>"; + } + print "</tr>"; + } + + print "</table>"; + + print "<button dojoType=\"dijit.form.Button\" onclick=\"return bayesClearDatabase()\">". + __('Clear database')."</button> "; // @@ -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; } |