Toustovač – vše jde do kompostéru. Filtrujte a užívejte si

Náhodou je ruský zdroj otázek a odpovědí na IT témata v SNS docela populární - Topinkovač. Něco mu však chybělo, když jsem ho začal zblízka poznávat. To mělo za následek vylepšení v podobě rozšíření prohlížeče. Seznamte se se mnou.

Klíčové vlastnosti:

  • Název: Toustovač Comfort.
  • Statistiky uživatelů: procento otázek s řešením; karma od Habra; shrnutí z profilu - to vše je na seznamu otázek Toasteru.
  • Upozornění: v reálném čase na webu, na ikoně, plus push notifikace, mnoho nastavení, web musí být otevřený (wiki).
  • Filtry: podmínky založené na vzorcích: můžete skrýt otázky, vybarvit je a také zobrazovat oznámení - to vše je flexibilně konfigurováno ve formě logických podmínek (wiki).
  • Rozhraní: drobná vylepšení, jako je zobrazení přesných dat nebo zobrazení stavu předplatného v seznamu otázek.
  • Rozhraní Habr: drobná vylepšení (volitelná), například odsazení řádků v komentářích.
  • Otevřený zdroj: Můžete si to předělat pro sebe, pokud opravdu chcete (Zdroje).
  • Uvolnit: Licence MIT.
  • Spotřeba paměti: 30-50MB, v závislosti na možnostech a intenzitě používání Toustovače
  • Velikost: 93 kB pro verzi 0.8.1 (rozbaleno, neminifikovaný kód).
  • Rámec: chybí, čistý JS (minimalismus).
  • Kvalita kódu: průměr, mix stylů, velké funkce, špinavé triky, málo komentářů.
  • Oprávnění: toster.ru, habr.com, notifications, storage, unlimitedStorage

Zpočátku jsem rozšíření vytvořil pro sebe s jediným účelem: ukázat procento dotazů uživatele, ve kterých se obtěžoval kliknout na tlačítko „Označit jako řešení“. Pak se postupně přidával nejprve jeden a pak další, dokud se nástroj nerozrostl v monstrum o velikosti sta kilobajtů. Nicméně zásada „nepoužívat nic zbytečného“ byla dodržena až do konce.

Jednou z hlavních funkcí je nyní použití vzorců v nastavení. Můžete s nimi dělat téměř cokoli, cokoli, co chcete řídit svou pozornost. Hlavní je vědět, co chtít. Skrytí, změna barev a upozornění jsou tři hlavní aspekty, kterým je třeba věnovat pozornost při práci s webem. Filtrování čehokoli a všeho je klíčem k pohodlí.

Příklad flexibilního pravidla, které vám umožní přijímat upozornění na konkrétní téma:

!tag("Блокирование рекламы") && !contains(t,"реклам") && contains(t,"блокиров") && !tag("HTACCESS") || containsWord(t,"ркн") || contains(t,"роскомнадзор") || contains(t,"роскомпозор") || contains(t,"государств") || contains(t,"запрещен") || contains(t,"запрещён") || contains(t,"пиратск") || containsWord(t,"обход") || containsWord(t,"ростелеком") || containsWord(t,"яровой") || containsWord(t,"рф") && tag("Компьютерные сети") = notify

Hned řeknu, že funkci eval() nelze použít. Moc zábavy si tedy neužijete. Proto jsem musel napsat svou vlastní berličku v 5 KB kódu pomocí reverzní polská notace. Dalo by se říci, že jde o vysoce kastrovaný JS, a to jak z hlediska funkcí, tak syntaxe.

Nedávno tu byl příspěvek o Rozšíření Toster. Ve srovnání s tím má TE hezčí rozhraní a některé funkce, které Toster Comfort nemá. Moje rozšíření však zdůrazňuje spotřebu zdrojů. Nikdo vás však neobtěžuje používat obě rozšíření, neměla by být v konfliktu.

V dobrém slova smyslu je potřeba TC přepsat od nuly, protože práci lze urychlit minimálně dvakrát, a pracovat s mezipamětí – 10krát, opuštěním localStorage a JSON.stringify() a změnou některých architektonických řešení. Ale nejsem to já, kdo musí dělat tento výkon. A jsem zastáncem zásady „když to funguje, nesahej na to“. Zatímco jsem na dovolené, aktivně se věnuji tématům a PR, ale ne na úkor minimalismu. Děkuji za pozornost!

Zdroj: www.habr.com

Přidat komentář