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

Резултати

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

Пребарај: #ss2022

当前筛选 #ss2022清除筛选
Neon-Link通知

@neon_link · Post #12 · 03.03.2025 г., 04:46

机场名:Neon-Link 类别:专线 编号:0075 #Neon-Link #广港专线#SS#SS2022#家宽#不限时#新机场 测评订阅:商家送测 简介与特色: 开业年份:2025年2月18日 在线设备:5个IP 协议类型:SS-2022 此协议部分代理软件如QuantumultX暂不支持 套餐类型:周期性+不限时 常用地区:港,台,新,日,美🏠,德 速度限制:视套餐限制100~500Mbps 解锁情况:如图 延迟与稳定性: 广港三线, 1️⃣ 电信,上乘专线 2️⃣ 移动,顶尖专线 👑 3️⃣ 联通,中等专线 联通入口据最新实测水平有所下降 ️ 入口分布: 电:穗电183 联:穗联58 移:穗移183 ❶ 拓扑显示详细地区有误 ❷ 入口视用户宽带进行DNS智能解析 落地概览: 港DMIT/HGC,台Akari,新Oracle/Eons,日WebHoriz/Akari,美Misaka/ATT,德Misaka ⚠️ 注:当前UDP测试模块出现技术故障,实测UDP全通! 整体评价: 1️⃣ 新开业机场,带宽满足日常使用水平,电/移延迟很优秀。 2️⃣ 入口三网手搓,套餐虽最高限速500Mbps,但在北方也可跑满单线程。落地质量优秀(美国ATT家宽)。 3️⃣ 但联通入口短板。加之无华东入口,导致远离入口地的日美速率严重下降接近不可用水平❗️ 4️⃣ 目前结合折后价格,是为数不多 #甜点价位 (¥0.15元上下/G 且月付≤15元) 的专线小而美之选💡 ⚡️入口临近: 单线程100~500Mb❗️ 多线程400~500Mb ⚡️远离入口: 单线程(三网)100~500Mb❗️ 具有竞争力的套餐: 折后9元100G/月(约0.09元/G) 🎫限时优惠码: 5折优惠码:开业大吉(仅限月付) 7折优惠码:Neon-Link 官网: https://www.neon-link.com 频道: https://t.me/neon_link 群组: https://t.me/neon_link_user ——————————————————————————————————— 海豚测速 致力于为您提供 优质的机场测速和评测服务,帮助您找到最适合您的翻墙机场。 海豚测速群组 @haitunspeed 机场跑路风险难控,建议谨慎选择月付

Cool Scripts

@cool_scripts · Post #643 · 19.11.2024 г., 12:54

Sub-Store 小课堂: 筛选出 Shadowsocks 2022节点 ▎脚本过滤 return ['2022-blake3-aes-128-gcm', '2022-blake3-aes-256-gcm'].includes($server.cipher) ℹ️ 相关内容 Sub-Store 相关教程/脚本整合 #SubStore#Sub-Store #小课堂#tips#协议#协议筛选#筛选#SS#SS2022#Shadowsocks#Shadowsocks2022#过滤#节点