@pixiv · Post #203 · 16.05.2017 г., 21:47
#Matsuri おか pixiv.net/i/56977848
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
Пребарај: #matsuri
@pixiv · Post #203 · 16.05.2017 г., 21:47
#Matsuri おか pixiv.net/i/56977848
Hashtags
@QIN2DIM · Post #359 · 12.11.2022 г., 01:30
#RELEASE#Matsuri0.5.3 Support Hysteria 1.3 Port Hopping 使用注意: 1. 需要使用多端口时,「服务器」按照 `example.com:1145,5144-10240` 格式填写,「服务器端口」随意填写。 2. 不使用多端口时,「服务器」和「服务器端口」按照原来的方式填写。 3. 需要安装最新版 Matsuri Hysteria 插件。 4. 不兼容链式代理。 Download / 下载
@FreeVPN8 · Post #4614 · 30.06.2023 г., 16:46
#代理工具#matsuri
@FreeVPN8 · Post #4423 · 01.06.2023 г., 10:45
#代理工具#matsuri
@FreeVPN8 · Post #4291 · 26.04.2023 г., 03:53
#代理工具#matsuri
@miaomua · Post #230 · 06.07.2022 г., 04:43
#RELEASE#Matsuri0.3.14 - 重新添加 Hysteria disableMtuDiscovery - 为 Trojan 配置添加 v2ray 传输选项 - 不再使用 Trojan-Go 提供 Trojan 实现* - 错误修复 - Re-added Hysteria disableMtuDiscovery - Added v2ray transfer option for Trojan configuration - No longer provide Trojan implementation using Trojan-Go - Bug fixes * 用 Trojan-Go 实现的 Trojan 配置实际上是与 Trojan-Go 配置一致的,需要的用户可以将配置转换为 Trojan-Go,普通用户无需操作。 Download / 下载
@pixiv · Post #216 · 25.05.2017 г., 09:36
#Landscape#Matsuri#Yellow たみ。 pixiv.net/36959927
Hashtags
@QIN2DIM · Post #354 · 09.11.2022 г., 22:56
#blog#Hysteria#Matsuri 追加更新! 介绍 Matsuri(茉莉)+ Hysteria 安卓移动端网络优化方案。 原文链接:paper 频道:@QIN2DIM's Tech Channel
@QIN2DIM · Post #312 · 31.08.2022 г., 07:42
#blog#Hysteria#Matsuri 通过 Matsuri 在 Android 手机上运行 Hysteria 代理核心。 本文继续介绍有关 Hysteria 代理核心更多内容。本篇文章以 Matsuri 为切入点,介绍在 Android 手机上启动 Hysteria 代理核心的 quick-start 必要步骤,开箱即用。 如果你已持有一枚可用的 Hysteria 节点链接,只需要花费不到 3 分钟的时间便可在自己的手机上架起代理与互联国际完成「友好交互」。 原文链接:https://blog.echosec.top/p/matsuri-hysteria/ 频道:@QIN2DIM's Tech Channel
@cosplayuploadtest2 · Post #102063 · 23.03.2025 г., 02:57
Title: Matsuri_Goto_後藤まつり,_アイドルワン_I_One_サンプル版_アイドル Authors: #None Tags: #None#Matsuri_Goto_後藤まつり#アイドルワン_I_One#Matsuri#Goto#後藤まつり#アイドルワン#I_One#サンプル版#アイドル recommendation: None TelegraphLinks:page-0-19