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

Резултати

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

Пребарај: #pkc

当前筛选 #pkc清除筛选

#QuantumultX#Loon#PKC#API ✅#B站视频解析📱 1️⃣ 导入重写: QuanX: 点击导入 Loon: 长按复制 2️⃣ 微信pkc插件-关键词自动回复 1.匹配模式选开头 2.1 关键字(必填)填 b站搜索= 2.2 关键字(必填)填 b站视频= 3.1 自动回复文本(必填)中填 /pkc text 1 [反选] 3.2 自动回复视频(必填)中填 /pkc video 1 [反选] 3️⃣ 参数设置 文本API1: https://api.sheep.com/sheep/bilibili/videotag/[参数1]/ 视频API1: https://api.sheep.com/sheep/bilibili/video/[参数1]/ 查看测试效果 👤 脚本作者: @Sheepfj 注意:该接口会返回搜索到的第一个视频,所以可以先关键词搜索获取对的标题,然后再触发视频接口

#脚本#QuantumultX#AI #PKC#BoxJS 📱#PKC微信助手(综合) 📌 功能脚本: 支持上下文,对应联系人设定 👤 脚本作者: @Sheepfj ❗️ 使用说明: 1️⃣ 请先设置Boxjs 1️⃣ 导入boxjs脚本重写: 点击安装 2️⃣ 浏览器访问链接: 点击跳转 3️⃣ 下方第三个订阅按钮进入在右上角添加订阅地址 长按复制地址 4️⃣ 然后下方第二个按钮选择对应的模块进入根据提示填入参数 5️⃣ 使用Boxjs设置全局设定与单独对某人设定,同时手动删除对话与查看对话 2️⃣ 导入重写: 点击导入 3️⃣pkc插件-关键词自动回复 打开关键词自动回复,进入关键词回复设置右上点添加 1️⃣ 匹配模式选开头 2️⃣ 关键字(必填)填 # 3️⃣ 自动回复文本(必填)中填写 /pkc text 1 [备注]/[原文] 4️⃣pkc插件-自定义接口Api 打开自定义文本api,然后进入配置,在API1中填写 https://movies.disney.com/sheep/video/gpt/[参数1]/ 💬 温馨提示: 使用APIX就使用 /pkc text X [原文] 💬交流反馈

#脚本#QuantumultX#AI#Loon #PKC#BoxJS#微信 😉#PKC微信助手(综合) 支持圈x与Loon 🛡更新:支持上下文,支持为对应联系人设定 👤 脚本作者: @Sheepfj 1️⃣导入重写:圈x: 点击导入 Loon: 复制脚本 2️⃣设置微信pkc插件--关键词自动回复 pkc插件中打开关键词自动回复,进入关键词回复设置右上点添加, 1.匹配模式选开头 2.关键字(必填)填 # 3.自动回复文本(必填)中填写 /pkc text 1 [备注][原文] 3️⃣设置微信pkc插件--自定义接口Api 打开自定义文本api,然后进入配置,在API1中填写 https://api.sheep.com/sheep/wechatgpt/?[参数1] 支持的指令设置 💳注意:使用APIX就使用/pkc text X [备注][原文] ,之前配置过的先移除

#PKC#聚合API #SheepAPI#PKC接口配置 免费组合接口,适用于微信PKC插件 1.帮作者GitHub点点关注,求求了(接口维护真的挺耗时间的) 2.在系统绑定你的deepseek_apikey,复制返回的接口链接 3.按照图片,在PKC设置图一图二,两条关键词自动回复 4.自定义接口Api-->文本Api-->接口1中填写复制的接口(图片api一样操作) 配置教程

#Task#脚本#QuantumultX#PKC#API 📈#星座运势 ➖➖➖➖➖➖➖➖➖➖➖ 🌙#星座游戏大全 导入重写: 长按复制 下载地址: 点击下载 脚本说明: 解锁付费内容 ➖➖➖➖➖➖➖➖➖➖➖ 💡#疯狂百科问答 导入重写: 长按复制 下载地址: 点击下载 脚本说明: 解锁会员功能 ➖➖➖➖➖➖➖➖➖➖➖ 🗂 添加Task任务,圈X通知 添加任务: 长按复制 使用说明: 打开圈X下面一排风车旁边🗂Task → 右上角第一个📊按钮→点击打开后右上角+号 → 复制粘贴到里,然后选择添加『星座运势』 ➖➖➖➖➖➖➖➖➖➖➖ 🌐 Boxjs导入/修改: 1️⃣ 导入boxjs脚本重写: 点击安装 2️⃣ 浏览器访问链接: 点击跳转 3️⃣ 下方第三个订阅按钮进入在右上角添加订阅地址: 长按复制地址 4️⃣ 然后下方第二个按钮选择对应的模块进入根据提示填入参数 ➖➖➖➖➖➖➖➖➖➖➖ ⭐ 用于PKC的API接口 1️⃣ 导入文本重写: 点击安装 2️⃣ 设置微信pkc插件-关键词自动回复 1.匹配模式选开头 2.关键字(必填)填 星座= 3. 自动回复文本(必填)中填 /pkc text 1 [反选] 3️⃣ 设置微信pkc插件-自定义接口Api 在文本API中填写 https://movies.disney.com/sheep/constellation/[参数1]/ ➖➖➖➖➖➖➖➖➖➖➖ ✈️导航💬群组🤖投稿🎁福利