您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cámara de eco para meneame.net
// ==UserScript== // @name Cámara de eco // @namespace meneame.net // @version 0.1 // @description Cámara de eco para meneame.net // @author automatix // @match www.meneame.net/* // @grant none // ==/UserScript== /* jshint esversion: 6 */ ( function() { 'use strict'; // configuración var ocultar = 1; // a 0 si no se quiere ocultar la noticia, ¿para qué estás usando esto? var votar = 0; // a 1 si quieres votar 0 si crees en un mundo mejor donde todos vayamos de la mano; /* ¿porqué irrelevante?, porque es absolutamente subjetivo y es ampliamente usado junto con el voto erronea para censura activa -2: antigua -10: bulo -3: cansina -9: copia/plagio -6: duplicada -8: errónea -1: irrelevante -7: microblogging -11: muro de pago -4: sensacionalista -5: spam */ var tipoVoto = -1; // lista de valores separados por comas ejemplo: 'twitter.com', 'mobile.twitter.com', 'youtube.com' var sitiosAQuitar = [ ]; // lista de usuarios separados por comas ejemplo: 'usuario1', 'usuario2' var usuarios = [ ]; // lista de keywords en el título que quieres quitar ejemplo: 'zasca', 'brutal', 'destroza a' var keywords = [ ]; // aqui se acaba la configuración var bloques = []; var $ = window.jQuery; // icono en la cabecera var header = document.getElementById( "header-menu" ); var ul = header.getElementsByClassName( "header-menu01" )[ 0 ].getElementsByClassName( "menu01-itemsl" )[ 0 ]; var li = document.createElement( "li" ); li.title = "Cámara de eco"; ul.appendChild( li ); var summaries = document.getElementsByClassName( "news-summary" ); for( let div of summaries ) { var newsInfo = div.getElementsByClassName( "news-body" ); var minUrl = newsInfo[ 0 ].getElementsByClassName( "news-submitted" )[ 0 ].getElementsByClassName( "showmytitle" )[ 0 ]; if (typeof minUrl != "undefined") { if( sitiosAQuitar.includes(minUrl.innerHTML) ) { newsInfo[ 0 ].style.border = "1px solid #ffb380"; bloques['l'+$(newsInfo[0]).data('link-id')] = newsInfo[ 0 ]; if(ocultar == 1) { $(newsInfo[ 0 ]).css('display', 'none'); } } } } // usuarios var users = $('.news-submitted a.tooltip+a').each(function(key, user) { let usuario = user.innerHTML; if( usuarios.includes(user.innerHTML) ) { $(user).css('background', 'red'); $(user).css('color', 'white'); var newsInfo = $(user).parent(); var minUrl = $('.showmytitle', newsInfo).html(); bloques['l'+$(newsInfo[0]).data('link-id')] = newsInfo[ 0 ]; if(ocultar == 1) { $(newsInfo[ 0 ]).css('display', 'none'); } } }); // titulares var titulos = $('h2 a').each(function(key, titulo) { let titular = titulo.innerHTML; for( let keyword of keywords ) { if (titular.indexOf(keyword) >= 0) { var newsInfo = $(titulo).parent().parent().parent(); bloques['l'+$(newsInfo[0]).data('link-id')] = newsInfo[ 0 ]; $(newsInfo[ 0 ]).css('display', 'none'); } } }); li.innerHTML = "<span class='badge'><i class='fa fa-trash'></i> "+Object.keys(bloques).length+"</span>"; function vota() { if(Object.keys(bloques).length > 0) { if(user_id > 0){ let elemento = mipop(bloques); let voto = $(elemento.val).find('div.menealo a'); if(voto.length > 0) { let id_noticia = $(elemento.val).data('link-id'); let url = 'https://www.meneame.net/backend/problem?id='+id_noticia+'&user='+user_id+'&value='+tipoVoto+'&key='+base_key+'&l='+id_noticia+'&u=https%3A%2F%2Fwww.meneame.net%2F'; $.getJSON(url); } else { console.log('ya votado'); } } } else { console.log('destruido el temporizador'); clearInterval(temporizador); } } function mipop(obj) { var key = Object.keys(obj).pop(); var result = {key: key, val: obj[key]}; delete obj[key]; return result; } if(votar == 1) { var temporizador = setInterval(vota,15000); } /* ¿Porqué 15 segundos?, ¿porque un temporizador en vez de usar promises?. 15 segundos es un margen "seguro", probablemente se puede bajar. Usar aqui promises no tiene sentido porque precisamente hay un tiempo mínimo entre voto y voto */ } )();