Тостар - усё ў кампосцер. Фільтруй і кайфуй

Так ужо склалася, што ў СНД даволі папулярны рускі Q&A рэсурс па ІТ тэматыцы. Тостар. Аднак чагосьці яму не хапала, калі я пачаў з ім шчыльна знаёміцца. Гэта і вылілася ў паляпшэнне ў выглядзе браузернага пашырэння. Сустракайце.

Ключавыя асаблівасці:

  • Назва: Toster Comfort.
  • Статыстыка карыстальнікаў: працэнт пытанняў з рашэннем; карма з Хабра; зводка з профілю - усё гэта ў спісе пытанняў Тостара.
  • Апавяшчэнні: у рэальным часе на сайце, на абразку, плюс push-паведамлення, шмат налад, сайт павінен быць адкрыты (вікі).
  • Фільтры: умовы на аснове формул: можна хаваць пытанні, размалёўваць іх колерам, а таксама паказваць апавяшчэнні, — усё гэта гнутка наладжваецца ў выглядзе лагічных умоў (вікі).
  • інтэрфейс: дробныя паляпшэнні, напрыклад, паказ дакладных дат або адлюстраванне статусу падпіскі ў спісе пытанняў.
  • Інтэрфейс Хабра: дробныя паляпшэнні (апцыянальна), напрыклад, лініі на водступы ў каментарах.
  • Адкрыты зыходны код: можна перарабіць пад сябе, калі вельмі хочацца (зыходнікі).
  • Бясплатна: Ліцэнзія MIT.
  • Спажыванне памяці: 30-50МБ, у залежнасці ад опцый і інтэнсіўнасці выкарыстання Тостара
  • Памер: 93КБ для v0.8.1 (распакаваны, не мінімізаваны код).
  • Фрэймворк: адсутнічае, читсый JS (мінімалізм).
  • Якасць кода: сярэдняе, змешванне стыляў, вялікія функцыі, брудныя прыёмы, мала каментаў.
  • дазволу: toster.ru, habr.com, notifications, storage, unlimitedStorage

Першапачаткова пашырэнне зрабіў для сябе з адной-адзінай мэтай: паказваць адсотак пытанняў карыстача, у якіх ён знайшоў час націснуць кнопку «Адзначыць рашэннем». Затым памаленьку дадаваліся то адны, то іншыя хацелкі, пакуль прылада не вырас у монстра на сотню кілабайт. Тым не менш, прынцып "не выкарыстоўваць нічога лішняга" выконваўся да канца.

Адной з галоўных фіч зараз з'яўляецца выкарыстанне формул у наладах. З імі можна рабіць практычна, што заўгодна, любую хацелку па кіраванні сваёй увагай. Галоўнае ведаць, чаго хацець. Утойванне, змена колеру і апавяшчэнні - вось тры асноўных аспекту ўвагі пры працы з сайтам. Фільтраванне за ўсё і ўся ключ да выгоды.

Прыклад гнуткага правіла, якое дазволіць атрымліваць апавяшчэнні на пэўную тэму:

!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

Адразу скажу, што функцыю eval() выкарыстоўваць было нельга. Так што асабліва не разгуляешся. Таму прыйшлося напісаць свой мыліц на 5 КБ кода, выкарыстоўваючы зваротны польскі запіс. Гэта, можна сказаць, моцна спакладаны JS, як па функцый, так і па сінтаксісе.

Нядаўна быў пост пра Toster Extension. Калі параўноўваць, то TE мае прыямнейшы інтэрфейс і сякія-такія функцыі, якіх няма ў Toster Comfort. Аднак маё пашырэнне робіць акцэнт на спажыванні рэсурсаў. Зрэшты, ніхто не перашкаджае выкарыстоўваць абодва пашырэнні, яны не павінны канфліктаваць.

Па-добраму, TC трэба перапісваць з нуля, таму што працу можна паскорыць мінімум удвая, а працу з кэшам – раз у 10, адмовіўшыся ад localStorage і JSON.stringify() і змяніўшы некаторыя архітэктурныя рашэнні. Але гэты подзвіг трэба рабіць ужо не мне. А я прыхільнік прынцыпу "працуе - не чапай". Пакуль водпуск, актыўна прымаю issues і PR, але не ў шкоду мінімалізму. Дзякуй за ўвагу!

Крыніца: habr.com

Дадаць каментар