Utoljára aktív 2 days ago

curiouser's Avatar Winston Hoy gist felülvizsgálása 1 month ago. Revízióhoz ugrás

1 file changed, 53 insertions

main.js(fájl létrehozva)

@@ -0,0 +1,53 @@
1 + (() => {
2 + // cleanup and init
3 + try {
4 + document.querySelector('#virtual-timeline').parentNode.removeChild(document.querySelector('#selects'))
5 + } catch {}
6 + document.querySelector('#virtual-timeline').insertAdjacentHTML('beforebegin', '<div class="flex flex-wrap" id="selects"></div>')
7 +
8 + const commentCountMap = new Map()
9 + const commentThumbs = Array.from(document.querySelectorAll('#activity-panel img[alt*=commented]'))
10 + const likeCountMap = new Map()
11 + const likeThumbs = Array.from(document.querySelectorAll('#activity-panel img[alt*=liked]'))
12 + const selects = document.querySelector('#selects')
13 + const srcSet = new Set()
14 +
15 + // count comments per img
16 + commentThumbs.forEach(img => {
17 + const count = commentCountMap.get(img.src) || 0
18 + commentCountMap.set(img.src, count + 1)
19 + srcSet.add(img.src)
20 + })
21 + // count likes per img
22 + likeThumbs.forEach(img => {
23 + const count = likeCountMap.get(img.src) || 0
24 + likeCountMap.set(img.src, count + 1)
25 + srcSet.add(img.src)
26 + })
27 +
28 + // map each img src to a tuple [ src, commentCount, likeCount ]
29 + Array.from(srcSet)
30 + .map(src => [
31 + src,
32 + commentCountMap.get(src) || 0,
33 + likeCountMap.get(src) || 0,
34 + ])
35 + // sort on likes, then comments DESC
36 + .sort((a, b) => {
37 + if (a[2] > b[2]) return -1
38 + else if (a[2] < b[2]) return 1
39 + else {
40 + if (a[1] > b[1]) return -1
41 + else if (a[1] < b[1]) return 1
42 + }
43 + return 0
44 + })
45 + // insert thumb into DOM with counts
46 + .forEach(([ src, comments, likes ]) => {
47 + selects.insertAdjacentHTML('beforeend', `<div style="flex: 0 0 50%;">
48 + <img src="${src}" />
49 + <span>${likes} likes</span>
50 + <span>${comments} comments</span>
51 + </div>`)
52 + })
53 + })()
Újabb Régebbi