您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Erweitert pr0gramm.com um weitere Funktionen
当前为
// ==UserScript== // @name Selfmade M0d // @author Frubi // @description:de (Beta) Erweitert pr0gramm.com um weitere Funktionen zum Blocken von Content // @include *://pr0gramm.com/* // @grant none // @version Beta 1.4.0Beta // @namespace https://gf.qytechs.cn/users/158955 // @description Erweitert pr0gramm.com um weitere Funktionen // ==/UserScript== let settings = { isActive : true, skipUploadByTag : false, blockedTags : [], onlyGoodTags : true, amountOfTagsChecked: -1, skipUploadByUser : false, blockedUsers : [], skipUploadByTotalBenis : false, minBenis : 0, skipUploadByAverageBenis : false, minAverageBenis : 0, skipUploadByUserRank : false, blockedUserRanks : [], nextUploadDirection : -1, autoRateSkippedUploads : false, blockComments : true, deleteComments : false } let readSettings = function() { let temp = JSON.parse(localStorage.getItem("Selfmade_M0d_Settings")); if(temp != null) { settings = temp; } } let checkSettingsReady; let checkURL = function() { if(url.length > 24) { if(url.includes("new") || url.includes("top") || url.includes("user")) { if($('.item-container').length != 0) { addBlockTagSign(); addBlockUserSign(); if(settings.isActive) { executeModules(); } } } else if(url.includes('settings')) { let settingsReady = new Event("settingsReady"); window.addEventListener("settingsReady", function() { clearInterval(checkSettingsReady); addSettingsTab(); }); clearInterval(checkSettingsReady); checkSettingsReady = setInterval(function() { if($('.tab-bar')[0] != undefined) window.dispatchEvent(settingsReady); } ,100); } } } let addSettingsTab = function() { let tmp = $('.Selfmade_M0d'); if(tmp.length != 0) { return; } let button = document.createElement('a'); button.innerText = 'Selfmade M0d'; button.className = "Selfmade_M0d"; button.href = '/settings/selfmade_M0d'; button.addEventListener('click', (e) => { e.preventDefault(); window.history.replaceState({},"Selfmade M0d Settings","/settings/selfmade_M0d"); createSettings(); }); $('.tab-bar')[0].appendChild(button); } let createSettings = function() { $('.pane.form-page').empty(); $('.active').toggleClass('active'); $('.Selfmade_M0d').addClass('active'); let settingsPageContent = ` <div class='form-section'> <div class='Selfmade_M0d' id='bt' style='display:block'> Geblockte Tags:<br> <textarea placeholder='tag1,tag2,tag3,...' title='Tags mit Komma trennen!'></textarea> <input type="checkbox"> Ignoriere Tags mit negativen Benis <br> Anzahl der zu berücksichtigen Tags: <input type="number" min="-1" max="999" value="-1" title="-1 = alle"> </div> <br> <div class='Selfmade_M0d' id='bu' style='display:block' title='Nutzernamen mit Komma trennen!'> <span style='display:block'>Geblockte Nutzer:</span> <textarea placeholder='nutzer1,nutzer2,nutzer3,...'></textarea> </div> <br> <div class='Selfmade_M0d' id='br' style='display:block'> Geblockte Ränge:<br> <div style="margin-left:25px;"> <input type="checkbox"><font style='color:#E108E9'> Neuschwuchtel </font><br> <input type="checkbox"><font style='color:#FFFFFF'> Schwuchtel </font><br> <input type="checkbox"><font style='color:#5BB91C'> Altschwuchtel</font><br> <input type="checkbox"><font style='color:#1cb992'> Edler Spender</font><br> <input type="checkbox"><font style='color:#444444'> Gesperrt </font><br> <input type="checkbox"><font style='color:#6C432B'> Fliesentischbesitzer</font><br> <input type="checkbox"><font style='color:#1cb992'> Lebende Legende</font><br> <input type="checkbox"><font style='color:#008FFF'> Moderator</font><br> <input type="checkbox"><font style='color:#FF9900'> Administrator</font><br> </div> </div> <br> <div class='Selfmade_M0d'id='mb' style='display:block'> <input type="checkbox"> Mindest Benis: <input type="number" min="-999" max="999" value="0"> <br> <input type="checkbox"> Mindest Durchschnittsbenis: <input type="number" min="-999" max="999" value="0"> <br> </div> <br> <div class='Selfmade_M0d' id='sr' style='display:block'> <input type="checkbox"> Nach rechts Skippen </div> <br> <div class="Selfmade_M0d" id='bc' style='display:block'> <input type='checkbox'> Kommentare von geblockten Nutzern entfernen </div> <br> <div class="Selfmade_M0d" id='save'> <input type="submit" value="Speichern" class="confirm settings-save"></input> </div> <br> <div class='Selfmade_M0d' id='reset'> <a class='action clear-settings-button'>Einstellungen zurücksetzen</a> </div> </div> ` $('.pane.form-page').append(settingsPageContent); $('#bt textarea')[0].innerText = settings.blockedTags.join(","); $('#bt input')[0].checked = settings.onlyGoodTags; $('#bt input')[1].value = settings.amountOfTagsChecked; $('#bu textarea')[0].innerText = settings.blockedUsers.join(","); settings.blockedUserRanks.forEach(function(e) { $('font:contains(' + e + ')').prev()[0].checked = true; }); $('#mb input')[0].checked = settings.skipUploadByTotalBenis; $('#mb input')[1].value = settings.minBenis; $('#mb input')[2].checked = settings.skipUploadByAverageBenis; $('#mb input')[3].value = settings.minAverageBenis; $('#sr input')[0].checked = settings.nextUploadDirection==-1?true:false; $('#bc input')[0].checked = settings.blockComments; $('#save input').click(function(){ saveSettings()}); $('#reset a').click(function() { localStorage.removeItem('Selfmade_M0d_Settings'); location.href = "http://pr0gramm.com/new"; }); } let saveSettings = function() { settings.blockedTags = $('#bt textarea')[0].value.split(','); settings.blockedTags.forEach(function(a,i) { if(a == "") { settings.blockedTags.splice(i,1); return; } settings.blockedTags[i] = a.trim(); }); settings.skipUploadByTag = settings.blockedTags.length >0?true:false; settings.onlyGoodTags = $('#bt input')[0].checked; settings.amountOfTagsChecked = Number($('#bt input')[1].value); settings.blockedUsers = $('#bu textarea')[0].value.split(','); settings.blockedUsers.forEach(function(a,i) { if(a == "") { settings.blockedUsers.splice(i,1); return; } settings.blockedUsers[i] = a.trim(); }); settings.skipUploadByUser = settings.blockedUsers.length >0 ? true:false; settings.blockedUserRanks = []; let tmp = $('#br input:checked').next(); for(let i = 0; i < tmp.length; i++) { settings.blockedUserRanks.push(tmp[i].innerText.trim()); } settings.skipUploadByUserRank = settings.blockedUserRanks.length >0 ? true:false; settings.skipUploadByTotalBenis = $('#mb input')[0].checked; settings.minBenis = Number($('#mb input')[1].value); settings.skipUploadByAverageBenis = $('#mb input')[2].checked; settings.minAverageBenis = Number($('#mb input')[3].value); settings.nextUploadDirection = $('#sr input')[0].checked ? -1:1; settings.blockComments = $('#bc input')[0].checked; settings.autoRateSkippedUploads = false; quickSave(); } let quickSave = function() { localStorage.setItem("Selfmade_M0d_Settings", JSON.stringify(settings)); } let createFilter = function() { let filter = $('.filter-setting:eq(2)'); filter.clone().insertAfter(filter); filter = $('.filter-setting:eq(3)'); let circle = filter[0].children[0].children[0]; filter[0].children[0].innerText = "Self-made M0d"; filter[0].children[0].prepend(circle); filter[0].children[1].innerText = "Aktiviere das Selfmade M0d Addon. Speichern nicht erforderlich"; filter.attr("data-flag",8); $('#filter-link').click(function(){ if(settings.isActive) filter.addClass("active"); else filter.removeClass("active"); }) filter.click(function() { if($('.filter-setting:eq(3)').hasClass("active")) { settings.isActive = false; $('.filter-setting:eq(3)').removeClass("active"); } else { settings.isActive = true; $('.filter-setting:eq(3)').addClass("active"); } quickSave(); }) } let nextUpload = function() { if(settings.nextUploadDirection == 1) { $('.stream-prev').click(); } else if(settings.nextUploadDirection == -1) { $('.stream-next').click(); } } let rateUpload = function(direction = -1) { console.log("Upload wurde bewertet"); if(direction == 1) { if($('.item-vote:has(.pict)')[0].className.indexOf("voted-up") == -1) $('.item-vote:has(.pict) .vote-up').click(); } else if(direction == -1) { if($('.item-vote:has(.pict)')[0].className.indexOf("voted-down") == -1) $('.item-vote:has(.pict) .vote-down').click(); } } let getTags = function() { let tags = []; let rawTags; if(settings.onlyGoodTags == true) { rawTags = $('.tag-good'); } else { rawTags = $('.tag-good,.tag-bad'); } let amount = settings.amountOfTagsChecked; if(amount == -1) { amount = rawTags.length; } else { amount = Math.min(amount, rawTags.length) } for(let i = 0; i <amount; i++) { tags.push(rawTags[i].children[0].innerText); } return tags; } let getTotalBenis = function() { let score = $('.item-vote .score'); if(score.length != 0) { return $('.item-vote .score')[0].innerText; } return undefined; } let getAverageBenis = function() { let score = $('.item-vote .score'); if(score.length != 0) { score = $('.item-vote .score')[0].title; let divident = Number(score.substr(0,score.indexOf("u")-1)); let divisor = Number(score.substr(score.indexOf("u")+4,score.indexOf("u"))); if(divisor == 0) { return divident; } return divident / divisor; } else undefined; } let getUser = function() { return $('.item-details .user')[0].innerText; } let getUserRank = function() { switch($('.item-details .user')[0].classList[1]) { case("um0"): return "Schwuchtel"; break; case("um1"): return "Neuschwuchtel"; break; case("um2"): return "Altschwuchtel"; break; case("um3"): return "Administrator"; break; case("um4"): return "Gesperrt"; break; case("um5"): return "Moderator"; break; case("um6"): return "Fliesentischbesitzer"; break; case("um7"): return "Lebende Legende"; break; case("um8"): break; case("um9"): return "Edler Spender"; break; default: break; } } let executeModules = function() { let wasSkipped = false; if(settings.skipUploadByTag) { wasSkipped = skipUploadByTag(); } if(settings.skipUploadByUser && !wasSkipped) { wasSkipped = skipUploadByUser(); } if(settings.skipUploadByTotalBenis && !wasSkipped) { wasSkipped = skipUploadByTotalBenis(); } if(settings.skipUploadByAverageBenis && !wasSkipped) { wasSkipped = skipUploadByAverageBenis(); } if(settings.skipUploadByUserRank && !wasSkipped) { wasSkipped = skipUploadByUserRank(); } if(settings.blockComments && !wasSkipped) { blockCommentsByUser(); } else if(settings.deleteComments && !wasSkipped) { deleteCommentsByUser(); } } let skipUploadByTag = function() { let tags = getTags(); for(let i = 0; i < tags.length; i++) { if(settings.blockedTags.includes(tags[i].toLowerCase())) { if(settings.autoRateSkippedUploads) { rateUpload(); } console.log("Skipped because of Tag: " + tags[i]); nextUpload(); return true; } } } let skipUploadByUser = function() { let user = getUser(); if(settings.blockedUsers.includes(user)) { if(settings.autoRateSkippedUploads) rateUpload(); console.log("Skipped because of User: " + user); nextUpload(); return true; } } let skipUploadByTotalBenis = function() { let score = getTotalBenis(); if(score != undefined) { if(score < settings.minBenis) { if(settings.autoRateSkippedUploads) { rateUpload(); } nextUpload(); console.log("Skipped because of Benis: " + score); return true; } } } let skipUploadByAverageBenis = function() { let score = getAverageBenis(); if(score != undefined) { if(getAverageBenis() < settings.minAverageBenis) { if(settings.autoRateSkippedUploads) { rateUpload(); } nextUpload(); console.log("Skipped because of average Benis: " + score); return true; } } } let skipUploadByUserRank = function() { let rank = getUserRank(); if(settings.blockedUserRanks.includes(rank)) { if(settings.autoRateSkippedUploads) { rateUpload(); } nextUpload(); console.log("Skipped because of Userrank: " + rank); return true; } } let addBlockTagSign = function() { let blockTagSign = document.createElement('span'); blockTagSign.className = "block-tag" blockTagSign.innerText = "ø"; $('.tag').append(blockTagSign); $('.block-tag').css("cursor", "pointer"); $('.block-tag').each(function() { let tmp = $(this).siblings()[0].innerText; if(settings.blockedTags.includes(tmp.toLowerCase())) { $(this).css("color", "red"); } else { $(this).css("color", "#888"); } }); $('.block-tag').click(function() { let tmp = $(this).siblings()[0].innerText; if($(this).css("color") == "rgb(255, 0, 0)") { settings.blockedTags.splice(settings.blockedTags.indexOf(tmp),1); if(settings.blockedTags.length > 0) settings.skipUploadByTag = true; else settings.skipUploadByTag = false; $(this).css("color","#888" ); } else { settings.blockedTags.push(tmp.toLowerCase()); settings.skipUploadByTag = true; $(this).css("color", "red"); } quickSave(); }); } let addBlockUserSign = function() { let blockUserSign = document.createElement('span'); blockUserSign.className = "block-user" blockUserSign.innerText = " ø"; $(blockUserSign).insertAfter($('.user')); $('.block-user').css("cursor", "pointer"); $('.block-user').each(function() { if(settings.blockedUsers.includes($(this).prev()[0].innerText)) { $(this).css("color", "red"); } }); $('.block-user').click(function() { let user = $(this).prev()[0].innerText; if($(this).css("color") == "rgb(255, 0, 0)") { settings.blockedUsers.splice(settings.blockedUsers.indexOf(user),1); if(settings.blockedUsers.length > 0) settings.skipUploadByUser = true; else settings.skipUploadByUser = false; $(this).css("color","" ); } else { settings.blockedUsers.push(user); settings.skipUploadByUser = true; $(this).css("color", "red"); } quickSave(); }); } let blockCommentsByUser = function() { $('.comment:not(textarea)').each(function() { if(settings.blockedUsers.includes($(this).find($('.comment-foot .user'))[0].innerText)) { let tmp = $(this).find($('.comment-content')); $(tmp).css("color", "grey"); $(tmp).css("cursor", "pointer"); if(tmp.attr("data-comment") == undefined) { tmp.attr("data-comment", tmp[0].innerText ) tmp[0].innerText = "[Blocked]"; tmp.click(function() { if(this.innerText == "[Blocked]") this.innerText = $(this).attr("data-comment"); else this.innerText = "[Blocked]"; }); } } }); } let deleteCommentsByUser = function() { $($('.comment:not(textarea)').get().reverse()).each(function() { if(settings.blockedUsers.includes($(this).find($('.comment-foot .user'))[0].innerText)) { this.parentElement.remove(); console.log("Deleted comment from user: " + $('.comment-foot .user')[0].innerText) } }); } let url = "https://pr0gramm.com"; $(document).ready(function() { readSettings(); createFilter(); let urlChange = new Event('urlChange'); window.addEventListener("urlChange", function(){checkURL()}); setInterval(function() { if(url != window.location.href) { url = window.location.href; window.dispatchEvent(urlChange); } },100); });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址