support for feed http auth

This commit is contained in:
Andrew Dolgov 2005-12-16 08:15:18 +01:00
parent 855d0ecfda
commit 47c6c988d9
4 changed files with 121 additions and 71 deletions

View File

@ -1425,8 +1425,8 @@
if ($op == "pref-feeds") {
$subop = $_GET["subop"];
$quiet = $_GET["quiet"];
$subop = $_REQUEST["subop"];
$quiet = $_REQUEST["quiet"];
if ($subop == "editfeed") {
$feed_id = db_escape_string($_GET["id"]);
@ -1513,6 +1513,22 @@
print "<td><input id=\"iedit_purgintl\"
value=\"$purge_interval\"></td></tr>";
// print "<tr><td colspan=\"2\"><b>Authentication</b></td></tr>";
$row_class = toggleEvenOdd($row_class);
$auth_login = db_fetch_result($result, 0, "auth_login");
print "<tr class='$row_class'><td>Login:</td>";
print "<td><input id=\"iedit_login\"
value=\"$auth_login\"></td></tr>";
$row_class = toggleEvenOdd($row_class);
$auth_pass = db_fetch_result($result, 0, "auth_pass");
print "<tr class='$row_class'><td>Password:</td>";
print "<td><input type=\"password\" id=\"iedit_pass\"
value=\"$auth_pass\"></td></tr>";
print "</table>";
print "</div>";
@ -1525,12 +1541,14 @@
}
if ($subop == "editSave") {
$feed_title = db_escape_string($_GET["t"]);
$feed_link = db_escape_string($_GET["l"]);
$upd_intl = db_escape_string($_GET["ui"]);
$purge_intl = db_escape_string($_GET["pi"]);
$feed_id = db_escape_string($_GET["id"]);
$cat_id = db_escape_string($_GET["catid"]);
$feed_title = db_escape_string($_POST["t"]);
$feed_link = db_escape_string($_POST["l"]);
$upd_intl = db_escape_string($_POST["ui"]);
$purge_intl = db_escape_string($_POST["pi"]);
$feed_id = db_escape_string($_POST["id"]);
$cat_id = db_escape_string($_POST["catid"]);
$auth_login = db_escape_string($_POST["login"]);
$auth_pass = db_escape_string($_POST["pass"]);
if (strtoupper($upd_intl) == "DEFAULT")
$upd_intl = 0;
@ -1554,7 +1572,9 @@
$category_qpart,
title = '$feed_title', feed_url = '$feed_link',
update_interval = '$upd_intl',
purge_interval = '$purge_intl'
purge_interval = '$purge_intl',
auth_login = '$auth_login',
auth_pass = '$auth_pass'
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
}

View File

@ -169,17 +169,31 @@
return;
}
$result = db_query($link, "SELECT update_interval
$result = db_query($link, "SELECT update_interval,auth_login,auth_pass
FROM ttrss_feeds WHERE id = '$feed'");
$auth_login = db_fetch_result($result, 0, "auth_login");
$auth_pass = db_fetch_result($result, 0, "auth_pass");
$update_interval = db_fetch_result($result, 0, "update_interval");
if ($update_interval < 0) { return; }
$feed = db_escape_string($feed);
$fetch_url = $feed_url;
if ($auth_login && $auth_pass) {
$url_parts = array();
preg_match("/(^[^:]*):\/\/(.*)/", $fetch_url, $url_parts);
if ($url_parts[1] && $url_parts[2]) {
$fetch_url = $url_parts[1] . "://$auth_login:$auth_pass@" . $url_parts[2];
}
}
error_reporting(0);
$rss = fetch_rss($feed_url);
$rss = fetch_rss($fetch_url);
error_reporting (DEFAULT_ERROR_LEVEL);

134
prefs.js
View File

@ -29,21 +29,25 @@ if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
function feedlist_callback() {
if (xmlhttp.readyState == 4) {
var container = document.getElementById('prefContent');
container.innerHTML=xmlhttp.responseText;
if (active_feed) {
var row = document.getElementById("FEEDR-" + active_feed);
if (row) {
if (!row.className.match("Selected")) {
row.className = row.className + "Selected";
}
}
var checkbox = document.getElementById("FRCHK-" + active_feed);
if (checkbox) {
checkbox.checked = true;
try {
var container = document.getElementById('prefContent');
container.innerHTML=xmlhttp.responseText;
if (active_feed) {
var row = document.getElementById("FEEDR-" + active_feed);
if (row) {
if (!row.className.match("Selected")) {
row.className = row.className + "Selected";
}
}
var checkbox = document.getElementById("FRCHK-" + active_feed);
if (checkbox) {
checkbox.checked = true;
}
}
p_notify("");
} catch (e) {
exception_error("feedlist_callback", e);
}
p_notify("");
}
}
@ -654,54 +658,66 @@ function feedCatEditCancel() {
function feedEditSave() {
var feed = active_feed;
try {
if (!xmlhttp_ready(xmlhttp)) {
printLockingError();
return
var feed = active_feed;
if (!xmlhttp_ready(xmlhttp)) {
printLockingError();
return
}
var link = document.getElementById("iedit_link").value;
var title = document.getElementById("iedit_title").value;
var upd_intl = document.getElementById("iedit_updintl").value;
var purge_intl = document.getElementById("iedit_purgintl").value;
var fcat = document.getElementById("iedit_fcat");
var fcat_id = fcat[fcat.selectedIndex].id;
// notify("Saving feed.");
/* if (upd_intl < 0) {
notify("Update interval must be &gt;= 0 (0 = default)");
return;
}
if (purge_intl < 0) {
notify("Purge days must be &gt;= 0 (0 = default)");
return;
} */
if (link.length == 0) {
notify("Feed link cannot be blank.");
return;
}
if (title.length == 0) {
notify("Feed title cannot be blank.");
return;
}
var auth_login = document.getElementById("iedit_login").value;
var auth_pass = document.getElementById("iedit_pass").value;
active_feed = false;
notify("Saving feed...");
var query = "op=pref-feeds&subop=editSave&id=" +
feed + "&l=" + param_escape(link) + "&t=" + param_escape(title) +
"&ui=" + param_escape(upd_intl) + "&pi=" + param_escape(purge_intl) +
"&catid=" + param_escape(fcat_id) + "&login=" + param_escape(auth_login) +
"&pass=" + param_escape(auth_pass);
xmlhttp.open("POST", "backend.php", true);
xmlhttp.onreadystatechange=feedlist_callback;
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(query);
} catch (e) {
exception_error("feedEditSave", e);
}
var link = document.getElementById("iedit_link").value;
var title = document.getElementById("iedit_title").value;
var upd_intl = document.getElementById("iedit_updintl").value;
var purge_intl = document.getElementById("iedit_purgintl").value;
var fcat = document.getElementById("iedit_fcat");
var fcat_id = fcat[fcat.selectedIndex].id;
// notify("Saving feed.");
/* if (upd_intl < 0) {
notify("Update interval must be &gt;= 0 (0 = default)");
return;
}
if (purge_intl < 0) {
notify("Purge days must be &gt;= 0 (0 = default)");
return;
} */
if (link.length == 0) {
notify("Feed link cannot be blank.");
return;
}
if (title.length == 0) {
notify("Feed title cannot be blank.");
return;
}
active_feed = false;
notify("Saving feed...");
xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editSave&id=" +
feed + "&l=" + param_escape(link) + "&t=" + param_escape(title) +
"&ui=" + param_escape(upd_intl) + "&pi=" + param_escape(purge_intl) +
"&catid=" + param_escape(fcat_id), true);
xmlhttp.onreadystatechange=feedlist_callback;
xmlhttp.send(null);
}
function feedCatEditSave() {

View File

@ -311,7 +311,7 @@ a:hover {
#iedit_title, #iedit_link, #iedit_regexp, #iedit_descr, #iedit_expr, #iedit_updintl,
#iedit_purgintl, #iedit_ulogin, #iedit_ulevel, #iedit_match, #iedit_feed,
#iedit_fcat, #iedit_filter_action {
#iedit_fcat, #iedit_filter_action, #iedit_login, #iedit_pass {
width : 100%;
padding-left : 2px;
}