mirror of
https://github.com/wallabag/wallabag.git
synced 2024-12-20 22:56:30 +00:00
[add] atom feeds for unread / fav items
This commit is contained in:
parent
5846b0f1b3
commit
72c20a5297
3 changed files with 68 additions and 0 deletions
|
@ -412,6 +412,7 @@ class Poche
|
||||||
$compare_prod = version_compare(POCHE, $prod);
|
$compare_prod = version_compare(POCHE, $prod);
|
||||||
$themes = $this->getInstalledThemes();
|
$themes = $this->getInstalledThemes();
|
||||||
$languages = $this->getInstalledLanguages();
|
$languages = $this->getInstalledLanguages();
|
||||||
|
$token = $this->user->getConfigValue('token');
|
||||||
$http_auth = (isset($_SERVER['PHP_AUTH_USER']))?true:false;
|
$http_auth = (isset($_SERVER['PHP_AUTH_USER']))?true:false;
|
||||||
$tpl_vars = array(
|
$tpl_vars = array(
|
||||||
'themes' => $themes,
|
'themes' => $themes,
|
||||||
|
@ -420,6 +421,8 @@ class Poche
|
||||||
'prod' => $prod,
|
'prod' => $prod,
|
||||||
'compare_dev' => $compare_dev,
|
'compare_dev' => $compare_dev,
|
||||||
'compare_prod' => $compare_prod,
|
'compare_prod' => $compare_prod,
|
||||||
|
'token' => $token,
|
||||||
|
'user_id' => $this->user->getId(),
|
||||||
'http_auth' => $http_auth,
|
'http_auth' => $http_auth,
|
||||||
);
|
);
|
||||||
Tools::logm('config view');
|
Tools::logm('config view');
|
||||||
|
@ -837,4 +840,52 @@ class Poche
|
||||||
}
|
}
|
||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function generateToken()
|
||||||
|
{
|
||||||
|
if (ini_get('open_basedir') === '') {
|
||||||
|
$token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->store->updateUserConfig($this->user->getId(), 'token', $token);
|
||||||
|
$currentConfig = $_SESSION['poche_user']->config;
|
||||||
|
$currentConfig['token'] = $token;
|
||||||
|
$_SESSION['poche_user']->setConfig($currentConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function generateFeeds($token, $user_id, $type = 'home')
|
||||||
|
{
|
||||||
|
$allowed_types = array('home', 'fav');
|
||||||
|
$config = $this->store->getConfigUser($user_id);
|
||||||
|
|
||||||
|
if (!in_array($type, $allowed_types) ||
|
||||||
|
$token != $config['token']) {
|
||||||
|
die(_('Uh, there is a problem while generating feeds.'));
|
||||||
|
}
|
||||||
|
// Check the token
|
||||||
|
|
||||||
|
$feed = new FeedWriter(ATOM);
|
||||||
|
$feed->setTitle('poche - ' . $type . ' feed');
|
||||||
|
$feed->setLink(Tools::getPocheUrl());
|
||||||
|
$feed->setChannelElement('updated', date(DATE_ATOM , time()));
|
||||||
|
$feed->setChannelElement('author', 'poche');
|
||||||
|
|
||||||
|
$entries = $this->store->getEntriesByView($type, $user_id);
|
||||||
|
if (count($entries) > 0) {
|
||||||
|
foreach ($entries as $entry) {
|
||||||
|
$newItem = $feed->createNewItem();
|
||||||
|
$newItem->setTitle(htmlentities($entry['title']));
|
||||||
|
$newItem->setLink(Tools::getPocheUrl() . '?view=view&id=' . $entry['id']);
|
||||||
|
$newItem->setDate(time());
|
||||||
|
$newItem->setDescription($entry['content']);
|
||||||
|
$feed->addItem($newItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$feed->genarateFeed();
|
||||||
|
exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,13 @@ if (isset($_GET['login'])) {
|
||||||
$poche->updateTheme();
|
$poche->updateTheme();
|
||||||
} elseif (isset($_GET['updatelanguage'])) {
|
} elseif (isset($_GET['updatelanguage'])) {
|
||||||
$poche->updateLanguage();
|
$poche->updateLanguage();
|
||||||
|
} elseif (isset($_GET['feed'])) {
|
||||||
|
if ($_GET['action'] == 'generate') {
|
||||||
|
$poche->generateToken();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$poche->generateFeeds($_GET['token'], $_GET['user_id'], $_GET['type']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elseif (isset($_GET['plainurl']) && !empty($_GET['plainurl'])) {
|
elseif (isset($_GET['plainurl']) && !empty($_GET['plainurl'])) {
|
||||||
|
|
|
@ -29,6 +29,16 @@
|
||||||
{% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent development version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>{% endif %}
|
{% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent development version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2>{% trans "Feeds" %}</h2>
|
||||||
|
{% if token == '' %}
|
||||||
|
<p>{% trans "The token is empty, you have to generate it to use feeds. Click <a href='?feed&action=generate'>here to generate it</a>." %}</p>
|
||||||
|
{% else %}
|
||||||
|
<ul>
|
||||||
|
<li><a href="?feed&type=home&user_id={{ user_id }}&token={{ token }}" target="_blank">{% trans "unread feed" %}</a></li>
|
||||||
|
<li><a href="?feed&type=fav&user_id={{ user_id }}&token={{ token }}" target="_blank">{% trans "favorites feed" %}</a></li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<h2>{% trans "Change your theme" %}</h2>
|
<h2>{% trans "Change your theme" %}</h2>
|
||||||
<form method="post" action="?updatetheme" name="changethemeform">
|
<form method="post" action="?updatetheme" name="changethemeform">
|
||||||
<fieldset class="w500p">
|
<fieldset class="w500p">
|
||||||
|
|
Loading…
Reference in a new issue