move published OPML endpoint to public.php
This commit is contained in:
parent
2843b99171
commit
d1328321be
|
@ -737,6 +737,27 @@ class Handler_Public extends Handler {
|
|||
<?php
|
||||
}
|
||||
|
||||
function publishOpml() {
|
||||
$key = clean($_REQUEST["key"]);
|
||||
$pdo = Db::pdo();
|
||||
|
||||
$sth = $pdo->prepare( "SELECT owner_uid
|
||||
FROM ttrss_access_keys WHERE
|
||||
access_key = ? AND feed_id = 'OPML:Publish'");
|
||||
$sth->execute([$key]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
$owner_uid = $row['owner_uid'];
|
||||
|
||||
$opml = new OPML($_REQUEST);
|
||||
$opml->opml_export("published.opml", $owner_uid, true, false);
|
||||
|
||||
} else {
|
||||
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
|
||||
echo "File not found.";
|
||||
}
|
||||
}
|
||||
|
||||
function cached() {
|
||||
list ($cache_dir, $filename) = explode("/", $_GET["file"], 2);
|
||||
|
||||
|
|
|
@ -634,13 +634,10 @@ class OPML extends Handler_Protected {
|
|||
print "$msg<br/>";
|
||||
}
|
||||
|
||||
static function opml_publish_url(){
|
||||
|
||||
$url_path = get_self_url_prefix();
|
||||
$url_path .= "/opml.php?op=publish&key=" .
|
||||
static function get_publish_url(){
|
||||
return get_self_url_prefix() .
|
||||
"/public.php?op=publishOpml&key=" .
|
||||
Feeds::_get_access_key('OPML:Publish', false, $_SESSION["uid"]);
|
||||
|
||||
return $url_path;
|
||||
}
|
||||
|
||||
function get_feed_category($feed_cat, $parent_cat_id = false) {
|
||||
|
|
|
@ -1329,14 +1329,14 @@ class Pref_Feeds extends Handler_Protected {
|
|||
}
|
||||
|
||||
function getOPMLKey() {
|
||||
print json_encode(["link" => OPML::opml_publish_url()]);
|
||||
print json_encode(["link" => OPML::get_publish_url()]);
|
||||
}
|
||||
|
||||
function regenOPMLKey() {
|
||||
$this->update_feed_access_key('OPML:Publish',
|
||||
false, $_SESSION["uid"]);
|
||||
|
||||
print json_encode(["link" => OPML::opml_publish_url()]);
|
||||
print json_encode(["link" => OPML::get_publish_url()]);
|
||||
}
|
||||
|
||||
function regenFeedKey() {
|
||||
|
|
|
@ -656,12 +656,10 @@ class RPC extends Handler_Protected {
|
|||
<ul class='panel panel-scrollable hotkeys-help' style='height : 300px'>
|
||||
<?php
|
||||
|
||||
$cur_section = "";
|
||||
foreach ($info as $section => $hotkeys) {
|
||||
|
||||
if ($cur_section) print "<li> </li>";
|
||||
print "<li><h3>" . $section . "</h3></li>";
|
||||
$cur_section = $section;
|
||||
?>
|
||||
<li><h3><?= $section ?></h3></li>
|
||||
<?php
|
||||
|
||||
foreach ($hotkeys as $action => $description) {
|
||||
|
||||
|
@ -705,9 +703,8 @@ class RPC extends Handler_Protected {
|
|||
}
|
||||
}
|
||||
}
|
||||
print "</ul>";
|
||||
|
||||
?>
|
||||
?>
|
||||
</ul>
|
||||
<footer class='text-center'>
|
||||
<?= \Controls\submit_tag(__('Close this window')) ?>
|
||||
</footer>
|
||||
|
|
36
opml.php
36
opml.php
|
@ -1,36 +0,0 @@
|
|||
<?php
|
||||
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
|
||||
get_include_path());
|
||||
|
||||
require_once "autoload.php";
|
||||
require_once "functions.php";
|
||||
require_once "sessions.php";
|
||||
require_once "sanity_check.php";
|
||||
require_once "config.php";
|
||||
require_once "db-prefs.php";
|
||||
|
||||
if (!init_plugins()) return;
|
||||
|
||||
$op = $_REQUEST['op'];
|
||||
|
||||
if ($op == "publish"){
|
||||
$key = $_REQUEST["key"];
|
||||
$pdo = Db::pdo();
|
||||
|
||||
$sth = $pdo->prepare( "SELECT owner_uid
|
||||
FROM ttrss_access_keys WHERE
|
||||
access_key = ? AND feed_id = 'OPML:Publish'");
|
||||
$sth->execute([$key]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
$owner_uid = $row['owner_uid'];
|
||||
|
||||
$opml = new OPML($_REQUEST);
|
||||
$opml->opml_export("", $owner_uid, true, false);
|
||||
|
||||
} else {
|
||||
print "<error>User not found</error>";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -898,12 +898,14 @@ body.ttrss_main .dijitTooltipBelow .dijitTooltipConnector {
|
|||
body.ttrss_main .dijitTooltipAbove .dijitTooltipConnector {
|
||||
border-top-color: #1c5c7d;
|
||||
}
|
||||
body.ttrss_main .dijitDialog h1:first-of-type,
|
||||
body.ttrss_main .dijitDialog h2:first-of-type,
|
||||
body.ttrss_main .dijitDialog h3:first-of-type,
|
||||
body.ttrss_main .dijitDialog h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
/*body.ttrss_main .dijitDialog {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type,
|
||||
h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree .dijitTreeRow.Has_Marked .dijitTreeLabel {
|
||||
color: #257aa7;
|
||||
}
|
||||
|
@ -1413,6 +1415,13 @@ body.ttrss_prefs {
|
|||
background-color: #f5f5f5;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
/*.dijitContentPane {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
body.ttrss_prefs h1,
|
||||
body.ttrss_prefs h2,
|
||||
|
@ -1422,11 +1431,6 @@ body.ttrss_prefs h4 {
|
|||
font-weight: 600;
|
||||
color: #555;
|
||||
}
|
||||
body.ttrss_prefs .dijitContentPane h1:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h2:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
body.ttrss_prefs #footer,
|
||||
body.ttrss_prefs #header {
|
||||
padding: 8px;
|
||||
|
|
|
@ -898,12 +898,14 @@ body.ttrss_main .dijitTooltipBelow .dijitTooltipConnector {
|
|||
body.ttrss_main .dijitTooltipAbove .dijitTooltipConnector {
|
||||
border-top-color: #d29745;
|
||||
}
|
||||
body.ttrss_main .dijitDialog h1:first-of-type,
|
||||
body.ttrss_main .dijitDialog h2:first-of-type,
|
||||
body.ttrss_main .dijitDialog h3:first-of-type,
|
||||
body.ttrss_main .dijitDialog h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
/*body.ttrss_main .dijitDialog {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type,
|
||||
h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree .dijitTreeRow.Has_Marked .dijitTreeLabel {
|
||||
color: #b87d2c;
|
||||
}
|
||||
|
@ -1413,6 +1415,13 @@ body.ttrss_prefs {
|
|||
background-color: #222;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
/*.dijitContentPane {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
body.ttrss_prefs h1,
|
||||
body.ttrss_prefs h2,
|
||||
|
@ -1422,11 +1431,6 @@ body.ttrss_prefs h4 {
|
|||
font-weight: 600;
|
||||
color: #ccc;
|
||||
}
|
||||
body.ttrss_prefs .dijitContentPane h1:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h2:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
body.ttrss_prefs #footer,
|
||||
body.ttrss_prefs #header {
|
||||
padding: 8px;
|
||||
|
|
|
@ -898,12 +898,14 @@ body.ttrss_main .dijitTooltipBelow .dijitTooltipConnector {
|
|||
body.ttrss_main .dijitTooltipAbove .dijitTooltipConnector {
|
||||
border-top-color: #1c5c7d;
|
||||
}
|
||||
body.ttrss_main .dijitDialog h1:first-of-type,
|
||||
body.ttrss_main .dijitDialog h2:first-of-type,
|
||||
body.ttrss_main .dijitDialog h3:first-of-type,
|
||||
body.ttrss_main .dijitDialog h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
/*body.ttrss_main .dijitDialog {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type,
|
||||
h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree .dijitTreeRow.Has_Marked .dijitTreeLabel {
|
||||
color: #257aa7;
|
||||
}
|
||||
|
@ -1413,6 +1415,13 @@ body.ttrss_prefs {
|
|||
background-color: #f5f5f5;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
/*.dijitContentPane {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
body.ttrss_prefs h1,
|
||||
body.ttrss_prefs h2,
|
||||
|
@ -1422,11 +1431,6 @@ body.ttrss_prefs h4 {
|
|||
font-weight: 600;
|
||||
color: #555;
|
||||
}
|
||||
body.ttrss_prefs .dijitContentPane h1:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h2:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
body.ttrss_prefs #footer,
|
||||
body.ttrss_prefs #header {
|
||||
padding: 8px;
|
||||
|
|
|
@ -9,13 +9,13 @@ body.ttrss_prefs {
|
|||
color : @default-text;
|
||||
}
|
||||
|
||||
.dijitContentPane {
|
||||
/*.dijitContentPane {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
#footer, #header {
|
||||
padding : 8px;
|
||||
|
|
|
@ -1049,14 +1049,14 @@ body.ttrss_main {
|
|||
}
|
||||
}
|
||||
|
||||
body.ttrss_main .dijitDialog {
|
||||
/*body.ttrss_main .dijitDialog {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type,
|
||||
h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree {
|
||||
.dijitTreeRow.Has_Marked .dijitTreeLabel {
|
||||
|
|
|
@ -899,12 +899,14 @@ body.ttrss_main .dijitTooltipBelow .dijitTooltipConnector {
|
|||
body.ttrss_main .dijitTooltipAbove .dijitTooltipConnector {
|
||||
border-top-color: #d29745;
|
||||
}
|
||||
body.ttrss_main .dijitDialog h1:first-of-type,
|
||||
body.ttrss_main .dijitDialog h2:first-of-type,
|
||||
body.ttrss_main .dijitDialog h3:first-of-type,
|
||||
body.ttrss_main .dijitDialog h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
/*body.ttrss_main .dijitDialog {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type,
|
||||
h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree .dijitTreeRow.Has_Marked .dijitTreeLabel {
|
||||
color: #b87d2c;
|
||||
}
|
||||
|
@ -1414,6 +1416,13 @@ body.ttrss_prefs {
|
|||
background-color: #222;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
/*.dijitContentPane {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
body.ttrss_prefs h1,
|
||||
body.ttrss_prefs h2,
|
||||
|
@ -1423,11 +1432,6 @@ body.ttrss_prefs h4 {
|
|||
font-weight: 600;
|
||||
color: #ccc;
|
||||
}
|
||||
body.ttrss_prefs .dijitContentPane h1:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h2:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
body.ttrss_prefs #footer,
|
||||
body.ttrss_prefs #header {
|
||||
padding: 8px;
|
||||
|
|
|
@ -899,12 +899,14 @@ body.ttrss_main .dijitTooltipBelow .dijitTooltipConnector {
|
|||
body.ttrss_main .dijitTooltipAbove .dijitTooltipConnector {
|
||||
border-top-color: #2e99d1;
|
||||
}
|
||||
body.ttrss_main .dijitDialog h1:first-of-type,
|
||||
body.ttrss_main .dijitDialog h2:first-of-type,
|
||||
body.ttrss_main .dijitDialog h3:first-of-type,
|
||||
body.ttrss_main .dijitDialog h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
/*body.ttrss_main .dijitDialog {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type,
|
||||
h4:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree .dijitTreeRow.Has_Marked .dijitTreeLabel {
|
||||
color: #257aa7;
|
||||
}
|
||||
|
@ -1414,6 +1416,13 @@ body.ttrss_prefs {
|
|||
background-color: #222;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
/*.dijitContentPane {
|
||||
h1:first-of-type,
|
||||
h2:first-of-type,
|
||||
h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
body.ttrss_prefs h1,
|
||||
body.ttrss_prefs h2,
|
||||
|
@ -1423,11 +1432,6 @@ body.ttrss_prefs h4 {
|
|||
font-weight: 600;
|
||||
color: #ccc;
|
||||
}
|
||||
body.ttrss_prefs .dijitContentPane h1:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h2:first-of-type,
|
||||
body.ttrss_prefs .dijitContentPane h3:first-of-type {
|
||||
margin-top: 0px;
|
||||
}
|
||||
body.ttrss_prefs #footer,
|
||||
body.ttrss_prefs #header {
|
||||
padding: 8px;
|
||||
|
|
Loading…
Reference in New Issue