arrowsama / Cookidoo Cleaner

// ==UserScript==
// @name         Cookidoo Cleaner
// @version      0.4
// @description  Clean the content of the cookidoo website to print it nicely
// @author       Carles Figuerola
// @match        https://cookidoo.thermomix.com/recipes/recipe/*
// @grant        GM_addStyle
// @copyright 2020, arrowsama (https://openuserjs.org/users/arrowsama)
// @license MIT
// ==/UserScript==

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

function hide_by_class(className){
    try {
        document.getElementsByClassName(className)[0].style.display = 'none';
    }
    catch(err) {
        unsafeWindow.console.log("Cannot hide class: " + className);
    }

}

function hide_by_id(id){
    try {
        document.getElementById(id).style.display = 'none';
    }
    catch(err) {
        unsafeWindow.console.log("Cannot hide id: " + id);
    }
}

function hide_by_tagname(tagName) {
    try {
        document.getElementsByTagName(tagName)[0].style.display = 'none';
    }
    catch(err) {
        unsafeWindow.console.log("Cannot hide tagName: " + tagName);
    }
}

function hide_created_recipes_banner() {
    try {
        document.querySelectorAll('recipe-cr-promo-banner')[0].style.display = 'none';
    }
    catch(err) {
        unsafeWindow.console.log("Cannot hide Created Recipes banner");
    }
}

function clean_page() {
    document.title = document.title.split('-')[0].trim();

    // Hide unneded elements
    hide_by_class("page-header");
    document.getElementsByClassName("g-wrapper")[0].style.marginTop = '0em';
    hide_by_class("recipe-card__tm-version");
    hide_by_class("recipe-card__btn-line");
    hide_by_tagname("core-rating");
    hide_by_id("additional-categories");
    hide_by_id("core-share");
    hide_by_id("in-collections");
    hide_by_id("alternative-recipes");
    hide_by_tagname('core-footer');
    hide_by_tagname('core-toast');
    hide_created_recipes_banner();

    // Add pagebreaks
    document.getElementsByClassName("g-wrapper")[1].insertAdjacentHTML('afterend','<div class="pagebreak"></div>');
    addGlobalStyle('@media print{ .pagebreak {page-break-before: always;}}');

    // Print accomodations
    GM_addStyle( `
      .recipe-card__picture img {
          display: block;
          min-height: 100%;
          max-height: 65vw;
      }
    ` );

}

(function() {
    'use strict';

    clean_page();
})();