// ==UserScript==
// @name Meneame.net - Menú ampliado ¡EXPANDIBLE!
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Ten todas las opciones SIEMPRE en el mismo sitio ocupando el mínimo espacio
// @author ᵒᶜʰᵒᶜᵉʳᵒˢ
// @match *://*.meneame.net/*
// @run-at document-end
// @icon https://www.meneame.net/favicon.ico
// @grant none
// @license GNU GPLv3
// ==/UserScript==
const menu_New = '<ul class="' + (IsMobileDevice() ? 'menu01-itemsl' : 'menu01-itemsr') +'">MENU_OPTIONS</ul>';
const menu_Location = IsMobileDevice() ? '#nav-panel .header-menu01' : '#more-options';
const menu_Category = '<li class="mnu-c" title="%1"><details><summary class="mnu-c">%2</summary><ul class="mnu-c">MENU_ITEMS</li></details></li>';
const menu_Item = '<li class="mnu-c" title="%1"><a href="%2" data-option-name="%3" class="nav-bar-option"><div class="option-title">%3</div></a></li>';
const menu_Extended_CSS = '<style>ul.mnu-c {list-style: none; padding: 0;} li.mnu-c{padding: 4px 12px !important;text-transform: uppercase; font-weight: 600;color: #fff;}</style>';
const username_Shown = document.querySelector('#userinfo .usertext.wideonly .tooltip').innerHTML;
const parent_Items = [
['noticias', 'distintas vistas de noticias'],
['nótame','distintas vistas del nótame'],
['otros','otras opciones'],
['información','información varia de menéame'],
[username_Shown,'enlaces de tu usuario']
];
const items = [
['portada de noticias', '/', 'portada','noticias'],
['menear noticias pendientes', '/queue', 'nuevas','noticias'],
['noticias candidatas', '/queue?meta=_popular', 'candidatas','noticias'],
['noticias más populares', '/popular', 'populares','noticias'],
['noticias más negativizadas', '/topshames.php', 'impopulares','noticias'],
['noticias más visitadas', '/top_visited', 'más visitadas','noticias'],
['noticias más activas', '/top_active', 'destacadas','noticias'],
['buscar noticias', '/search?q=&w=links&h=&o=date&u=', '🔍︎ buscar','noticias'],
['comentarios entre dos usuarios', '/between.php?type=comments&u1=' + username_Shown, 'debates','noticias'],
['leer o escribir notas', '/notame/', 'todas','nótame'],
['notas más populares', '/notame/_best', 'populares','nótame'],
['notas con encuestas', '/notame/_poll', 'encuestas','nótame'],
['buscar notas', '/search?q=&w=posts&h=&o=date&u=', '🔍︎ buscar','nótame'],
['notas entre dos usuarios', '/between.php?type=posts&u1=' + username_Shown, 'debates','nótame'],
['Comunidades', '/subs', 'comunidades','otros'],
['artículos de usuarios', '/articles', 'artículos','otros'],
['las imágenes subidas por los usuarios', 'javascript:fancybox_gallery(\'all\');', 'galería','otros'],
['mejores comentarios', '/top_comments', 'comentarios +🠝','otros'],
['publicar una noticia', '/submit', '+ meneo','otros'],
['publicar un artículo', '/submit?type=article&write=true', '+ artículo','otros'],
['visualizador en tiempo real', '/sneak', 'fisgona','información'],
['visualizador en tiempo real estilo telnet', '/telnet', 'telnet','información'],
['buscar notas', '/search?q=&w=posts&h=&o=date&u=', '🔍︎ buscar','información'],
['ayuda para principiantes', 'https://github.com/Meneame/meneame.net/wiki/Comenzando', 'ayuda','información'],
['nube de etiquetas', '/cloud.php', 'nube etiquetas','información'],
['Información sobre valores de karma y límites', '/values.php', 'valores','información'],
['noticias pendientes de subir/bajar', '/promote.php', 'promote','información'],
['mi perfil', '/user/' + username_Shown, 'perfil',username_Shown],
['mis comentarios', '/user/' + username_Shown + '/commented', 'mis comentarios',username_Shown],
['buscar en mis comentarios', '/search?q=&w=comments&h=&o=date&u=' + username_Shown, '🔍︎ comentarios',username_Shown],
['mis notas', '/user/' + username_Shown + '/notes', 'mis notas',username_Shown],
['buscar en mis notas', '/search?q=&w=posts&h=&o=date&u=' + username_Shown, '🔍︎ notas',username_Shown],
['mis privados', '/user/' + username_Shown + '/notes_privates', 'mis privados',username_Shown],
];
function BuildMenu() {
if (IsMobileDevice()) LoadMobileMenu();
let result = '';
for (const parent of parent_Items) {
const childItems = items.filter(item => item[3] === parent[0]);
let childResult = '';
childItems.forEach(child => {childResult += menu_Item.replace('%1', child[0]).replace('%2', child[1]).replaceAll('%3', child[2]);});
result += menu_Category.replace('%1', parent[1]).replace('%2', parent[0]).replace('MENU_ITEMS', childResult);
}
var menu_Old = document.querySelector(menu_Location);
menu_Old.innerHTML = menu_New.replace('MENU_OPTIONS', result);
document.querySelectorAll("li.mnu-c[title]").forEach(li => {li.title = li.title.toUpperCase();});
}
function LoadMobileMenu() {
let element = document.querySelector('#header-top #nav-menu');
if(element) {element.click(); element.click();}
}
function IsMobileDevice() {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
}
(function() {
document.head.insertAdjacentHTML("beforeend", menu_Extended_CSS);
BuildMenu();
})();