-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtampermonkey-facebook-groups.js
69 lines (54 loc) · 1.99 KB
/
tampermonkey-facebook-groups.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// ==UserScript==
// @name Facebook Groups posts sorting & highlighting
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Sorts posts in a Facebook group descending by date posted and applies some visual filters on each post.
// @match *facebook.com/groups*
// @grant GM_addStyle
// @require https://code.jquery.com/jquery-3.2.1.min.js
// @require http://johannburkard.de/resources/Johann/jquery.highlight-5.js
// ==/UserScript==
(function() {
'use strict';
GM_addStyle('.highlight { background-color: yellow; } ._3b-9 { display: none;}');
console.log('Starting groups sorting script...');
var scrolls = 0;
// use interval because of loading issues with Facebook when scrolling too fast
var interval = setInterval(scroll, 3000);
var words = ['tijdelijk', 'temporary', 'female', 'vrouw', 'girl'];
function scroll() {
$(document).scrollTop($(document).height());
if (scrolls >= 3) {
clearInterval(interval);
// scroll back to top
$(document).scrollTop(0);
sortElements();
}
scrolls++;
console.log('Scrolled ' + scrolls);
}
function sortElements() {
var $wrapper = $('._5pcb');
var $elements = $wrapper.find('.mbm');
console.log($elements);
// colorize background of elements
$elements
.css({
"background-color": "#f2fff4"
});
// highlight words
words.forEach(function(word) {
$elements.highlight(word);
});
// sort by post time
$elements.sort(function(a, b) {
return $(b).find('._5ptz').data('utime') - $(a).find('._5ptz').data('utime');
})
.appendTo($wrapper);
// click "See more" link
$elements.each(function() {
$(this).find('.see_more_link').each().click();
});
alert("Sorted " + $elements.length + " room listings" );
}
})();