summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-06-17 16:50:21 +0300
committerAndrew Dolgov <[email protected]>2015-06-17 16:50:21 +0300
commit3c43def90f62ef40fb177c35275413ee62a5d642 (patch)
tree76cbcabb8036ac50d9a2602cf57c3a2931ffca8f
parentb02e8bc8f2f682077e41b0e4cc3c6a13a39d6fe3 (diff)
add button to clear bayes database
-rw-r--r--plugins/af_sort_bayes/init.js20
-rw-r--r--plugins/af_sort_bayes/init.php42
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;
}