您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add buttons to filter teacher list. Currently, it only applies when the web browser is pointing to https://www.italki.com/partners.
- // ==UserScript==
- // @name Add italki.com Teacher List Filter
- // @namespace https://greasyfork.org/en/users/85671-jcunews
- // @version 1.0.1
- // @description Add buttons to filter teacher list. Currently, it only applies when the web browser is pointing to https://www.italki.com/partners.
- // @author jcunews
- // @match https://www.italki.com/partners
- // @grant none
- // ==/UserScript==
- (function(t, list, prevEleCount, filteredUids, items) {
- function filterUser(item) {
- filteredUids.push(parseInt(this.getAttribute("uid")));
- localStorage.filteredUids = JSON.stringify(filteredUids);
- item = this.parentNode.parentNode.parentNode.parentNode;
- item.parentNode.removeChild(item);
- prevEleCount--;
- }
- function filterList(i, link, uid, btn) {
- clearTimeout(t);
- if ((prevEleCount < 0) || (items.length !== prevEleCount)) {
- if (prevEleCount < 0) prevEleCount = 0;
- for (i = items.length-1; i >= 0; i--) {
- if (!items[i].querySelector(".filter")) {
- link = items[i].querySelector("A");
- uid = parseInt(link.pathname.match(/\d+/)[0]);
- if (filteredUids.indexOf(uid) >= 0) {
- list.removeChild(items[i]);
- } else if (btn = items[i].querySelector(".btn")) {
- link = btn.cloneNode(true);
- link.textContent = "X";
- link.title = "Filter this teacher";
- link.classList.add("filter");
- link.style.cssText = "font-weight: bold; color: red";
- link.setAttribute("uid", uid);
- link.removeAttribute("href");
- link.removeAttribute("ui-sref");
- link.onclick = filterUser;
- btn.parentNode.insertBefore(link, btn);
- }
- }
- }
- }
- prevEleCount = items.length;
- t = setTimeout(filterList, 200);
- }
- prevEleCount = -1;
- filteredUids = localStorage.filteredUids || "[]";
- try {
- filteredUids = JSON.parse(filteredUids);
- } catch(t) {
- filteredUids = [];
- }
- items = document.getElementsByClassName("teacher-item");
- t = 0;
- (function init(filter, btn) {
- if (list = document.querySelector(".teacher-list")) {
- filterList();
- if (filter = document.querySelector(".panel-body > .filter > form > div:nth-child(2)")) {
- btn = document.createElement("BUTTON");
- btn.textContent = "Reset Teacher Filter";
- btn.className = "btn";
- btn.style.cssText = "margin-left: 2ex; padding: 0";
- btn.onclick = function() {
- filteredUids = [];
- localStorage.filteredUids = "[]";
- };
- filter.insertBefore(btn, filter.lastElementChild);
- }
- } else setTimeout(init, 100);
- })();
- })();