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 %> <% gettext Reset %>
</a> </a>
<div class='uk-form-help-block'> <div class='uk-form-help-block'>
<input type="checkbox" id="includeSpam" name="includeSpam" value="checked" <label>
<% request.includeSpam prefix='checked="' suffix='"' encoding="form" %> /> <input type="checkbox" id="includeSpam" name="includeSpam" value="checked" <% request.includeSpam prefix='checked="' suffix='"' encoding="form" %> />
<label for="includeSpam"><% gettext 'Disable spam filter' %></label> <% 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>
</div> </div>
<table class='uk-table uk-table-condensed'> <table class='uk-table uk-table-condensed'>
@ -76,6 +78,7 @@ REGEDIT4
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<% site.skin $Site#referrer %>
<% response.list %> <% response.list %>
</tbody> </tbody>
</table> </table>
@ -92,14 +95,17 @@ $(function () {
new Antville.Filter("\/\/.*search\.yahoo\..*\?", "p"), new Antville.Filter("\/\/.*search\.yahoo\..*\?", "p"),
new Antville.Filter("\/\/.*yandex\..*\?", "text") new Antville.Filter("\/\/.*yandex\..*\?", "text")
]; ];
var urlShortenerCounter = 0;
var urlShortenerFilters = [ var urlShortenerFilters = [
new Antville.Filter('\/\/bit\.ly/'), new Antville.Filter('\/\/bit\.ly/'),
new Antville.Filter('\/\/goo\.gl/'), new Antville.Filter('\/\/goo\.gl/'),
new Antville.Filter('\/\/owl\.ly/'), new Antville.Filter('\/\/owl\.ly/'),
new Antville.Filter('\/\/t\.co/'), 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) { $('.av-referrer-row').each(function (index) {
if (index < 1) return;
var row = $(this); var row = $(this);
var ref = row.find('.av-referrer a'); var ref = row.find('.av-referrer a');
var url = ref.attr('href'); var url = ref.attr('href');
@ -114,6 +120,13 @@ $(function () {
}); });
var referrer = new Antville.Referrer(url, url, count); var referrer = new Antville.Referrer(url, url, count);
ref.html(referrer.text); 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 (spamFilter.test(url)) {
if (query.includeSpam) { if (query.includeSpam) {
ref.addClass('uk-text-muted'); 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> </script>