Abysim
1 min readFeb 28, 2021

--

Виявив баг в логіці обробки дописів в Twitter, коли в Telegram написав повідомлення з посиланням на цю статтю. Посилання дуже довге за рахунок екранування кирилиці кодами символів. І повідомлення з посиланням вийшло довшим за 280 символів, хоча Twitter всі посилання приводить до довжини 23 символи.

Зараз виправив цю логіку. Тепер в тексті посилання замінюю на рядок-плейсхолдер з 24-х символів "X". Посиланнями вважаю той текст, що починається на "http" і завершується пробілом. Знаю, що це не дуже вірно, бо після послання можуть бути знаки пунктуації, котрі не є частиною посилання, але пишу код для себе і не хочу його дуже ускладнювати, тому просто плейсхолдер має 24 символи, а не 23. В торії баги можуть бути, але для мене цього достатньо.

Оригінальне повідомлення без замінених посилань зберігаю окремо і його відправляю в інші мережі та в сам Twitter, якщо текст з заміненими посиланнями не перевищує ліміт. А перед відправкою скороченого повідомлення в Twitter вже замінюю плейсхолдери на оригінальні посилання.

Не дуже гарний код, але доволі простий. Можна було все коротше і гарніше реалізувати за допомогою регулярних виразів. Але це ускладнило би код і не факт, що там також всі випадки передбачалися. Як кажуть, якщо для рішення однієї проблеми використовуєш регулярний вираз, то в тебе вже дві проблеми :)

Виправив цю логіку для випадків відправки повідомлені в Twitter з Instagram і Telegram. Для відправки з RSS нічого не змінилося, бо там й так з тексти прибираю всі посилання перед відправкою. Код відповідних трьох фільтрів дій IFTTT на GitHub Gist оновив і зараз в тексті основної статті вже фрагменти коду з цією виправленою логікою.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Abysim
Abysim

Written by Abysim

Team lead, web developer, support product owner and engineer, photo amateur, gamer, fan of TV shows and big cats.

No responses yet

Write a response