TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django

Резултати

Пронајдени 281 слични објави

Пребарај: #unigram

当前筛选 #unigram清除筛选
Telegram github commits and releases

@tgappsupdates · Post #19707 · 16.04.2026 г., 11:18

UnigramDev/Unigram/develop • f2522c1 • 1 files, +1/-1 Update TDLib UnigramDev/Unigram/develop • c7d57ba • 45 files, +2486/-281 Initial progress with polls UnigramDev/Unigram/develop • 55601bf • 8 files, +504/-15 Initial progress with ai editor UnigramDev/Unigram/develop • 09deed4 • 14 files, +71/-21 API changes UnigramDev/Unigram/develop • 64bc48e • 2 files, +70/-0 Markup acc UnigramDev/Unigram/develop • 5d603eb • 1 files, +1/-1 Show "Connecting to proxy" whenever a proxy is enabled UnigramDev/Unigram/develop • 7f01357 • 2 files, +2/-2 Bump version to 12.6 #unigram

Hashtags

Telegram github commits and releases

@tgappsupdates · Post #19511 · 03.03.2026 г., 13:03

UnigramDev/Unigram/develop • 4d62503 • 3 files, +3/-11 Update TDLib UnigramDev/Unigram/develop • 492b236 • 4 files, +66/-21 Date context menu UnigramDev/Unigram/develop • 20777be • 2 files, +17/-9 Context menu improvements UnigramDev/Unigram/develop • 5da9c01 • 2 files, +625/-625 Update icons UnigramDev/Unigram/develop • e771183 • 2 files, +5/-1 Content protection improvements UnigramDev/Unigram/develop • d6f3340 • 1 files, +1/-1 Profile photo fix UnigramDev/Unigram/develop • 2a31233 • 1 files, +1/-1 Default style fix UnigramDev/Unigram/develop • 6ff1d71 • 6 files, +25/-19 Refactoring UnigramDev/Unigram/develop • 3ca6e95 • 2 files, +2/-2 Bump version to 12.5 #unigram

Hashtags

Telegram github commits and releases

@tgappsupdates · Post #19471 · 27.02.2026 г., 15:18

UnigramDev/Unigram/develop • c053548 • 6 files, +66/-17 Show time in poll votes UnigramDev/Unigram/develop • 9948486 • 7 files, +816/-662 Member tag info popup UnigramDev/Unigram/develop • 03de021 • 3 files, +89/-11 Member tag in admin rights UnigramDev/Unigram/develop • 76ebb44 • 3 files, +95/-2 Member tag in restrictions UnigramDev/Unigram/develop • aa25b00 • 7 files, +192/-2 Standalone edit tag UnigramDev/Unigram/develop • e0b0a8f • 2 files, +2/-17 Update TDLib UnigramDev/Unigram/develop • 66736a7 • 2 files, +5/-0 Edit tag permission in delete messages UnigramDev/Unigram/develop • 56a22fa • 6 files, +378/-16 Edit tags in group permissions UnigramDev/Unigram/develop • e3ab6eb • 1 files, +11/-11 Process all files updates UnigramDev/Unigram/develop • abe169f • 1 files, +1/-2 Fix entity length UnigramDev/Unigram/develop • f9fb592 • 13 files, +208/-15 Update tag through updates UnigramDev/Unigram/develop • 8e1332e • 3 files, +57/-0 Tags toggle in members list UnigramDev/Unigram/develop • 2008909 • 2 files, +59/-1 Tags event logs entries UnigramDev/Unigram/develop • 14413d7 • 2 files, +9/-1 Tags event log filter UnigramDev/Unigram/develop • b2fd284 • 1 files, +23/-3 Copy protection context menu info UnigramDev/Unigram/develop • 0c8c65e • 6 files, +88/-13 Support media in embedded links #unigram

Hashtags

Telegram github commits and releases

@tgappsupdates · Post #19430 · 13.02.2026 г., 11:33

UnigramDev/Unigram/develop • 7607e97 • 17 files, +176/-523 Settings radio button UnigramDev/Unigram/develop • 15b3910 • 1 files, +23/-3 Don't query download folder if temp is selected UnigramDev/Unigram/develop • 1d2b0a3 • 3 files, +37/-6 Logout from passcode #unigram

Hashtags

Telegram github commits and releases

@tgappsupdates · Post #19425 · 10.02.2026 г., 14:34

UnigramDev/Unigram/develop • 85e844a • 2 files, +5/-2 Disable manual GC UnigramDev/Unigram/develop • 55cf886 • 1 files, +1/-1 Fix poll option selection UnigramDev/Unigram/develop • 304a8ff • 1 files, +6/-24 Close payment popup on error UnigramDev/Unigram/develop • cc22886 • 2 files, +133/-35 Limit reports per hour UnigramDev/Unigram/develop • 9fc0bfe • 1 files, +4/-0 Fix open direct chat photo UnigramDev/Unigram/develop • afb21cd • 2 files, +2/-2 Bump version to 12.4.1 #unigram

Hashtags

Telegram github commits and releases

@tgappsupdates · Post #19416 · 09.02.2026 г., 09:33

UnigramDev/Unigram/develop • 8665681 • 21 files, +4018/-640 First iteration gift crafting UnigramDev/Unigram/develop • feabbc2 • 1 files, +1/-1 Update TDLib submodule UnigramDev/Unigram/develop • 1cc40e7 • 3 files, +4/-18 Fix login widget UnigramDev/Unigram/develop • 965515d • 1 files, +2/-2 Missing changes UnigramDev/Unigram/develop • 1ca5c88 • 1 files, +472/-30 New deeplinks (needs update) UnigramDev/Unigram/develop • 030b017 • 3 files, +611/-1 Bot buttons styles UnigramDev/Unigram/develop • 2fb9bc0 • 3 files, +14/-3 Fix search radius UnigramDev/Unigram/develop • 9ffe58d • 1 files, +2/-2 Bot improvements UnigramDev/Unigram/develop • 77db88d • 1 files, +87/-47 Fix styles UnigramDev/Unigram/develop • 286494f • 2 files, +6/-2 Update TDLib UnigramDev/Unigram/develop • 7d60a60 • 9 files, +6/-9 Code clean up UnigramDev/Unigram/develop • 93830df • 1 files, +4/-6 Fix webrtc definitions UnigramDev/Unigram/develop • 6ad4709 • 2 files, +110/-1 Sync strings UnigramDev/Unigram/develop • 4dba252 • 2 files, +2/-2 Bump version to 12.4 UnigramDev/Unigram/develop • a7dc0e2 • 3 files, +29/-60 Refactoring #unigram

Hashtags

Telegram github commits and releases

@tgappsupdates · Post #19386 · 30.01.2026 г., 13:03

UnigramDev/Unigram/develop • c5d2b4a • 8 files, +31/-17 Update TDLib UnigramDev/Unigram/develop • 0dc7351 • 7 files, +368/-48 New login widget UnigramDev/Unigram/develop • 118eac4 • 7 files, +252/-24 Improve add proxy popup UnigramDev/Unigram/develop • 251e160 • 6 files, +107/-77 Show search results inline UnigramDev/Unigram/develop • 1e08ba6 • 16 files, +658/-445 Synchronize proxy settings across accounts UnigramDev/Unigram/develop • cb0ad6a • 3 files, +0/-130 Remove unused class UnigramDev/Unigram/develop • 0075e64 • 2 files, +6/-5 Improve table style #unigram

Hashtags

123•••10•••20•••2324
ПретходнаСтраница 1 од 24Следна