diff options
author | Andrew Dolgov <[email protected]> | 2011-04-20 12:06:30 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2011-04-20 12:07:07 +0400 |
commit | afb875ccd704dec355b73eecb2ded23f047414d8 (patch) | |
tree | 9a7a541206e27387f0cc8cc5117a098b3c923dba | |
parent | 34846e514f916e0ae7d942cc99e84c9507e4728b (diff) |
add rpc method to export feedbrowser data; update schema
-rw-r--r-- | modules/backend-rpc.php | 32 | ||||
-rw-r--r-- | schema/ttrss_schema_mysql.sql | 1 | ||||
-rw-r--r-- | schema/ttrss_schema_pgsql.sql | 1 | ||||
-rw-r--r-- | schema/versions/mysql/84.sql | 1 | ||||
-rw-r--r-- | schema/versions/pgsql/84.sql | 1 |
5 files changed, 36 insertions, 0 deletions
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index f21ca5814..8b4fb04c7 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -834,6 +834,38 @@ return; } + if ($subop == "fbExport") { + + // TODO: change to _POST + $access_key = db_escape_string($_REQUEST["key"]); + + // TODO: rate limit checking using last_connected + $result = db_query($link, "SELECT id FROM ttrss_linked_instances + WHERE access_key = '$access_key'"); + + if (db_num_rows($result) == 1) { + + $instance_id = db_fetch_result($result, 0, "id"); + + $result = db_query($link, "SELECT feed_url, title, subscribers + FROM ttrss_feedbrowser_cache ORDER BY subscribers DESC LIMIT 100"); + + $feeds = array(); + + while ($line = db_fetch_assoc($result)) { + array_push($feeds, $line); + } + + db_query($link, "UPDATE ttrss_linked_instances SET last_connected = NOW() + WHERE id = '$instance_id'"); + + print json_encode(array("feeds" => $feeds)); + } else { + print json_encode(array("error" => array("code" => 6))); + } + return; + } + print json_encode(array("error" => array("code" => 7, "message" => "Unknown method: $subop"))); } diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql index 2a6e89c8d..91475e602 100644 --- a/schema/ttrss_schema_mysql.sql +++ b/schema/ttrss_schema_mysql.sql @@ -429,6 +429,7 @@ create table ttrss_access_keys (id integer not null primary key auto_increment, foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) TYPE=InnoDB DEFAULT CHARSET=UTF8; create table ttrss_linked_instances (id integer not null primary key auto_increment, + last_connected datetime not null, access_key varchar(250) not null, access_url text not null) TYPE=InnoDB DEFAULT CHARSET=UTF8; diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql index d6cc924f0..a7cee5363 100644 --- a/schema/ttrss_schema_pgsql.sql +++ b/schema/ttrss_schema_pgsql.sql @@ -389,6 +389,7 @@ create table ttrss_access_keys (id serial not null primary key, owner_uid integer not null references ttrss_users(id) on delete cascade); create table ttrss_linked_instances (id serial not null primary key, + last_connected timestamp not null, access_key varchar(250) not null, access_url text not null); diff --git a/schema/versions/mysql/84.sql b/schema/versions/mysql/84.sql index 631daa03b..7a0ccbfb9 100644 --- a/schema/versions/mysql/84.sql +++ b/schema/versions/mysql/84.sql @@ -1,6 +1,7 @@ begin; create table ttrss_linked_instances (id integer not null primary key auto_increment, + last_connected timestamp not null, access_key varchar(250) not null, access_url text not null) TYPE=InnoDB DEFAULT CHARSET=UTF8; diff --git a/schema/versions/pgsql/84.sql b/schema/versions/pgsql/84.sql index 1ff253f73..77212317b 100644 --- a/schema/versions/pgsql/84.sql +++ b/schema/versions/pgsql/84.sql @@ -1,6 +1,7 @@ begin; create table ttrss_linked_instances (id serial not null primary key, + last_connected datetime not null, access_key varchar(250) not null, access_url text not null); |