Warning: fopen(/www/sites/update.greasyfork.icu/index/store/temp/24be84a55cb5d4d3ad9a6bbffb32527b.js): failed to open stream: No space left on device in /www/sites/update.greasyfork.icu/index/scriptControl.php on line 65
// ==UserScript==
// @name Brainly Filter by Points
// @namespace tacheometry
// @match *://*brainly.pl/*
// @match *://*znanija.com/*
// @match *://*brainly.lat/*
// @match *://*brainly.com.br/*
// @match *://*nosdevoirs.fr/*
// @match *://*eodev.com/*
// @match *://*brainly.ro/*
// @match *://*brainly.co.id/*
// @match *://*brainly.in/*
// @match *://*brainly.ph/*
// @match *://*brainly.com/*
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.registerMenuCommand
// @license MIT
// @version 1.0
// @author tacheometry
// @description Hides questions that award below a certain number of points.
// @downloadURL https://update.greasyfork.icu/scripts/481542/Brainly%20Filter%20by%20Points.user.js
// @updateURL https://update.greasyfork.icu/scripts/481542/Brainly%20Filter%20by%20Points.meta.js
// ==/UserScript==
(function () {
"use strict";
const KEY_NAME = "MinimumQuestionAward";
const scanQuestions = async () => {
const minPoints = await GM.getValue(KEY_NAME, 10);
for (const pointsCounter of document.querySelectorAll(
"[data-testid='points_counter']"
)) {
const number = parseInt(pointsCounter.innerText);
if (number >= minPoints) continue;
const parent =
pointsCounter.closest("[data-testid='feed-item']") ??
pointsCounter.closest(
"[data-testid='answering_feed_question_list_item']"
);
if (!parent) continue;
parent.remove();
}
};
const observer = new MutationObserver(scanQuestions);
scanQuestions();
observer.observe(document, {
childList: true,
subtree: true,
attributes: false,
});
GM.registerMenuCommand(
"Change minimum award filter",
() => {
const result = prompt(
"Set minimum points awarded for a question to be shown:"
);
if (result) GM.setValue(KEY_NAME, parseInt(result));
},
{
id: "minAwardChangeButton",
}
);
})();