// ==UserScript==
// @name Facebook All Comments Helper
// @name:zh-TW FB全部留言小幫手
// @name:zh-CN FB全部留言小帮手
// @namespace http://tampermonkey.net/
// @version 1.7
// @description Easy way to show all comments.
// @description:zh-tw 讓您更快打開全部留言
// @description:zh-cn 让您更快打开全部留言
// @author Xuitty
// @match https://www.facebook.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=facebook.com
// @grant none
// @license MIT
// ==/UserScript==
const langs = {
de: ["Relevanteste", "Top-Kommentare", "Am zutreffendsten", "Neueste zuerst", "Neueste", "Alle Kommentare"],
en: ["Top comments", "Most relevant", "Most applicable", "Most recent", "Newest", "All comments"],
es: ["Comentarios destacados", "Más relevantes", "Más pertinentes", "Más recientes", "Más recientes", "Todos los comentarios"],
hu: ["A legfontosabb hozzászólások", "A legrelevánsabbak", "A témához leginkább illők", "A legújabbak", "A legutóbbiak", "Az összes hozzászólás"],
ja: ["トップコメント", "関連度の高い順", "最も適切", "新しい順", "新しい順", "すべてのコメント"],
ko: ["관련성 높은 댓글", "참여도 높은 댓글", "적합성 높은 순", "최신순", "날짜 내림차순", "모든 댓글"],
fr: ["Plus pertinents", "Les meilleurs commentaires", "Les plus pertinents", "Plus récents", "Les plus récents", "Tous les commentaires"],
sk: ["Top komentáre", "Najrelevantnejšie", "Najvhodnejšie", "Najnovšie", "Najnovšie", "Všetky komentáre"],
sl: ["Najbolj priljubljeni komentarji", "Najustreznejši", "Najustreznejše", "Najnovejši", "Najnovejši", "Vsi komentarji"],
"zh-Hans": ["热门评论", "最相关", "最合适", "从新到旧", "最新", "所有评论"],
"zh-Hant": ["最熱門留言", "最相關", "最相關", "最新", "由新到舊", "所有留言"],
};
function execute(e) {
if (e.code !== "Insert" && e.type === "keydown") return;
let flag = e.ctrlKey ? true : false;
let fblang = document.getElementById("facebook").getAttribute("lang");
let lang = langs[fblang] || langs.en;
let headings = document.evaluate(
"//span[text()='" +
lang[0] +
"' or text()='" +
lang[1] +
"' or text()='" +
lang[2] +
"' or text()='" +
lang[3] +
"' or text()='" +
lang[4] +
"' or text()='" +
lang[5] +
"']",
document,
null,
XPathResult.ANY_TYPE,
null
);
if (flag) showLatestComment(headings);
else showAllComment(headings);
}
function showAllComment(headings) {
let node1;
while ((node1 = headings.iterateNext())) {
node1.click();
setTimeout(() => {
document.querySelectorAll('*[role="menuitem"]')[document.querySelectorAll('*[role="menuitem"]').length - 1].click();
}, 100);
}
}
function showLatestComment(headings) {
let node1;
while ((node1 = headings.iterateNext())) {
node1.click();
setTimeout(() => {
document.querySelectorAll('*[role="menuitem"]')[document.querySelectorAll('*[role="menuitem"]').length - 2].click();
}, 100);
}
}
(function () {
"use strict";
document.addEventListener("dblclick", execute);
document.addEventListener("keydown", execute);
})();