vilterti / AntiCrap Redeption Max 3

// ==UserScript==
// @name AntiCrap Redeption Max 3
// @namespace Violentmonkey Scriptsd
// @match *://www.taringa.net/*
// @grant none
// @require https://code.jquery.com/jquery-3.2.1.slim.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js
// @grant       GM_xmlhttpRequest
// @connect     api.taringa.net
// @license MIT
// ==/UserScript==
// 
// 
////////////////////////////////////////
let ocultarPostDeCreadores = true // Si no queres ocultar los posts pero si ver si tienen creadores, cambien true por false

//////////////////////////////////////

let usuarios = getAllNicks()
let posts = getAllPosts()

async function main() {

  //Le mete la info de la api a los usuarios
  usuarios = await Promise.all(usuarios.map(getUserInfo))

  //Una lista de nick de los usuarios creadores
  let creadores = _.filter(usuarios, {
      rewards_type: 'revshare'
    })
    .map(e => e.nick)

  for (post of posts) {
    if (creadores.includes(post.owner)) {
      if (ocultarPostDeCreadores) {
        $(post).parents('li').css('display', 'none')
      }
      agregarMedalla(post.main)
    }
    agregarBandera(post)

  }

  /*
  //Post de usuarios creadores
  let postDeCreadores = $('.icon-usuarios').filter((i, e) => {
    let nick = $(e).attr('title')
    let titulo = $(e).parents('li').find('h3')
    let userFull = _.find(usuarios,{nick: nick})
    if(userFull) titulo.prepend(`<img src="https://o1.t26.net/images/flags/${userFull.country.toLowerCase()}.png" class="hastipsy country-name" original-title="Argentina" align="" width="16" hspace="3" height="11">`)
    
    return creadores.includes(nick) || creadores.includes($(e).html())
  }).parents('li')
  
  let topPosts = $('.list-top-posts li')
  

  //Les agrega la medallita roja a los destacados
  agregarMedalla(postDeCreadores)
  
  //les agrega la medallita roja a los tops
  topPosts.filter((i, e) => {
    let usuario = $(e).find('p').html()
    let usuarioFull = _.find(usuarios, {nick: usuario})
    console.log(usuarioFull)
    return creadores.includes($(usuario).text())
  })

  if (ocultarPostDeCreadores) postDeCreadores.hide()
  
  //Banderitas
*/
}
main()

function agregarMedalla(post) {
  $(post).find('h3')
    .prepend('<p> <span class="icon-recompensado" style="position:absolute; color:red;left: 20px;font-size: 10px;"></span></p>')
}

function agregarBandera(post) {
  let ownerCountry = _.find(usuarios, {
    nick: post.owner
  })
  if (!ownerCountry) return
  ownerCountry = ownerCountry.country.toLowerCase()

  let margin = 11
  if ($(post.main).find('img').hasClass('thumb')) {
    margin = 4
  }
  $(post.main)
    .find('h3')
    .prepend(`<img src="https://o1.t26.net/images/flags/${ownerCountry}.png" class="hastipsy country-name" style="position:absolute; width:10px; height:10px;top:${margin}px;left:${margin}px">`)
}

//Devuelve la informarcion de un usuario desde la api de taringa
function getUserInfo(usuario) {
  return new Promise((resolve, reject) => {
    GM_xmlhttpRequest({
      method: 'GET',
      url: 'http://api.taringa.net/user/nick/view/' + usuario,
      onload: ({
        response
      }) => resolve(JSON.parse(response)),
      onerror: reject
    })
  })
}

function getAllNicks() {
  let nicks = []

  //Crea una lista de todos los usuarios que aparecen en la home
  $('.usuario').each((i, e) => {
    nicks.push($(e).attr('title'))
  })
  $('.icon-usuarios').each((i, e) => {
    nicks.push($(e).html())
  })
  return _.uniq(nicks)
}

function getAllPosts() {
  return $('.icon-usuarios')
    .parents('li')
    .map((i, e) => {
      return {
        main: e,
        owner: $(e).find('.usuario').attr('title') || $(e).find('p').html()
      }
    })
}

function getPostOwner(post) {

}