terratensor / tg-svodd-bot

Telegram svodd.ru bot
https://t.me/svoddru
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Улучшение обработки цитируемого отрезка #32

Closed audetv closed 1 month ago

audetv commented 1 month ago

Добавлена функция ModifyText, которая проверяет последний символ строки и заменяет его на "…", если он присутствует в указанном списке, в противном случае просто добавляет "…" в конец строки: []rune{' ', '.', ',', ':', ';', '…', '-', '–', '—', '=', '+'}

Переводим строку в числа: []int{1055, 1088, 1080, 1074, 1077, 1090, 44, 32, 1084, 1080, 1088, 8230} далее проверяем последний элемент массива, заменяем его при необходимости, переводим обратно в строку.

Т.к. мы работаем с кириллицей в utf-8, то функция переводит строку в срез рун. Руны используются для работы с юникодными символами. Руна (Rune) - это целое число типа int32, которое представляет отдельный символ. Функция работает с числами.

Добавлены автоматические тесты для функций truncateText — ограничение размера цитируемого отрывка и ModifyText — добавление многоточия к цитируемому отрывку.

issue #27 https://github.com/terratensor/tg-svodd-bot/issues/27#issuecomment-2267503237 https://github.com/terratensor/tg-svodd-bot/issues/27#issuecomment-2267514883