Add userscript
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
// ==UserScript==
|
||||
// @name Daily Stormer Comments
|
||||
// @namespace Violentmonkey Scripts
|
||||
// @match https://dailystormer.su/*
|
||||
// @match https://dailystormer.name/*
|
||||
// @match *://stormer5v52vjsw66jmds7ndeecudq444woadhzr2plxlaayexnh6eqd.onion/*
|
||||
// @grant GM.xmlHttpRequest
|
||||
// @grant GM.notification
|
||||
// @grant GM_getResourceText
|
||||
// @grant unsafeWindow
|
||||
// @version 1.1
|
||||
// @author perception
|
||||
// @description 9/01/2021, 11:35:12 AM
|
||||
// ==/UserScript==
|
||||
|
||||
function get(url, fn) {
|
||||
const method = 'GET'
|
||||
return GM.xmlHttpRequest({
|
||||
method,
|
||||
url,
|
||||
onload: fn
|
||||
})
|
||||
}
|
||||
|
||||
function getArticlesForum(fn) {
|
||||
const url = 'https://gameruprising.to/index.php?forums/articles.5/'
|
||||
return get(url, fn)
|
||||
}
|
||||
|
||||
function escape(s) {
|
||||
return s.replace(/\$/g, '\\$')
|
||||
}
|
||||
|
||||
// Get Title of Article
|
||||
const metaTitle = document.querySelector('head meta[property="og:title"]')
|
||||
if (metaTitle) {
|
||||
const title = metaTitle.content.replace(/ - Daily Stormer/, '')
|
||||
const re = new RegExp(escape(title), 'i')
|
||||
|
||||
// Convert to XenForo Slug
|
||||
const xenforoTitle = encodeURIComponent(title.toLocaleLowerCase().replace(/\s+/g, '-'))
|
||||
console.log({title, xenforoTitle})
|
||||
//GM.notification(title, xenforoTitle)
|
||||
|
||||
// Search for Forum Post for Article
|
||||
getArticlesForum(function(res) {
|
||||
unsafeWindow.res = res
|
||||
const $forum = jQuery(res.responseText)
|
||||
const $threads = $forum.find('div.structItem-title a').filter(function(i) {
|
||||
const content = jQuery(this).text().trim()
|
||||
console.log({title, content, equal: title === content })
|
||||
return !!content.match(re)
|
||||
})
|
||||
unsafeWindow.$forum = $forum
|
||||
unsafeWindow.$threads = $threads
|
||||
|
||||
// If found, scrape thread for comments
|
||||
if ($threads.length > 0) {
|
||||
const a = $threads[0]
|
||||
const threadUrl = `https://gameruprising.to${a.pathname}${a.search}`
|
||||
get(threadUrl, function(res) {
|
||||
const $thread = jQuery(res.responseText)
|
||||
unsafeWindow.$thread = $thread
|
||||
const $posts = $thread.find('article.message:not(:first)')
|
||||
$posts.each(function(i, p) {
|
||||
const $p = jQuery(p)
|
||||
const $a = $p.find('a.avatar')
|
||||
$a.attr('href', `https://gameruprising.to${$a.attr('href')}`)
|
||||
const $img = $a.find('img')
|
||||
$img.attr('src', `https://gameruprising.to${$img.attr('src')}`)
|
||||
if ($img.attr('srcset')) {
|
||||
// Some profiles don't have srcset for their avatar image.
|
||||
$img.attr('srcset', `https://gameruprising.to${$img.attr('srcset')}`)
|
||||
}
|
||||
const $name = $p.find('.message-name a.username')
|
||||
$name.attr('href', `https://gameruprising.to${$name.attr('href')}`)
|
||||
const $timestamp = $p.find('.message-attribution-main a')
|
||||
$timestamp.attr('href', `https://gameruprising.to${$timestamp.attr('href')}`)
|
||||
const $postNumber = $p.find('.message-attribution-opposite a:nth(1)')
|
||||
$postNumber.attr('href', `https://gameruprising.to${$postNumber.attr('href')}`)
|
||||
const $reactions = $p.find('a.reactionsBar-link')
|
||||
$reactions.attr('href', `https://gameruprising.to${$reactions.attr('href')}`)
|
||||
})
|
||||
unsafeWindow.$posts = $posts
|
||||
// Insert comments onto current page
|
||||
jQuery('article.post-listing').append($posts)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Add CSS
|
||||
var css = `
|
||||
.reaction--small.reaction--1 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px 0px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.reaction--small.reaction--2 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px -16px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.reaction--small.reaction--3 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px -32px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.reaction--small.reaction--4 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px -48px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.reaction--small.reaction--5 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px -64px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.reaction--small.reaction--6 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px -80px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.reaction--small.reaction--7 .reaction-sprite {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(https://gameruprising.to/styles/default/xenforo/reactions/emojione/sprite_sheet_emojione.png) no-repeat 0px -96px;
|
||||
background-size: 100%;
|
||||
}
|
||||
ul.message-attribution-opposite li:first-child {
|
||||
display: none;
|
||||
}
|
||||
ul.reactionSummary {
|
||||
}
|
||||
ul.reactionSummary > li {
|
||||
display: inline-block;
|
||||
padding: 5px 5px 5px 0;
|
||||
}
|
||||
|
||||
|
||||
article.message {
|
||||
margin: 0.5em;
|
||||
padding: 1em;
|
||||
border-top: 2px solid #000;
|
||||
}
|
||||
article.message .bbCodeBlock-expandLink {
|
||||
display: none;
|
||||
}
|
||||
`;
|
||||
|
||||
if (typeof GM_addStyle != "undefined") {
|
||||
GM_addStyle(css);
|
||||
} else if (typeof PRO_addStyle != "undefined") {
|
||||
PRO_addStyle(css);
|
||||
} else if (typeof addStyle != "undefined") {
|
||||
addStyle(css);
|
||||
} else {
|
||||
var node = document.createElement("style");
|
||||
node.type = "text/css";
|
||||
node.appendChild(document.createTextNode(css));
|
||||
var heads = document.getElementsByTagName("head");
|
||||
if (heads.length > 0) {
|
||||
heads[0].appendChild(node);
|
||||
} else {
|
||||
// no head yet, stick it whereever
|
||||
document.documentElement.appendChild(node);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user