Toaster – alles im Komposter. Filtern und genießen.

Es hat sich so ergeben, dass eine russische Q&A-Plattform zu IT-Themen im GUS-Raum recht beliebt ist — Toaster. Dennoch fehlte ihr etwas, als ich anfing, mich intensiver damit zu beschäftigen. Das hat zu einer Verbesserung in Form einer Browsererweiterung geführt. Herzlich willkommen.

Wesentliche Merkmale:

  • Name: Toster Comfort.
  • Nutzerstatistik: Prozentsatz der beantworteten Fragen; Karma von Habr; Zusammenfassung aus dem Profil — all dies ist in der Fragenliste von Toster enthalten.
  • Benachrichtigungen: In Echtzeit auf der Website, auf dem Symbol, dazu Push-Benachrichtigungen, viele Einstellungen, die Website muss geöffnet sein (Wiki).
  • Filter: Bedingungen basierend auf Formeln: Fragen können ausgeblendet, farblich hervorgehoben und Benachrichtigungen angezeigt werden — all dies lässt sich flexibel als logische Bedingungen einstellen (Wiki).
  • Benutzeroberfläche: Kleine Verbesserungen, zum Beispiel die Anzeige genauere Datumsangaben oder den Status des Abonnements in der Fragenliste.
  • Habr-Oberfläche: Kleine Verbesserungen (optional), wie Linien für Einrückungen in Kommentaren.
  • Open Source: Kann nach eigenem Belieben angepasst werden, wenn gewünscht (die Quellcodes).
  • Kostenlos: MIT-Lizenz.
  • Speicherverbrauch: 30-50 MB, abhängig von den Optionen und der Intensität der Nutzung von Toster.
  • Größe: 93 KB für v0.8.1 (entpackter, nicht minimierter Code).
  • Framework: fehlt, reines JS (Minimalismus).
  • Codequalität: durchschnittlich, vermischte Stile, große Funktionen, unsaubere Tricks, wenige Kommentare.
  • Berechtigungen: toster.ru, habr.com, notifications, storage, unlimitedStorage

Ursprünglich wurde die Erweiterung für den persönlichen Gebrauch mit einem einzigen Ziel erstellt: den Prozentsatz der Benutzeranfragen anzuzeigen, bei denen sie den Button „Als gelöst markieren“ gedrückt haben. Nach und nach wurden immer wieder neue Wünsche hinzugefügt, bis das Tool zu einem 100-Kilobyte-Monster heranwuchs. Dennoch wurde das Prinzip „nichts Überflüssiges verwenden“ bis zum Ende beibehalten.

Eine der Hauptfunktionen ist jetzt die Verwendung von Formeln in den Einstellungen. Damit kann man praktisch alles machen, was man sich zur Steuerung seiner Aufmerksamkeit wünscht. Es ist wichtig zu wissen, was man will. Verdeckung, Farbänderung und Benachrichtigungen — das sind die drei Hauptaspekte der Aufmerksamkeit bei der Arbeit mit der Website. Die Filterung von allem und jedem ist der Schlüssel zur Benutzerfreundlichkeit.

Beispiel für eine flexible Regel, die Benachrichtigungen zu einem bestimmten Thema ermöglicht:

!tag("Betriebsblockierung") && !contains(t,"Werbung") && contains(t,"Blockierung") && !tag("HTACCESS") || containsWord(t,"rkn") || contains(t,"Roskomnadsor") || contains(t,"Roskompozor") || contains(t,"Staaten") || contains(t,"verboten") || contains(t,"verboten") || contains(t,"piratisch") || containsWord(t,"Umgehung") || containsWord(t,"Rostelekom") || containsWord(t,"Jarowoj") || containsWord(t,"RF") && tag("Computernetzwerke") = notify

Ich sage gleich, dass die Verwendung der Funktion eval() nicht erlaubt war. Daher kannst du dich nicht besonders ausleben. Deshalb musste ich meinen eigenen Workaround mit 5 KB Code schreiben, indem ich die umgekehrte polnische Notation. Es ist sozusagen stark eingeschränkter JS, sowohl was Funktionen als auch die Syntax betrifft.

Kürzlich gab es einen Beitrag über Toster Extension. Im Vergleich hat TE eine angenehmere Benutzeroberfläche und einige Funktionen, die in Toster Comfort nicht verfügbar sind. Mein Erweiterung legt jedoch den Fokus auf den Ressourcennutzung. Dennoch steht es niemandem im Weg, beide Erweiterungen zu verwenden, sie sollten nicht in Konflikt geraten.

Im Grunde genommen sollte TC von Grund auf neu geschrieben werden, da die Arbeit mindestens doppelt so schnell erledigt werden kann, während die Arbeit mit dem Cache sogar zehnmal schneller wäre, wenn man auf localStorage und JSON.stringify() verzichtet und einige architektonische Entscheidungen ändert. Aber dieses Unterfangen muss jemand anderes übernehmen. Ich bin ein Freund des Prinzips "läuft – lass es in Ruhe". Solange Urlaub ist, nehme ich aktiv Issues und PRs an, aber nicht auf Kosten des Minimalismus. Vielen Dank für Ihre Aufmerksamkeit!

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster