RES twitter expandos

Formats embedded tweets. RES cannot do this for technical and security reasons.

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name        RES twitter expandos
// @namespace   com.example
// @description Formats embedded tweets. RES cannot do this for technical and security reasons.
// @match       https://*.reddit.com/*
// @version     1
// @grant       none
// ==/UserScript==

"use strict";

/**
 * loadTwitterScript(): void
 * Adds the twitter script that was stripped by RES to the given node.
 */
function loadTwitterScript(node) {
  node.style.display = 'none';
  let script = document.createElement('script');
  script.src = 'https://platform.twitter.com/widgets.js';
  node.appendChild(script);
}

/**
 * observeForTwits(target: HTMLElement): void
 * Attaches a MutationObserver to target and loads twitter's js whenever it finds a tweet.
 */
function observeForTwits(target) {
  let observer = new MutationObserver(function(mutations) {
    for (let mutation of mutations) {
      for (let node of mutation.addedNodes) {
        if (node.className == 'twitter-tweet') {
          loadTwitterScript(node);
        }
      }
    }
  });

  // configuration of the observer:
  let config = { childList: true, subtree: true };

  // pass in the target node, as well as the observer options
  observer.observe(target, config);
}

observeForTwits(document.body);