TCleanner

У розробці
Шукайте в завантаженій історії Telegram офлайн за допомогою регулярних виразів на iPhone та iPad.
Пошук: регулярний вираз знаходить пароль від Wi-Fi, надісланий у чаті, у вбудованому демонстраційному архівіШаблони: збережені шаблони пошуку і вбудовані для паролів, одноразових кодів, ключів API, номерів карток, email-адрес і номерів телефонівВидалення: два вибрані повідомлення і підтвердження, яке називає точну кількість і каже, що їх буде видалено для всіхЯк це працює: принципи приватності так, як застосунок показує їх у ПараметрахДіапазон дат: лише повідомлення до вибраної дати, готові до видалення

Для чого він

Офлайн-пошук працює з уже завантаженою історією. Видалення потребує інтернету; видалити повідомлення для всіх можна лише там, де це дозволяє Telegram.

Люди залишають у чатах різне: пароль, надісланий поспіхом, одноразовий код, ключ API, номер картки, адресу. Власний пошук Telegram знайде слово, якщо ви пам’ятаєте, в якому чаті воно було і в якій формі. TCleanner будує на пристрої простий індекс вашої історії і дає змогу запустити справжній регулярний вираз по всій ній одразу, а потім вибрати знайдене і видалити його — для всіх, на кожному пристрої, з точною кількістю перед очима, перш ніж щось зникне.

Він читає лише ваш власний обліковий запис і ніколи не надсилає повідомлень. Він індексує ваші особисті чати й групи; канали, на які ви підписані, індексуються лише якщо ви це ввімкнете.

Де дані

Сервера немає, як і аналітики, реклами чи трекерів. Єдині бібліотеки — власна TDLib від Telegram і локальна база даних GRDB. Індекс зберігається в закритому сховищі застосунку і виключений з резервних копій. Сеанс зберігається в зашифрованому каталозі даних TDLib, теж закритому й виключеному з резервних копій; ключ до нього — у Keychain з параметром «лише цей пристрій»: він може бути в зашифрованій резервній копії пристрою, але його не можна відновити на іншому пристрої. Застосунок звертається лише до Telegram, як ваш клієнт.

Ті самі шість принципів є в застосунку, у Параметри › Як це працює: на вашому пристрої; лише Telegram; нічого третім особам; ви вирішуєте, що видаляти; ваш сеанс та індекс; діагностика — лише якщо ви самі її експортуєте. Повний текст — у політиці конфіденційності.

Як він побудований

Нативний застосунок для iPhone та iPad. Один Swift-пакет містить домен і презентери; SwiftUI відображає знімок стану і надсилає намір назад. До Telegram застосунок звертається через TDLib з вимкненою власною базою повідомлень, бо індексом володіє сам застосунок. Цей індекс — SQLite через GRDB, і пошук по ньому — повний перегляд із ранньою зупинкою, а не індекс слів: індекс слів не може відповісти на регулярний вираз.

Поведінку записують раніше, ніж код: одинадцять специфікацій можливостей із виконуваними сценаріями, кожна вимога — під незмінним ідентифікатором, на який посилаються код і тести. Тести працюють на тестових реалізаціях із керованим годинником. У проєкту є власний інструмент мутаційного тестування з цільовим порогом 100%; його досягли всі можливості. Індексування саме регулює темп і продовжується після того, як застосунок було примусово закрито. Видалення завжди для всіх, завжди підтверджується точною кількістю і ніколи не відбувається за розкладом.

Стан

Застосунку ще немає в App Store. Вбудований демонстраційний архів використовується для розробки й тестування без облікового запису Telegram. Вихідний код закритий.

трекер відгуків

Підтримка застосунку та діагностика: support@kudravets.com. Загальні питання: info@kudravets.com.

Неофіційний застосунок. Використовує API Telegram; не пов’язаний з Telegram.

Ліцензії відкритого ПЗ (англійською)

© 2026 Ilya Kudravets