summaryrefslogtreecommitdiff
path: root/classes/rssutils.php
diff options
context:
space:
mode:
authorwn_ <[email protected]>2021-03-17 01:36:58 +0000
committerwn_ <[email protected]>2021-03-17 01:51:32 +0000
commit401b22666df5c88fc5526779f253e06cbfb631fd (patch)
tree80a14104fdd4b9bf6c109e71fcc38f5ee825c0ea /classes/rssutils.php
parent0f5fd9ea13f9881698fd29333aa3e5f4acbf7bd3 (diff)
Switch 'RSSUtils::update_basic_info' to ORM
Diffstat (limited to 'classes/rssutils.php')
-rwxr-xr-xclasses/rssutils.php70
1 files changed, 25 insertions, 45 deletions
diff --git a/classes/rssutils.php b/classes/rssutils.php
index d797838ba..278c3fd7d 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -269,40 +269,33 @@ class RSSUtils {
return $nf;
}
- /** this is used when subscribing; TODO: update to ORM */
- static function update_basic_info(int $feed) {
-
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT owner_uid,feed_url,auth_pass,auth_login
- FROM ttrss_feeds WHERE id = ?");
- $sth->execute([$feed]);
-
- if ($row = $sth->fetch()) {
-
- $owner_uid = $row["owner_uid"];
- $auth_login = $row["auth_login"];
- $auth_pass = $row["auth_pass"];
- $fetch_url = $row["feed_url"];
+ /** this is used when subscribing */
+ static function update_basic_info(int $feed_id) {
+ $feed = ORM::for_table('ttrss_feeds')
+ ->select_many('id', 'owner_uid', 'feed_url', 'auth_pass', 'auth_login', 'title', 'site_url')
+ ->find_one($feed_id);
+ if ($feed) {
$pluginhost = new PluginHost();
- $user_plugins = get_pref(Prefs::_ENABLED_PLUGINS, $owner_uid);
+ $user_plugins = get_pref(Prefs::_ENABLED_PLUGINS, $feed->owner_uid);
$pluginhost->load(Config::get(Config::PLUGINS), PluginHost::KIND_ALL);
- $pluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $owner_uid);
+ $pluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $feed->owner_uid);
//$pluginhost->load_data();
$basic_info = [];
$pluginhost->run_hooks_callback(PluginHost::HOOK_FEED_BASIC_INFO, function ($result) use (&$basic_info) {
$basic_info = $result;
- }, $basic_info, $fetch_url, $owner_uid, $feed, $auth_login, $auth_pass);
+ }, $basic_info, $feed->feed_url, $feed->owner_uid, $feed_id, $feed->auth_login, $feed->auth_pass);
if (!$basic_info) {
- $feed_data = UrlHelper::fetch($fetch_url, false,
- $auth_login, $auth_pass, false,
- Config::get(Config::FEED_FETCH_TIMEOUT),
- 0);
+ $feed_data = UrlHelper::fetch([
+ 'url' => $feed->feed_url,
+ 'login' => $feed->auth_login,
+ 'pass' => $feed->auth_pass,
+ 'timeout' => Config::get(Config::FEED_FETCH_TIMEOUT),
+ ]);
$feed_data = trim($feed_data);
@@ -310,36 +303,23 @@ class RSSUtils {
$rss->init();
if (!$rss->error()) {
- $basic_info = array(
+ $basic_info = [
'title' => mb_substr(clean($rss->get_title()), 0, 199),
- 'site_url' => mb_substr(rewrite_relative_url($fetch_url, clean($rss->get_link())), 0, 245)
- );
+ 'site_url' => mb_substr(UrlHelper::rewrite_relative($feed->feed_url, clean($rss->get_link())), 0, 245),
+ ];
}
}
if ($basic_info && is_array($basic_info)) {
- $sth = $pdo->prepare("SELECT title, site_url FROM ttrss_feeds WHERE id = ?");
- $sth->execute([$feed]);
-
- if ($row = $sth->fetch()) {
-
- $registered_title = $row["title"];
- $orig_site_url = $row["site_url"];
-
- if ($basic_info['title'] && (!$registered_title || $registered_title == "[Unknown]")) {
-
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET
- title = ? WHERE id = ?");
- $sth->execute([$basic_info['title'], $feed]);
- }
-
- if ($basic_info['site_url'] && $orig_site_url != $basic_info['site_url']) {
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET
- site_url = ? WHERE id = ?");
- $sth->execute([$basic_info['site_url'], $feed]);
- }
+ if (!empty($basic_info['title']) && (!$feed->title || $feed->title == '[Unknown]')) {
+ $feed->title = $basic_info['title'];
+ }
+ if (!empty($basic_info['site_url']) && $feed->site_url != $basic_info['site_url']) {
+ $feed->site_url = $basic_info['site_url'];
}
+
+ $feed->save();
}
}
}