Программа для разделения больших частей текста на несколько сообщений в Discord
Лимит длины сообщения в Discord - 2000 символов (4000 для nitro). Порой возникает необходимость публиковать большие текста в виде сообщений. Данная программа помогает автоматизировать подобный постинг, разделяя текст на куски, длина которых гарантированно будет меньше лимита.
Это не просто разделение строки на равные лимиту части. Программа сначала пытается сохранить целостность абзацев в сообщении. Если встречается абзац длиной больше лимита, происходит разделение с сохранением целостности предложений. И только когда встречается предложение длиннее лимита, применяется описанное в начале грубое разделение.
Discord образает пробелы и переносы в начале и конце сообщения. Если встречается более одного переноса подряд (как правило, для создания пространства между абзацами) между получаемыми сообщениями, происходит попытка сохранения этих переносов путем вставки специальнего невидимого символа в конце первого.
Discord имеет свою реализацию markdown для пользовательских сообщений. Данная программа не работает со специальными символами, не гарантируя никакой целостности markdown-блоков. Например, большой код-блок (задаваемый символами "```") может быть спокойно разделен на два сообщения с началом в первом и конце во втором. В дальнейшем планируется ввести поддержку markdown.
На странице releases вы можете скачать последнюю версию программы, как правило собираемую под платформы windows (.exe) и linux (без расширения). Никакая дополнительная установка в систему не требуется - просто запускайте скачанный файл.
Для получения подробной справки воспользуйтесь параметром --help/-h.
По умолчанию читается буфер обмена. Присутствует возможность задать входной текстовый файл в качестве аргумента.
Лимит по умолчанию - 2000. Аргумент --nitro/-n увеличивает его до 4000.
split.py - Сам алгоритм разделения.
__main__.py - Обертка консольного приложения.
Проект использует pipenv. После установки зависимостей введите:
pipenv run pyinstaller __main__.py --onefile