0%

CleanSlate for Reddit — приватная очистка истории Reddit

Rianvy
Эта запись также доступна на 🇬🇧 English
CleanSlate for Reddit — приватная очистка истории Reddit
Завершён

Проект успешно завершён и работает

Используемые инструменты

React
TypeScript
WXT
Vite
Vitest
WebExtensions API

CleanSlate for Reddit — локальное браузерное расширение для безопасной и контролируемой очистки собственной истории Reddit без подписки, внешнего сервера и передачи данных третьим лицам.

📌 О проекте

CleanSlate помогает удалить собственные посты и комментарии, очистить сохранённые публикации, снять лайки и дизлайки и при необходимости скрыть обработанные посты. Расширение использует уже открытую сессию Reddit и работает непосредственно в браузере — без Client ID, отдельной OAuth-формы или внешнего backend.

Ключевая цель проекта — дать пользователю прозрачный и предсказуемый инструмент для массовой очистки: сначала отсканировать историю, затем проверить каждое действие и только после явного подтверждения запустить очередь.


✨ Что было сделано

Интерфейс и UX

  • Реализован компактный launcher, который открывает рабочее окно поверх Reddit
  • Спроектирован пошаговый сценарий: выбор разделов, настройка фильтров, предварительный просмотр и выполнение
  • Добавлены состояния активной сессии, прогресса, паузы, ошибок и завершения
  • Интерфейс изолирован от стилей Reddit через Shadow DOM
  • Поддерживаются русский и английский языки

Сканирование и фильтрация

  • Сканирование собственных постов, комментариев, сохранённых публикаций, лайков и дизлайков
  • Полная курсорная пагинация Reddit — до 2000 элементов в каждом разделе
  • Фильтры по тексту, сабреддитам, рейтингу, диапазону дат и NSFW
  • Дедупликация результатов перед формированием очереди
  • Экспорт предварительного списка в JSON или CSV

Безопасное выполнение

  • Предварительный просмотр всех найденных элементов с возможностью снять выбор
  • Дополнительное подтверждение словом DELETE перед удалением постов и комментариев
  • Опциональная перезапись комментариев перед удалением
  • Пауза, продолжение, остановка и повтор только неудачных действий
  • Автоматическая обработка ограничений Reddit с обратным отсчётом при ответе 429
  • Повтор временных ошибок 503 с увеличивающейся задержкой
  • Контролируемые интервалы между запросами и периодические паузы в длинных очередях

Приватность

  • Данные обрабатываются локально и хранятся только в памяти вкладки
  • Используется существующая cookie-сессия браузера
  • Запросы отправляются только на домены Reddit
  • Нет аналитики, рекламы, телеметрии, лицензирования и платежей
  • Manifest запрашивает только доступ к https://*.reddit.com/*

🖼️ Интерфейс расширения


🎨 Дизайн-система

Reddit Orange

#FF4500

Background

#0F1113

Surface

#1B1F22

Text Primary

#F5F5F5

Session Active

#3DDC84
  • Визуальный стиль: тёмные поверхности, контрастный оранжевый акцент и мягкое свечение ключевых действий
  • Компоненты: карточки разделов, фильтры, чекбоксы, прогресс очереди и статусные индикаторы
  • Изоляция: стили интерфейса не зависят от текущей версии оформления Reddit

🛠️ Техническая реализация

Расширение построено на WXT, React 19 и TypeScript 6. Content script внедряет приложение на страницы Reddit, а Shadow DOM защищает интерфейс от конфликтов со стилями сайта. Отдельный popup показывает состояние проекта и помогает перейти к основной вкладке.

Клиент сессии получает текущего пользователя и modhash, сканирует JSON-списки Reddit с курсорной пагинацией и выполняет подтверждённые действия через штатные API endpoints. Очередь отделена от UI и управляет интервалами, паузами, повторными попытками и rate limiting. Критические сценарии фильтрации, работы с сессией и очередью покрыты тестами Vitest.

Проект собирается для Chromium и Firefox, использует Manifest V3 и распространяется под лицензией MIT.


🌐 Итог

  • Полноценный local-first инструмент для управления историей Reddit
  • Понятный сценарий с предварительным просмотром и явным подтверждением опасных действий
  • Устойчивое выполнение больших очередей с учётом ограничений Reddit
  • Минимальные разрешения и отсутствие внешней инфраструктуры
  • Открытый исходный код и двуязычный интерфейс

© 2025 - 2026 0x69.ru

Powered by ❤️

Readme.md

whoami 👨‍💻

$ cat /etc/profile

Username: Rianvy
Real name: Максим Александров
Age: 28 Location: Тула, RU
Role: Senior Developer & UI/UX Designer 😎

About

Этот блог — мой personal knowledge base, где я пушу заметки про tech stack, life experience и всё, что триггерит мой interest => 🚀

Contact

Open for collaboration 🤝 — готов к мёрджу идей и совместным проектам.

Stack

💻 ЯП

  • C#, PHP, JavaScript/TypeScript, Python

⚛️ Frontend

  • React / Next.js, Vue.js / Nuxt.js
  • Tailwind CSS / SCSS
  • Адаптивная вёрстка (HTML, CSS, JS) 📱

🔧 Backend

  • Laravel, Node.js / Express / NestJS
  • REST API

🗄️ Базы данных

  • MySQL, PostgreSQL, MongoDB, Redis

🛠️ DevOps

  • Docker, Git, CI/CD, Linux 🐧

🎨 Дизайн и графика

  • Figma — UI/UX дизайн и прототипирование
  • Photoshop — графика и обработка изображений
  • After Effects — моушн-дизайн и анимация 🎬
Мои Open Source проекты 🌟
Название VKify
Описание Мощное браузерное расширение для кастомизации ВКонтакте с блокировкой рекламы, темами оформления, режимом приватности и пользовательским CSS
Название CleanSlate for Reddit
Описание Приватное local-first расширение для очистки постов, комментариев, сохранённых публикаций и голосов Reddit прямо в браузере
Мои проекты 🚀
Название GreenShield VPN
Описание VPN-сервис в Telegram
Социальные сети