Toster – wszystko trafia do kompostownika. Filtruj i ciesz się

Tak się składa, że ​​rosyjskie zasoby pytań i odpowiedzi na tematy IT są dość popularne w WNP - Toster. Jednak czegoś mu brakowało, gdy zacząłem go bliżej poznawać. Zaowocowało to udoskonaleniem w postaci rozszerzenia przeglądarki. Spotkajmy się.

Kluczowe cechy:

  • Tytuł: Komfort tostera.
  • Statystyki użytkownika: procent pytań z rozwiązaniami; karma z Habr; podsumowanie z profilu - to wszystko jest na liście pytań Toastera.
  • Uwagi: w czasie rzeczywistym na stronie, na ikonie plus powiadomienia push, wiele ustawień, strona musi być otwarta (вики).
  • Filtry: warunki oparte na formułach: możesz ukrywać pytania, kolorować je, a także wyświetlać powiadomienia – wszystko to elastycznie konfigurujesz w formie warunków logicznych (вики).
  • Interfejs: drobne usprawnienia, takie jak pokazywanie dokładnych dat czy wyświetlanie statusu subskrypcji na liście pytań.
  • Interfejs Habra: drobne poprawki (opcjonalnie), np. wcięcia w komentarzach.
  • Otwarte źródło: Możesz to przerobić dla siebie, jeśli naprawdę chcesz (źródła).
  • Darmowy: Licencja MIT.
  • Zużycie pamięci: 30-50MB, w zależności od opcji i intensywności użytkowania Tostera
  • Rozmiar: 93 KB dla wersji 0.8.1 (kod rozpakowany, nie zminimalizowany).
  • Struktura: brak, czysty JS (minimalizm).
  • Jakość kodu: średnia, mieszanka stylów, duże funkcje, brudne sztuczki, kilka komentarzy.
  • Uprawnienia: toster.ru, habr.com, notifications, storage, unlimitedStorage

Początkowo stworzyłem rozszerzenie dla siebie w jednym celu: pokazać procent pytań użytkownika, w których zadał sobie trud kliknięcia przycisku „Oznacz jako rozwiązanie”. Potem stopniowo dodawano najpierw jeden, potem kolejny, aż narzędzie rozrosło się do potwora o wielkości stu kilobajtów. Niemniej jednak do końca zachowano zasadę „nie używania niczego niepotrzebnego”.

Jedną z głównych funkcji jest teraz użycie formuł w ustawieniach. Można z nimi zrobić prawie wszystko, co tylko chcesz, aby zarządzać swoją uwagą. Najważniejsze to wiedzieć, czego się chce. Ukrywanie, zmiana kolorów i powiadomienia to trzy główne aspekty, na które należy zwrócić uwagę podczas pracy z witryną. Filtrowanie czegokolwiek i wszystkiego jest kluczem do wygody.

Przykład elastycznej reguły, która pozwoli Ci otrzymywać powiadomienia na konkretny temat:

!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

Od razu powiem, że nie można było użyć funkcji eval(). Więc nie będziesz się dobrze bawić. Dlatego musiałem napisać własną kulę w 5 KB kodu, używając odwrotna notacja polska. Można powiedzieć, że jest to wysoce wykastrowany JS, zarówno pod względem funkcji, jak i składni.

Niedawno był post o Rozszerzenie Tostera. Dla porównania TE ma ładniejszy interfejs i pewne funkcje, których nie ma Toster Comfort. Jednak moje rozszerzenie kładzie nacisk na zużycie zasobów. Jednak nikt nie przeszkadza Ci w korzystaniu z obu rozszerzeń; nie powinny one kolidować.

W dobrym tego słowa znaczeniu TC trzeba napisać od nowa, bo pracę można przyspieszyć co najmniej dwukrotnie, a pracę z cache - 10 razy, rezygnując z localStorage i JSON.stringify() i zmieniając niektóre rozwiązania architektoniczne. Ale to nie ja muszę dokonać tego wyczynu. A ja jestem zwolenniczką zasady „jeśli to działa, to nie dotykaj”. Będąc na wakacjach, aktywnie zajmuję się tematyką i PR, ale nie kosztem minimalizmu. Dziękuję za uwagę!

Źródło: www.habr.com

Dodaj komentarz