Various fixes

Removed trailing whitespaces (highlighted by Tampermonkey)
Removed "$ may be undefined" warning by declaring "$" as a parameter, and pass `window.jQuery` in for it

Removed the 1 rep requirement on MSE, use the new contributor indicator check instead (see https://chat.meta.stackexchange.com/transcript/message/7493363#7493363)
This commit is contained in:
iBug ♦ 2019-01-15 12:23:05 +08:00 committed by GitHub
parent 40b1a01873
commit f90472a0c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 17 deletions

View File

@ -5,7 +5,7 @@
// @author Glorfindel
// @updateURL https://raw.githubusercontent.com/Glorfindel83/SE-Userscripts/master/saviour-of-lost-souls/saviour-of-lost-souls.user.js
// @downloadURL https://raw.githubusercontent.com/Glorfindel83/SE-Userscripts/master/saviour-of-lost-souls/saviour-of-lost-souls.user.js
// @version 0.2
// @version 0.3
// @match *://meta.stackexchange.com/questions/*
// @match *://meta.stackoverflow.com/questions/*
// @exclude *://meta.stackexchange.com/questions/ask
@ -13,20 +13,18 @@
// @grant none
// ==/UserScript==
(function () {
(function ($) {
"use strict";
let question = $('#question');
// Check if author is likely to be a lost soul
let owner = $('div.post-signature.owner');
if (owner.length == 0)
// happens with Community Wiki posts
return;
let reputation = owner.find('span.reputation-score')[0].innerText;
if (document.location.host == 'meta.stackexchange.com') {
// Simple check: reputation = 1
if (reputation != "1")
return;
if (reputation === "1") {
// Do nothing: 1 rep qualifies for a lost soul
} else {
// Other meta sites require some reputation to post a question, so we need other rules:
let isNewContributor = owner.find('span.js-new-contributor-label').length > 0;
@ -43,7 +41,7 @@
return;
}
let isModerator = $("a.js-mod-inbox-button").length > 0;
// Add post menu button
let menu = question.find('div.post-menu');
menu.append($('<span class="lsep">|</span>'));
@ -52,7 +50,7 @@
button.click(function() {
if (!confirm('Are you sure you want to down-/close-/delete vote and post a welcoming comment?'))
return;
// Downvoted?
let downvoted = question.find('a.vote-down-on').length > 0;
@ -60,12 +58,12 @@
let status = $('div.question-status h2 b');
let statusText = status.length > 0 ? status[0].innerText : '';
let closed = statusText == 'marked' || statusText == 'put on hold' || statusText == 'closed';
// Prepare votes/comments
let postID = parseInt(question.attr('data-questionid'));
console.log('Lost soul #' + postID);
let fkey = window.localStorage["se:fkey"].split(",")[0];
// Is there any comment not by the author?
let comments = question.find('ul.comments-list');
var nonOwnerComment = false;
@ -94,10 +92,10 @@
}
});
}
// You can't flag without 15 rep
if (myReputation < 15)
return;
return;
if (myReputation >= 100 && !downvoted) {
// Downvote
@ -114,7 +112,7 @@
}
});
}
if (!closed) {
// Flag/vote to close (doesn't matter for the API call)
$.post({
@ -145,7 +143,7 @@
}
});
}
// TODO: reload page after all calls are finished
});
})();
});
})(window.jQuery);