improve image-proxy
- use passthrough mode for image proxy (fixes #295) - add image proxy when rendering an article (fixes #314) - add referrer cloaking option to feed options (fixes #319)
This commit is contained in:
parent
e1d0de8054
commit
f3e9b4d9b5
@ -74,12 +74,6 @@ Router\get_action('more', function() {
|
|||||||
|
|
||||||
// Image proxy (avoid SSL mixed content warnings)
|
// Image proxy (avoid SSL mixed content warnings)
|
||||||
Router\get_action('proxy', function() {
|
Router\get_action('proxy', function() {
|
||||||
list($content, $type) = Model\Proxy\download(rawurldecode(Request\param('url')));
|
Model\Proxy\download(rawurldecode(Request\param('url')));
|
||||||
|
exit;
|
||||||
if (empty($content)) {
|
|
||||||
Response\text('Not Found', 404);
|
|
||||||
}
|
|
||||||
|
|
||||||
Response\content_type($type);
|
|
||||||
Response\raw($content);
|
|
||||||
});
|
});
|
||||||
|
@ -158,9 +158,9 @@ Router\action('subscribe', function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$values += array('download_content' => 0, 'rtl' => 0);
|
$values += array('download_content' => 0, 'rtl' => 0, 'cloak_referrer' => 0);
|
||||||
$url = trim($url);
|
$url = trim($url);
|
||||||
$feed_id = Model\Feed\create($url, $values['download_content'], $values['rtl']);
|
$feed_id = Model\Feed\create($url, $values['download_content'], $values['rtl'], $values['cloak_referrer']);
|
||||||
|
|
||||||
if ($feed_id) {
|
if ($feed_id) {
|
||||||
Session\flash(t('Subscription added successfully.'));
|
Session\flash(t('Subscription added successfully.'));
|
||||||
|
@ -66,6 +66,15 @@ Router\get_action('show', function() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$image_proxy = Model\Config\get('image_proxy');
|
||||||
|
|
||||||
|
// add the image proxy if requested and required
|
||||||
|
$item['content'] = Model\Proxy\addProxyToTags($item['content'], $item['url'], $image_proxy, $feed['cloak_referrer']);
|
||||||
|
|
||||||
|
if ($image_proxy && strpos($item['enclosure_type'], 'image') === 0) {
|
||||||
|
$item['enclosure'] = Model\Proxy\addProxyToLink($item['enclosure']);
|
||||||
|
}
|
||||||
|
|
||||||
Response\html(Template\layout('show_item', array(
|
Response\html(Template\layout('show_item', array(
|
||||||
'nb_unread_items' => $nb_unread_items = Model\Item\count_by_status('unread'),
|
'nb_unread_items' => $nb_unread_items = Model\Item\count_by_status('unread'),
|
||||||
'item' => $item,
|
'item' => $item,
|
||||||
@ -73,7 +82,6 @@ Router\get_action('show', function() {
|
|||||||
'item_nav' => isset($nav) ? $nav : null,
|
'item_nav' => isset($nav) ? $nav : null,
|
||||||
'menu' => $menu,
|
'menu' => $menu,
|
||||||
'title' => $item['title'],
|
'title' => $item['title'],
|
||||||
'image_proxy_enabled' => (bool) Model\Config\get('image_proxy'),
|
|
||||||
)));
|
)));
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -107,8 +115,15 @@ Router\get_action('feed-items', function() {
|
|||||||
|
|
||||||
// Ajax call to download an item (fetch the full content from the original website)
|
// Ajax call to download an item (fetch the full content from the original website)
|
||||||
Router\post_action('download-item', function() {
|
Router\post_action('download-item', function() {
|
||||||
|
$id = Request\param('id');
|
||||||
|
|
||||||
Response\json(Model\Item\download_content_id(Request\param('id')));
|
$item = Model\Item\get($id);
|
||||||
|
$feed = Model\Feed\get($item['feed_id']);
|
||||||
|
|
||||||
|
$download = Model\Item\download_content_id($id);
|
||||||
|
$download['content'] = Model\Proxy\addProxyToTags($download['content'], $item['url'], Model\Config\get('image_proxy'), $feed['cloak_referrer']);
|
||||||
|
|
||||||
|
Response\json($download);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Ajax call change item status
|
// Ajax call change item status
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
||||||
// 'Enable debug mode' => '',
|
// 'Enable debug mode' => '',
|
||||||
// 'Original link marks article as read' => '',
|
// 'Original link marks article as read' => '',
|
||||||
|
// 'Cloak the image referrer' => '',
|
||||||
);
|
);
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
||||||
// 'Enable debug mode' => '',
|
// 'Enable debug mode' => '',
|
||||||
// 'Original link marks article as read' => '',
|
// 'Original link marks article as read' => '',
|
||||||
|
// 'Cloak the image referrer' => '',
|
||||||
);
|
);
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
||||||
// 'Enable debug mode' => '',
|
// 'Enable debug mode' => '',
|
||||||
// 'Original link marks article as read' => '',
|
// 'Original link marks article as read' => '',
|
||||||
|
// 'Cloak the image referrer' => '',
|
||||||
);
|
);
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
'Nothing to show. Enable the debug mode to see log messages.' => 'Rien à montrer. Activez le mode debug pour voir les messages de log.',
|
'Nothing to show. Enable the debug mode to see log messages.' => 'Rien à montrer. Activez le mode debug pour voir les messages de log.',
|
||||||
'Enable debug mode' => 'Activer le mode debug',
|
'Enable debug mode' => 'Activer le mode debug',
|
||||||
'Original link marks article as read' => 'Marquer les articles comme lu lors d\'un clic sur le lien original',
|
'Original link marks article as read' => 'Marquer les articles comme lu lors d\'un clic sur le lien original',
|
||||||
|
'Cloak the image referrer' => 'Cloak the image referrer',
|
||||||
);
|
);
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
||||||
// 'Enable debug mode' => '',
|
// 'Enable debug mode' => '',
|
||||||
// 'Original link marks article as read' => '',
|
// 'Original link marks article as read' => '',
|
||||||
|
// 'Cloak the image referrer' => '',
|
||||||
);
|
);
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
||||||
// 'Enable debug mode' => '',
|
// 'Enable debug mode' => '',
|
||||||
// 'Original link marks article as read' => '',
|
// 'Original link marks article as read' => '',
|
||||||
|
// 'Cloak the image referrer' => '',
|
||||||
);
|
);
|
||||||
|
@ -235,4 +235,5 @@ return array(
|
|||||||
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
// 'Nothing to show. Enable the debug mode to see log messages.' => '',
|
||||||
// 'Enable debug mode' => '',
|
// 'Enable debug mode' => '',
|
||||||
// 'Original link marks article as read' => '',
|
// 'Original link marks article as read' => '',
|
||||||
|
// 'Cloak the image referrer' => '',
|
||||||
);
|
);
|
||||||
|
@ -32,10 +32,6 @@ function get_reader_config()
|
|||||||
// Filter
|
// Filter
|
||||||
$config->setFilterIframeWhitelist(get_iframe_whitelist());
|
$config->setFilterIframeWhitelist(get_iframe_whitelist());
|
||||||
|
|
||||||
if ((bool) get('image_proxy')) {
|
|
||||||
$config->setFilterImageProxyUrl('?action=proxy&url=%s');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((bool) get('debug_mode')) {
|
if ((bool) get('debug_mode')) {
|
||||||
Logger::enable();
|
Logger::enable();
|
||||||
}
|
}
|
||||||
|
@ -102,6 +102,7 @@ function update(array $values)
|
|||||||
'enabled' => empty($values['enabled']) ? 0 : $values['enabled'],
|
'enabled' => empty($values['enabled']) ? 0 : $values['enabled'],
|
||||||
'rtl' => empty($values['rtl']) ? 0 : $values['rtl'],
|
'rtl' => empty($values['rtl']) ? 0 : $values['rtl'],
|
||||||
'download_content' => empty($values['download_content']) ? 0 : $values['download_content'],
|
'download_content' => empty($values['download_content']) ? 0 : $values['download_content'],
|
||||||
|
'cloak_referrer' => empty($values['cloak_referrer']) ? 0 : $values['cloak_referrer'],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +149,7 @@ function import_opml($content)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add a new feed from an URL
|
// Add a new feed from an URL
|
||||||
function create($url, $enable_grabber = false, $force_rtl = false)
|
function create($url, $enable_grabber = false, $force_rtl = false, $cloak_referrer = false)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$db = Database::get('db');
|
$db = Database::get('db');
|
||||||
@ -185,6 +186,7 @@ function create($url, $enable_grabber = false, $force_rtl = false)
|
|||||||
'last_modified' => $resource->getLastModified(),
|
'last_modified' => $resource->getLastModified(),
|
||||||
'last_checked' => time(),
|
'last_checked' => time(),
|
||||||
'etag' => $resource->getEtag(),
|
'etag' => $resource->getEtag(),
|
||||||
|
'cloak_referrer' => $cloak_referrer ? 1 : 0,
|
||||||
));
|
));
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
|
@ -3,26 +3,61 @@
|
|||||||
namespace Model\Proxy;
|
namespace Model\Proxy;
|
||||||
|
|
||||||
use Model\Config;
|
use Model\Config;
|
||||||
|
use PicoFeed\Config\Config as PicoFeedConfig;
|
||||||
|
use PicoFeed\Filter\Filter;
|
||||||
use PicoFeed\Client\Client;
|
use PicoFeed\Client\Client;
|
||||||
use PicoFeed\Client\ClientException;
|
|
||||||
|
function isSecureConnection()
|
||||||
|
{
|
||||||
|
return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addProxyToLink($link) {
|
||||||
|
|
||||||
|
if (isSecureConnection() && strpos($link, 'http:') === 0) {
|
||||||
|
$link = '?action=proxy&url='.urlencode($link);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $link;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addProxyToTags($html, $website, $proxy_images, $cloak_referrer)
|
||||||
|
{
|
||||||
|
if ($html === '' // no content, no proxy
|
||||||
|
|| (! $cloak_referrer && ! $proxy_images) // neither cloaking nor proxing enabled
|
||||||
|
|| (! $cloak_referrer && $proxy_images && ! isSecureConnection())) { // only proxy enabled, but not connected via HTTPS
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
$config = new PicoFeedConfig();
|
||||||
|
$config->setFilterImageProxyUrl('?action=proxy&url=%s');
|
||||||
|
|
||||||
|
if (! $cloak_referrer && $proxy_images) {
|
||||||
|
// image proxy mode only: https links do not need to be proxied, since
|
||||||
|
// they do not trigger mixed content warnings.
|
||||||
|
$config->setFilterImageProxyProtocol('http');
|
||||||
|
}
|
||||||
|
elseif (! $proxy_images && $cloak_referrer && isSecureConnection() ) {
|
||||||
|
// cloaking mode only: if a request from a HTTPS connection to a HTTP
|
||||||
|
// connection is made, the referrer will be omitted by the browser.
|
||||||
|
// Only the referrer for HTTPS to HTTPs requests needs to be cloaked.
|
||||||
|
$config->setFilterImageProxyProtocol('https');
|
||||||
|
}
|
||||||
|
|
||||||
|
$filter = Filter::html($html, $website);
|
||||||
|
$filter->setConfig($config);
|
||||||
|
|
||||||
|
return $filter->execute();
|
||||||
|
}
|
||||||
|
|
||||||
function download($url)
|
function download($url)
|
||||||
{
|
{
|
||||||
try {
|
$client = Client::getInstance();
|
||||||
$client = Client::getInstance();
|
$client->setUserAgent(Config\HTTP_USER_AGENT);
|
||||||
$client->setUserAgent(Config\HTTP_USER_AGENT);
|
$client->enablePassthroughMode();
|
||||||
$client->execute($url);
|
$client->execute($url);
|
||||||
|
|
||||||
$content = array(
|
|
||||||
$client->getContent(),
|
|
||||||
$client->getContentType(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
catch (ClientException $e) {
|
|
||||||
$content = array(false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// does not work
|
||||||
Config\write_debug();
|
Config\write_debug();
|
||||||
|
|
||||||
return $content;
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,12 @@ namespace Schema;
|
|||||||
use PDO;
|
use PDO;
|
||||||
use Model\Config;
|
use Model\Config;
|
||||||
|
|
||||||
const VERSION = 38;
|
const VERSION = 39;
|
||||||
|
|
||||||
|
function version_39($pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE feeds ADD COLUMN cloak_referrer INTEGER DEFAULT 0');
|
||||||
|
}
|
||||||
|
|
||||||
function version_38($pdo)
|
function version_38($pdo)
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
<?= Helper\form_checkbox('rtl', t('Force RTL mode (Right-to-left language)'), 1, isset($values['rtl']) ? $values['rtl'] : false) ?><br/>
|
<?= Helper\form_checkbox('rtl', t('Force RTL mode (Right-to-left language)'), 1, isset($values['rtl']) ? $values['rtl'] : false) ?><br/>
|
||||||
<?= Helper\form_checkbox('download_content', t('Download full content'), 1, isset($values['download_content']) ? $values['download_content'] : false) ?><br/>
|
<?= Helper\form_checkbox('download_content', t('Download full content'), 1, isset($values['download_content']) ? $values['download_content'] : false) ?><br/>
|
||||||
|
<?= Helper\form_checkbox('cloak_referrer', t('Cloak the image referrer'), 1, isset($values['cloak_referrer']) ? $values['cloak_referrer'] : false) ?><br />
|
||||||
|
|
||||||
<p class="form-help"><?= t('Downloading full content is slower because Miniflux grab the content from the original website. You should use that for subscriptions that display only a summary. This feature doesn\'t work with all websites.') ?></p>
|
<p class="form-help"><?= t('Downloading full content is slower because Miniflux grab the content from the original website. You should use that for subscriptions that display only a summary. This feature doesn\'t work with all websites.') ?></p>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
<?= Helper\form_checkbox('download_content', t('Download full content'), 1, isset($values['download_content']) ? $values['download_content'] : false) ?><br />
|
<?= Helper\form_checkbox('download_content', t('Download full content'), 1, isset($values['download_content']) ? $values['download_content'] : false) ?><br />
|
||||||
|
|
||||||
|
<?= Helper\form_checkbox('cloak_referrer', t('Cloak the image referrer'), 1, isset($values['cloak_referrer']) ? $values['cloak_referrer'] : false) ?><br />
|
||||||
|
|
||||||
<?= Helper\form_checkbox('enabled', t('Activated'), 1, isset($values['enabled']) ? $values['enabled'] : false) ?>
|
<?= Helper\form_checkbox('enabled', t('Activated'), 1, isset($values['enabled']) ? $values['enabled'] : false) ?>
|
||||||
|
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
|
@ -81,11 +81,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<?php elseif (strpos($item['enclosure_type'], 'image') !== false && $item['content'] === ''): ?>
|
<?php elseif (strpos($item['enclosure_type'], 'image') !== false && $item['content'] === ''): ?>
|
||||||
<div id="item-content-enclosure">
|
<div id="item-content-enclosure">
|
||||||
<?php if ($image_proxy_enabled): ?>
|
<img src="<?= $item['enclosure'] ?>" alt="enclosure"/>
|
||||||
<img src="?action=proxy&url=<?= urlencode($item['enclosure']) ?>" alt="enclosure"/>
|
|
||||||
<?php else: ?>
|
|
||||||
<img src="<?= $item['enclosure'] ?>" alt="enclosure"/>
|
|
||||||
<?php endif ?>
|
|
||||||
</div>
|
</div>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://miniflux.net/</value>
|
<value>http://miniflux.net/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<value>https://github.com/fguillot/miniflux/commits/master</value>
|
<value>https://github.com/fguillot/miniflux/commits/master</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
</table>
|
</table>
|
||||||
<table name="items">
|
<table name="items">
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<column>download_content</column>
|
<column>download_content</column>
|
||||||
<column>parsing_error</column>
|
<column>parsing_error</column>
|
||||||
<column>rtl</column>
|
<column>rtl</column>
|
||||||
|
<column>cloak_referrer</column>
|
||||||
<row>
|
<row>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
<value>http://www.01net.com/actus/</value>
|
<value>http://www.01net.com/actus/</value>
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
|
Loading…
Reference in New Issue
Block a user