🏠 Home 

CivitAI without BS

Scrape the BS out of civitai

// ==UserScript==
// @name         CivitAI without BS
// @namespace    aolko
// @version      0.3
// @description  Scrape the BS out of civitai
// @author       aolko
// @license      MIT
// @match        https://*civitai.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=civitai.com
// @grant        GM_addStyle
// @require      https://code.jquery.com/jquery-3.7.1.min.js
// ==/UserScript==
/*globals $*/
/*globals jQuery*/
var civit__options = {
"cleanSocials": true,
"cleanGreedySections": true,
};
(function($) {
$.fn.observeChanges = function(callback) {
const observer = new MutationObserver((mutationsList, observer) => {
mutationsList.forEach((mutation) => {
if (mutation.type === 'childList') {
callback.call(this);
}
});
});
return this.each(function() {
observer.observe(this, { childList: true, subtree: true });
});
};
})(jQuery);
(function($) {
$.fn.exists = function(threshold, callback) {
if (typeof threshold === 'function') {
callback = threshold;
threshold = 0;
}
const options = {
threshold: threshold
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const $element = $(entry.target);
callback.call($element);
$element.data('exists', true);
observer.unobserve(entry.target);
}
});
}, options);
return this.each(function() {
const $this = $(this);
if (!$this.data('exists')) {
observer.observe(this);
}
});
};
})(jQuery);
var civit__header = `#root > .mantine-Header-root > .mantine-Grid-root`;
var civit__body = `#root > div:nth-child(2) main`;
var civit__footer = `#root .mantine-Footer-root > .mantine-Group-root`;
function civit__cleanHeader(){
var header = civit__header;
if(civit__options.cleanGreedySections){
$(`${header} > .mantine-Grid-col:nth-child(1) a.mantine-UnstyledButton-root.mantine-Button-root[href^="/pricing"]`).remove();
$(`${header} > .mantine-Grid-col:nth-child(3) .mantine-Group-root:nth-child(2) button:nth-child(1)`).attr("disabled",true);
$(`${header} > .mantine-Grid-col:nth-child(3) .mantine-UnstyledButton-root > div > .mantine-Text-root`).remove();
}
//$(`${header} > .mantine-Grid-col:nth-child(4) :nth-child(4)`).remove();
$(`${header} > .mantine-Grid-col:nth-child(3) .mantine-Indicator-root:nth-child(6)`).remove();
$(`${header}`).observeChanges(function() {
$(this).find(`.mantine-Grid-col:nth-child(3) .mantine-Menu-dropdown`).exists(0, function() {
$(this).find(`[data-menu-dropdown="true"] > .mantine-Menu-item:contains("Generate images"),
[data-menu-dropdown="true"] > .mantine-Menu-item:contains("Train a model"),
[data-menu-dropdown="true"] > .mantine-Menu-item:contains("Create a bounty")`).remove();
});
});
}
function civit__cleanNav(){
var body = civit__body;
$(`${body} .mantine-Tabs-root:nth-child(1) > .mantine-Tabs-tabsList > a[href^="/bounties"]`).remove();
}
function civit__cleanAds(){
var body = civit__body;
$(`${body} > div > div.mantine-Stack-root > div.mantine-Paper-root`).remove();
$(`${body} > div > div:nth-child(3) > div:nth-child(1) > div`).remove();
$(body).observeChanges(function() {
$(this).find(`div > div:nth-child(3) > div > div`).exists(0.1, function() {
$(this).not(`:last-child`).css({"display": "none"});
});
});
$(`body`).observeChanges(function() {
$(this).find(`div.mantine-Stack-root > div > div > div.mantine-Paper-root`).exists(0,function(){
$(this).remove();
})
$(this).find(`div > [dir="ltr"] .mantine-14i2dh4`).exists(0, function() {
$(this).remove();
});
});
}
function civit__cleanFooter(){
var footer = civit__footer;
$(`${footer} > div:nth-child(2) > a[href^='/content/careers'],
${footer} > div:nth-child(2) > a[href^='/advertise-with-us'],
${footer} > div:nth-child(2) > a[href^='/wiki'],
${footer} > div:nth-child(2) > a[href^='/discord'],
${footer} > div:nth-child(2) > a[href^='/twitter'],
${footer} > div:nth-child(2) > a[href^='/instagram'],
${footer} > div:nth-child(2) > a[href^='/youtube'],
${footer} > div:nth-child(2) > a[href^='/tiktok'],
${footer} > div:nth-child(2) > a[href^='/reddit'],
${footer} > div:nth-child(2) > a[href^='/github'],
${footer} > div:nth-child(2) > a[href^='/twitch']
`).remove();
$(`${footer} > :last-child`).remove();
}
/*(function() {
'use strict';
})();*/
$(function() {
civit__cleanHeader();
civit__cleanNav();
civit__cleanAds();
civit__cleanFooter();
});