To się złożyło, że w krajach WNP dość popularny jest rosyjski serwis Q&A poświęcony tematyce IT — . 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 ().
- 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 ().
- 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 ().
- Darmowe: Licencja MIT.
- Platforma: , .
- 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") = notifyOd 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 . To można powiedzieć, że jest mocno okrojony JS, zarówno pod względem funkcji, jak i składni.
Niedawno był post o . 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
