Added referrer filters for URL shorteners

This commit is contained in:
Tobi Schäfer 2015-01-06 23:54:24 +01:00
parent 125fa5dd1e
commit 89fe38987f

View file

@ -62,9 +62,11 @@ REGEDIT4
<% gettext Reset %>
</a>
<div class='uk-form-help-block'>
<input type="checkbox" id="includeSpam" name="includeSpam" value="checked"
<% request.includeSpam prefix='checked="' suffix='"' encoding="form" %> />
<label for="includeSpam"><% gettext 'Disable spam filter' %></label>
<label>
<input type="checkbox" id="includeSpam" name="includeSpam" value="checked" <% request.includeSpam prefix='checked="' suffix='"' encoding="form" %> />
<% gettext 'Disable spam filter' %>
<i class='uk-icon uk-icon-info-circle uk-text-muted' data-uk-tooltip="{pos: 'right'}"title='<% gettext "You can edit the spam filter in the site settings." %>'></i>
</label>
</div>
</div>
<table class='uk-table uk-table-condensed'>
@ -76,6 +78,7 @@ REGEDIT4
</tr>
</thead>
<tbody>
<% site.skin $Site#referrer %>
<% response.list %>
</tbody>
</table>
@ -92,14 +95,17 @@ $(function () {
new Antville.Filter("\/\/.*search\.yahoo\..*\?", "p"),
new Antville.Filter("\/\/.*yandex\..*\?", "text")
];
var urlShortenerCounter = 0;
var urlShortenerFilters = [
new Antville.Filter('\/\/bit\.ly/'),
new Antville.Filter('\/\/goo\.gl/'),
new Antville.Filter('\/\/owl\.ly/'),
new Antville.Filter('\/\/t\.co/'),
new Antville.Filter('\/\/tinyurl\.com/')
new Antville.Filter('\/\/tinyurl\.com/'),
new Antville.Filter('\/\/localhost:8080/helma/antville/blog/stories/')
];
$('.av-referrer-row').each(function (index) {
if (index < 1) return;
var row = $(this);
var ref = row.find('.av-referrer a');
var url = ref.attr('href');
@ -114,6 +120,13 @@ $(function () {
});
var referrer = new Antville.Referrer(url, url, count);
ref.html(referrer.text);
for (var i = 0, filter; i < urlShortenerFilters.length; i += 1) {
filter = urlShortenerFilters[i];
if (filter.test(url)) {
urlShortenerCounter += parseInt(count, 10);
row.hide();
}
}
if (spamFilter.test(url)) {
if (query.includeSpam) {
ref.addClass('uk-text-muted');
@ -135,6 +148,27 @@ $(function () {
}
}
});
var firstRow = $('.av-referrer-row:first');
if (urlShortenerCounter > 0) {
firstRow.find('.av-referrer-count')
.html(urlShortenerCounter)
.end()
.find('.av-referrer')
.html('URL Shorteners')
.end()
.find('.av-referrer-control a')
.remove();
var rows = $('.av-referrer-row');
for (var i = 1, count; i < rows.length; i += 1) {
count = parseInt(rows.eq(i).find('.av-referrer-count').html(), 10);
if (count >= urlShortenerCounter) {
firstRow.insertAfter(rows.eq(i));
break;
}
}
} else {
firstRow.hide();
}
});
</script>