Greasy Fork is available in English.

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();
});