mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-19 15:01:30 +00:00
add ability to auto-assign articles to labels (bump schema)
This commit is contained in:
@@ -162,7 +162,7 @@ class Feeds extends Handler_Protected {
|
|||||||
$last_updated = strtotime(db_fetch_result($result, 0, "last_updated"));
|
$last_updated = strtotime(db_fetch_result($result, 0, "last_updated"));
|
||||||
$cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
|
$cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
|
||||||
|
|
||||||
if (!$cache_images && time() - $last_updated > 120) {
|
if (!$cache_images && time() - $last_updated > 120 || isset($_REQUEST['DevForceUpdate'])) {
|
||||||
include "rssfuncs.php";
|
include "rssfuncs.php";
|
||||||
update_rss_feed($this->link, $feed, true, true);
|
update_rss_feed($this->link, $feed, true, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
define('EXPECTED_CONFIG_VERSION', 26);
|
define('EXPECTED_CONFIG_VERSION', 26);
|
||||||
define('SCHEMA_VERSION', 97);
|
define('SCHEMA_VERSION', 98);
|
||||||
|
|
||||||
$fetch_last_error = false;
|
$fetch_last_error = false;
|
||||||
|
|
||||||
@@ -3923,6 +3923,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_all_labels($link, $owner_uid) {
|
||||||
|
$rv = array();
|
||||||
|
|
||||||
|
$result = db_query($link, "SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
|
||||||
|
|
||||||
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
array_push($rv, $line);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rv;
|
||||||
|
}
|
||||||
|
|
||||||
function label_update_cache($link, $id, $labels = false, $force = false) {
|
function label_update_cache($link, $id, $labels = false, $force = false) {
|
||||||
|
|
||||||
if ($force)
|
if ($force)
|
||||||
|
|||||||
@@ -405,10 +405,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($debug_enabled) {
|
if ($debug_enabled) {
|
||||||
_debug("update_rss_feed: loading filters...");
|
_debug("update_rss_feed: loading filters & labels...");
|
||||||
}
|
}
|
||||||
|
|
||||||
$filters = load_filters($link, $feed, $owner_uid);
|
$filters = load_filters($link, $feed, $owner_uid);
|
||||||
|
$labels = get_all_labels($link, $owner_uid);
|
||||||
|
|
||||||
if ($debug_enabled) {
|
if ($debug_enabled) {
|
||||||
//print_r($filters);
|
//print_r($filters);
|
||||||
@@ -874,6 +875,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$article_labels = get_article_labels($link, $entry_ref_id);
|
||||||
|
|
||||||
if (find_article_filter($article_filters, "filter")) {
|
if (find_article_filter($article_filters, "filter")) {
|
||||||
db_query($link, "COMMIT"); // close transaction in progress
|
db_query($link, "COMMIT"); // close transaction in progress
|
||||||
continue;
|
continue;
|
||||||
@@ -1034,7 +1037,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
assign_article_to_label_filters($link, $entry_ref_id, $article_filters,
|
assign_article_to_label_filters($link, $entry_ref_id, $article_filters,
|
||||||
$owner_uid);
|
$owner_uid, $article_labels);
|
||||||
|
|
||||||
if ($debug_enabled) {
|
if ($debug_enabled) {
|
||||||
_debug("update_rss_feed: looking for enclosures...");
|
_debug("update_rss_feed: looking for enclosures...");
|
||||||
@@ -1207,6 +1210,22 @@
|
|||||||
db_query($link, "COMMIT");
|
db_query($link, "COMMIT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (get_pref($link, "AUTO_ASSIGN_LABELS", $owner_uid, false)) {
|
||||||
|
if ($debug_enabled) {
|
||||||
|
_debug("update_rss_feed: auto-assigning labels...");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($labels as $label) {
|
||||||
|
$caption = $label["caption"];
|
||||||
|
|
||||||
|
if (preg_match("/\b$caption\b/i", "$tags_str $entry_content $entry_title")) {
|
||||||
|
if (!labels_contains_caption($article_labels, $caption)) {
|
||||||
|
label_add_article($link, $entry_ref_id, $caption, $owner_uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($debug_enabled) {
|
if ($debug_enabled) {
|
||||||
_debug("update_rss_feed: article processed");
|
_debug("update_rss_feed: article processed");
|
||||||
}
|
}
|
||||||
@@ -1437,11 +1456,23 @@
|
|||||||
return $score;
|
return $score;
|
||||||
}
|
}
|
||||||
|
|
||||||
function assign_article_to_label_filters($link, $id, $filters, $owner_uid) {
|
function labels_contains_caption($labels, $caption) {
|
||||||
|
foreach ($labels as $label) {
|
||||||
|
if ($label[1] == $caption) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assign_article_to_label_filters($link, $id, $filters, $owner_uid, $article_labels) {
|
||||||
foreach ($filters as $f) {
|
foreach ($filters as $f) {
|
||||||
if ($f["type"] == "label") {
|
if ($f["type"] == "label") {
|
||||||
|
if (!labels_contains_caption($article_labels, $f["param"])) {
|
||||||
label_add_article($link, $id, $f["param"], $owner_uid);
|
label_add_article($link, $id, $f["param"], $owner_uid);
|
||||||
};
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ create table ttrss_tags (id integer primary key auto_increment,
|
|||||||
|
|
||||||
create table ttrss_version (schema_version int not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
|
create table ttrss_version (schema_version int not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
|
||||||
|
|
||||||
insert into ttrss_version values (97);
|
insert into ttrss_version values (98);
|
||||||
|
|
||||||
create table ttrss_enclosures (id integer primary key auto_increment,
|
create table ttrss_enclosures (id integer primary key auto_increment,
|
||||||
content_url text not null,
|
content_url text not null,
|
||||||
@@ -448,12 +448,15 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
|
|||||||
|
|
||||||
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('AUTO_ASSIGN_LABELS', 1, 'true', 'Assign articles to labels automatically', 3);
|
||||||
|
|
||||||
update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
|
update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
|
||||||
'SORT_HEADLINES_BY_FEED_DATE',
|
'SORT_HEADLINES_BY_FEED_DATE',
|
||||||
'VFEED_GROUP_BY_FEED',
|
'VFEED_GROUP_BY_FEED',
|
||||||
'FRESH_ARTICLE_MAX_AGE',
|
'FRESH_ARTICLE_MAX_AGE',
|
||||||
'CDM_EXPANDED',
|
'CDM_EXPANDED',
|
||||||
'SHOW_CONTENT_PREVIEW',
|
'SHOW_CONTENT_PREVIEW',
|
||||||
|
'AUTO_ASSIGN_LABELS',
|
||||||
'HIDE_READ_SHOWS_SPECIAL');
|
'HIDE_READ_SHOWS_SPECIAL');
|
||||||
|
|
||||||
create table ttrss_user_prefs (
|
create table ttrss_user_prefs (
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ create index ttrss_tags_post_int_id_idx on ttrss_tags(post_int_id);
|
|||||||
|
|
||||||
create table ttrss_version (schema_version int not null);
|
create table ttrss_version (schema_version int not null);
|
||||||
|
|
||||||
insert into ttrss_version values (97);
|
insert into ttrss_version values (98);
|
||||||
|
|
||||||
create table ttrss_enclosures (id serial not null primary key,
|
create table ttrss_enclosures (id serial not null primary key,
|
||||||
content_url text not null,
|
content_url text not null,
|
||||||
@@ -388,12 +388,15 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
|
|||||||
|
|
||||||
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('AUTO_ASSIGN_LABELS', 1, 'true', 'Assign articles to labels automatically', 3);
|
||||||
|
|
||||||
update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
|
update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
|
||||||
'SORT_HEADLINES_BY_FEED_DATE',
|
'SORT_HEADLINES_BY_FEED_DATE',
|
||||||
'VFEED_GROUP_BY_FEED',
|
'VFEED_GROUP_BY_FEED',
|
||||||
'FRESH_ARTICLE_MAX_AGE',
|
'FRESH_ARTICLE_MAX_AGE',
|
||||||
'CDM_EXPANDED',
|
'CDM_EXPANDED',
|
||||||
'SHOW_CONTENT_PREVIEW',
|
'SHOW_CONTENT_PREVIEW',
|
||||||
|
'AUTO_ASSIGN_LABELS',
|
||||||
'HIDE_READ_SHOWS_SPECIAL');
|
'HIDE_READ_SHOWS_SPECIAL');
|
||||||
|
|
||||||
create table ttrss_user_prefs (
|
create table ttrss_user_prefs (
|
||||||
|
|||||||
7
schema/versions/mysql/98.sql
Normal file
7
schema/versions/mysql/98.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
begin;
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,access_level) values('AUTO_ASSIGN_LABELS', 1, 'true', 'Assign articles to labels automatically', 3, 1);
|
||||||
|
|
||||||
|
update ttrss_version set schema_version = 98;
|
||||||
|
|
||||||
|
commit;
|
||||||
7
schema/versions/pgsql/98.sql
Normal file
7
schema/versions/pgsql/98.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
begin;
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,access_level) values('AUTO_ASSIGN_LABELS', 1, 'true', 'Assign articles to labels automatically', 3, 1);
|
||||||
|
|
||||||
|
update ttrss_version set schema_version = 98;
|
||||||
|
|
||||||
|
commit;
|
||||||
Reference in New Issue
Block a user