Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Google Groups Wiktionary Citation
- // @version 1
- // @include https://groups.google.com/*
- // ==/UserScript==
- // Set to true if you wish to only see Usenet results in searches; by default it only highlights them as red
- var HIDE_NON_USENET = false;
- function displayCitationGroups() {
- var textarea = document.createElement('textarea');
- textarea.setAttribute('rows', 10);
- textarea.setAttribute('cols', 50);
- var button = document.createElement('button');
- var buttonText = document.createTextNode("[minify]");
- button.appendChild(buttonText);
- button.onclick = minify;
- var s = this.closest("section");
- var title = this.closest(".RBM0ic").getElementsByClassName("ThqSJd");
- title = title && title[0].textContent.trim();
- var author = s.getElementsByClassName("s1f8Zd");
- author = author && author[0].textContent.trim();
- var date = s.getElementsByClassName("zX2W9c");
- date = date && date[0].textContent.trim();
- date = date.replace(/\s+\(.*/, "");
- var passage = s.getElementsByClassName("ptW7te");
- passage = passage && passage[0].innerText.replace(/^cite\b/, "").trim().replace(/\n+/g, "<br>");
- var target = window.location.href.replace(/\/m\/.*/, "/");
- target += "m/" + s.getAttribute("data-doc-id");
- var group = target.match(/\/g\/(.*?)\//);
- group = group && group[1]
- var citation = "{{quote-newsgroup|en" +
- (target && ("\n|url=" + target) || "") +
- (title && ("\n|title=" + title) || "") +
- (group && ("\n|group=" + group) || "") +
- (author && ("\n|author=" + author) || "") +
- (date && ("\n|date=" + date) || "") +
- (passage && ("\n|passage=" + passage) || "") +
- "\n}}";
- textarea.value = citation;
- var d = s.getElementsByClassName("ptW7te")[0];
- d.prepend(button);
- d.prepend(textarea);
- return 0;
- }
- function addButton() {
- var d = document.getElementsByClassName("ptW7te");
- for (var i = 0; i < d.length; i++) {
- if (d[i].getElementsByClassName("wikt-cite").length == 0) {
- d[i].innerHTML = "<button class=\"wikt-cite\">cite</button><br>" + d[i].innerHTML;
- document.getElementsByClassName("wikt-cite")[i].onclick = displayCitationGroups;
- }
- }
- }
- function removeClass(c) {
- while (document.getElementsByClassName(c).length != 0) {
- var el = document.getElementsByClassName(c)[0];
- var color = window.getComputedStyle(el).getPropertyValue("color");
- el.classList.remove(c);
- el.style.color = color;
- }
- }
- function highlightUsenet() {
- var elements = document.getElementsByClassName("dkj3H");
- for (var i = 0; i < elements.length; i++) {
- var isUsenet = elements[i].textContent.trim().match(/[a-z0-9-+_]+(\.[a-z0-9-+_]+)+/);
- elements[i].style.color = isUsenet && "red" || "grey";
- if (HIDE_NON_USENET && !isUsenet) {
- elements[i].closest(".cXEmmc").style.display = "none";
- }
- }
- }
- function minify() {
- var textarea = this.parentNode.getElementsByTagName('textarea')[0];
- textarea.value = textarea.value.replace(/\n/g, "");
- }
- function misc() {
- removeClass("iBQX0d");
- removeClass("WzoK");
- highlightUsenet();
- addButton();
- }
- misc();
- var observer = new MutationObserver(misc);
- observer.observe(document.body, {
- childList: true,
- subtree: true,
- attributes: true,
- characterData: true
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement