Tostera — wszystko w kompostera. Filtruj i ciesz się

To się złożyło, że w krajach WNP dość popularny jest rosyjski serwis Q&A poświęcony tematyce IT — Toster. Jednak brakowało mu czegoś, gdy zacząłem się z nim bliżej zapoznawać. To zaowocowało w postaci rozszerzenia przeglądarki. Oto jest.

Kluczowe cechy:

  • Nazwa: Toster Comfort.
  • Statystyki użytkowników: procent pytań z rozwiązaniem; karma z Habr; podsumowanie profilu — to wszystko w liście pytań Tostera.
  • Powiadomienia: w czasie rzeczywistym na stronie, na ikonie, plus powiadomienia push, wiele ustawień, strona musi być otwarta (wiki).
  • Filtry: warunki oparte na formułach: można ukrywać pytania, zmieniać ich kolor, a także pokazywać powiadomienia — wszystko to elastycznie konfigurowane w postaci warunków logicznych (wiki).
  • Interfejs: drobne ulepszenia, na przykład wyświetlanie dokładnych dat lub statusu subskrypcji w liście pytań.
  • Interfejs Habra: drobne ulepszenia (opcjonalnie), na przykład linie wwierszy w komentarzach.
  • Open source: można dostosować do siebie, jeśli bardzo chcesz (źródła).
  • Darmowe: Licencja MIT.
  • Zużycie pamięci: 30-50MB, w zależności od opcji i intensywności korzystania z Tostera
  • Rozmiar: 93KB dla v0.8.1 (rozpakowany, nie zminimalizowany kod).
  • Framework: brak, czysty JS (minimalizm).
  • Jakość kodu: średnia, mieszanie stylów, duże funkcje, brudne sztuczki, mało komentarzy.
  • Uprawnienia: toster.ru, habr.com, powiadomienia, storage, unlimitedStorage

Pierwotnie rozszerzenie stworzyłem dla siebie z jedynym celem: pokazywanie procentu pytań użytkownika, w których pokusił się nacisnąć przycisk „Oznacz jako rozwiązanie”. Potem stopniowo dodawano to i owo, aż narzędzie urosło do potwora o wadze stu kilobajtów. Niemniej jednak zasada „nie używać niczego zbędnego” była przestrzegana do końca.

Jedną z głównych funkcji jest obecnie wykorzystanie formuł w ustawieniach. Dzięki nim można robić praktycznie wszystko, każdą zachciankę dotyczącą zarządzania swoją uwagą. Najważniejsze to wiedzieć, czego się chce. Ukrywanie, zmiana koloru i powiadomienia — oto trzy główne aspekty uwagi podczas korzystania z serwisu. Filtrowanie wszystkiego i wszytskiego — klucz do wygody.

Przykład elastycznej zasady, która pozwoli otrzymywać powiadomienia na określony temat:

!tag("Blokowanie reklam") && !contains(t,"reklam") && contains(t,"blokuj") && !tag("HTACCESS") || containsWord(t,"rkn") || contains(t,"roskomnadzor") || contains(t,"roskompozytor") || contains(t,"państw") || contains(t,"zakazany") || contains(t,"zakazany") || contains(t,"piracki") || containsWord(t,"obejście") || containsWord(t,"rostelekom") || containsWord(t,"jarowoj") || containsWord(t,"rf") && tag("Sieci komputerowe") = notify

Od razu mówię, że funkcji eval() nie można było użyć. Dlatego musiałem napisać własny hack o wielkości 5 KB kodu, używając odwrotnej notacji polskiej. To można powiedzieć, że jest mocno okrojony JS, zarówno pod względem funkcji, jak i składni.

Niedawno był post o Rozszerzeniu Toster. Jeśli porównasz, to TE ma bardziej przyjazny interfejs i pewne funkcje, których brakuje w Toster Comfort. Jednak moje rozszerzenie kładzie nacisk na zużycie zasobów. Niemniej jednak, nikt nie przeszkadza w używaniu obu rozszerzeń, nie powinny one kolidować.

Szczerze mówiąc, TC powinno być przepisane od nowa, ponieważ można przyspieszyć pracę co najmniej dwukrotnie, a pracę z pamięcią podręczną — dziesięciokrotnie, rezygnując z localStorage i JSON.stringify() oraz zmieniając niektóre decyzje architektoniczne. Ale ten wyczyn nie jest już dla mnie. A ja jestem zwolennikiem zasady „działa — nie ruszaj”. Na razie mam urlop, aktywnie przyjmuję zgłoszenia i PR, ale nie kosztem minimalizmu. Dziękuję za uwagę!

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster