aboutsummaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2024-10-14 09:34:16 +0200
committerGravatar GitHub <noreply@github.com> 2024-10-14 09:34:16 +0200
commit256dcc21bb222184d5e917ea57cec334b74b96f4 (patch)
tree89455b225b6fb2f00b98cead6d5450282c4cc6ce /app/views
parent40c4d798f0decf2d49005277c6d3a3d0e39bedfd (diff)
New unicity policies for feeds with bad GUIDs (#4487)
New set of unicity criteria options. New tolerance heuristic: > `$invalidGuidsTolerance` (default 0.05) The maximum ratio (rounded) of invalid GUIDs to tolerate before degrading the unicity criteria. > Example for 0.05 (5% rounded): tolerate 0 invalid GUIDs for up to 9 articles, 1 for 10, 2 for 30, 3 for 50, 4 for 70, 5 for 90, 6 for 110, etc. > The default value of 5% rounded was chosen to allow 1 invalid GUID for feeds of 10 articles, which is a frequently observed amount of articles.
Diffstat (limited to 'app/views')
-rw-r--r--app/views/helpers/feed/update.phtml24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml
index 780e9667a..001c04131 100644
--- a/app/views/helpers/feed/update.phtml
+++ b/app/views/helpers/feed/update.phtml
@@ -101,6 +101,30 @@
</div>
<div class="form-group">
+ <label class="group-name" for="unicityCriteria"><?= _t('sub.feed.unicityCriteria') ?></label>
+ <?php
+ $unicityCriteria = $this->feed->attributeString('unicityCriteria');
+ if ($this->feed->attributeBoolean('hasBadGuids')) { // Legacy
+ $unicityCriteria = 'link';
+ }
+ ?>
+ <div class="group-controls">
+ <select class="w50" name="unicityCriteria" id="unicityCriteria" required="required">
+ <option value="id" <?= $unicityCriteria == null ? 'selected="selected"' : '' ?>><?= _t('sub.feed.unicityCriteria.id') ?></option>
+ <option value="link" <?= $unicityCriteria === 'link' ? 'selected="selected"' : '' ?>><?= _t('sub.feed.unicityCriteria.link') ?></option>
+ <option value="sha1:link_published" <?= $unicityCriteria === 'sha1:link_published' ? 'selected="selected"' : '' ?>><?= _t('sub.feed.unicityCriteria.sha1:link_published') ?></option>
+ <option value="sha1:link_published_title" <?= $unicityCriteria === 'sha1:link_published_title' ? 'selected="selected"' : '' ?>><?= _t('sub.feed.unicityCriteria.sha1:link_published_title') ?></option>
+ <option value="sha1:link_published_title_content" <?= $unicityCriteria === 'sha1:link_published_title_content' ? 'selected="selected"' : '' ?>><?= _t('sub.feed.unicityCriteria.sha1:link_published_title_content') ?></option>
+ </select>
+ <label for="unicityCriteriaForced" class="inline">
+ <input type="checkbox" name="unicityCriteriaForced" id="unicityCriteriaForced" value="1"<?= $this->feed->attributeBoolean('unicityCriteriaForced') ? ' checked="checked"' : '' ?> />
+ <?= _t('sub.feed.unicityCriteria.forced') ?>
+ </label>
+ <p class="help"><?= _i('help') ?> <?= _t('sub.feed.unicityCriteria.help') ?></p>
+ </div>
+ </div>
+
+ <div class="form-group">
<label class="group-name" for="ttl"><?= _t('sub.feed.ttl') ?></label>
<div class="group-controls">
<select class="w50" name="ttl" id="ttl" required="required"><?php