@RWBY_Gallery · Post #20094 · 01.09.2024 г., 14:14
#Mercury Rainydays_eef @RWBY_Gallery🌹❄️🌑🔥
Hashtags
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
Пребарај: #mercury
@RWBY_Gallery · Post #20094 · 01.09.2024 г., 14:14
#Mercury Rainydays_eef @RWBY_Gallery🌹❄️🌑🔥
Hashtags
@interesting_planet_facts · Post #1195 · 05.01.2026 г., 18:11
🌎 Mercury, the smallest planet in our Solar System, has a surface temperature range from –173°C at night to 427°C during the day. Mercury lacks a significant atmosphere, so heat escapes rapidly after sunset. ✨ #planets⚡#astronomy⚡#mercury 👉subscribe Interesting Planet 👉more Channels
Hashtags
@interesting_planet_facts · Post #1004 · 04.11.2025 г., 18:11
🌎 Blazing through space, Mercury completes a full orbit around the Sun in just 88 Earth days, making it the fastest planet in our Solar System. Its surface temperature can swing from –173°C at night to 427°C during the day because it has almost no atmosphere to trap heat. ✨ #planets⚡#astronomy⚡#mercury 👉subscribe Interesting Planet 👉more Channels
Hashtags
@lsposed_Modules_Updates_Trackers · Post #6623 · 20.04.2026 г., 02:30
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026042001-2026042001 更新时间:2026/04/20 10:05:55 更新日志: 修复一个可能导致通知不稳定的空指针错误 跨日重调时清理旧的逃课信息 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6590 · 16.04.2026 г., 10:00
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041601-2026041601 更新时间:2026/04/16 17:25:58 更新日志: 支持开关模块的预测性返回 支持自定义状态栏岛文本颜色 超级岛按钮新增"我要逃课",点击后取消该课程通知和自动化 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6589 · 16.04.2026 г., 09:30
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041401-2026041401 更新时间:2026/04/14 12:19:47 更新日志: 修复 wakeup数据源自定义时间课程时间错误问题 请强制停止wakeup后启动wakeup等待几秒数据同步 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6588 · 16.04.2026 г., 09:00
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041601-2026041601 更新时间:2026/04/16 16:21:43 更新日志: 支持开关模块的预测性返回 支持自定义状态栏岛文本颜色 超级岛按钮新增"我要逃课",点击后取消该课程通知和自动化 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6568 · 14.04.2026 г., 05:00
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041401-2026041401 更新时间:2026/04/14 12:19:47 更新日志: 修复 wakeup数据源自定义时间课程时间错误问题 请强制停止wakeup后启动wakeup等待几秒数据同步 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6541 · 11.04.2026 г., 15:30
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041102-2026041102 更新时间:2026/04/11 23:14:28 更新日志: 修复已激活但部分情况下显示未激活的问题 按需申请作用域 增加课表数据源切换功能,可使用wakeup或拾光课程表作用数据源,但通知仍从超级小爱发出,需强制停止超级小爱后切换数据源并打开对应软件等待同步数据(只需几秒即可) @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6536 · 11.04.2026 г., 06:30
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041101-2026041101 更新时间:2026/04/11 13:59:47 更新日志: 支持自定义发光效果颜色 支持导入/导出配置 对系统界面的hook只对自身通知生效 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6525 · 10.04.2026 г., 15:30
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026041001-2026041001 更新时间:2026/04/10 23:08:46 更新日志: 修复300+系统上状态栏发光效果触发不生效或不稳定的问题 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
@lsposed_Modules_Updates_Trackers · Post #6512 · 09.04.2026 г., 13:30
#课程表超级岛#Mercury 模块:com.xiaoai.islandnotify 简介:课程表超级岛 版本:2026040901-2026040901 更新时间:2026/04/09 21:09:25 更新日志: 修复默认上课中展开态前置文本1错误\n将全局补发机制默认改为关闭\n状态栏岛增加发光效果,默认关闭,300+系统可能不生效或不稳定,不接受此功能反馈 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot