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

Резултати

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

Пребарај: #hdc

当前筛选 #hdc清除筛选
PT风向旗

@Ptfxq · Post #593 · 26.02.2024 г., 15:53

#HDChina#HDC HDC 是中国境内创立最早、用户规模最大、资源数最多的 PT 站之一,从 2008 年创立至今,期间虽被当局关注过,但均在数据毫无损失的情况下重开了。 在 2023 年 11 月 28 日,HDC 毫无征兆的宕机了,网站和 tracker 均无法访问,Telegram 群组 Bot 也无响应,至今已持续接近 4 个月时间。期间,有群友发现 HDC 群组的多个管理员的 Telegram 账号状态均显示为“last seen a long time ago”,仍在线的管理员一直告诉大家耐心等待,然而并未传递任何具体的消息,人心惶惶。 期间甚至有谣言传出:HDC的站长沉迷原神,关站了。 2024 年 2 月 9 日,HDC 的群组管理员发送了一张截图,均为 tar.gz 文件,不难推测此为服务器的备份文件,振奋人心,站点数据还在。但很快又有 PTer 发现了 HDC 的域名于 2024 年 2 月 26 日过期。 然而,小编发现原本应该在今天(2024.02.26)到期的 HDC 域名被续费了,或许我们很快就能够与 HDC 再次见面。 期待官方的进一步消息并祝好。

Hashtags

PT风向旗

@Ptfxq · Post #243 · 04.09.2021 г., 16:19

#iTS 入驻 #HDC 邀请区。 iTS 作为一个跳板站,其邀请区有着众多联盟站官方邀,也不伐目前全网唯一开放的 PTP 官方邀请。 此外,据说加入 iTS 的压制组 Q0S 以后就可以直接获得 PTP 与 HDB 的入场券。

Hashtags

PT风向旗

@Ptfxq · Post #32 · 12.01.2021 г., 02:17

关闭正常登录的内站及登录方法 (本条消息将及时更新,转发消息请点击👆🏻“PT风向旗“👆🏻查看最新版本) 点击链接关注 PT 风向旗 👉🏻https://t.me/Ptfxq #HDDolby:tg机器人 @hddolbybot #SSD:tg机器人 @cmct_bot #HDC:tg机器人 @hdchina_group_bot #PTHome:tg机器人 @Pthome_Bot #OurBits:网址后加 “/gohome.php” #PTer:tg机器人 @PTerClubBot #Audiences tg机器人 @Audiences_Official_Bot #LemonHD:如果不能正常登录,网址后加 “/login.php?passkey=你的passkey" 即可,其余路径跳转到无关页面。 #CHD:(受某事件影响,已经可以正常登录) #YDY:如果不能正常登录,网址后加 “/login.php" 即可,其余路径跳转到无关页面。tg机器人 @YDYPT_BOT #HDH:tg机器人 @hdhome_bot;其他登录方式,见公告 https://t.me/Ptggb/235 #ptsbao:临时入口自动获取地址:网址后加 “/adminer.6b72d14a2b5f0d92a740ccb55a2599d8.php” 验证码与获取验证码的浏览器和IP绑定 #piggo 控制面板自行寻找 Passkey 登录链接 #白兔https://club.hares.top/login.php?uid=【你的UID】&passkey=【你的passkey】 #Azusa 私聊 @AzusaRuBot 发送 /login 以下为日常不能正常登录的站点 #DIC:tg机器人 @DICGate_Bot;irc机器人 Aobing #Ultrahd 官方 QQ 群每月 1 日发送登录链接,有效期一天。或 控制面板自行寻找 Passkey 登录链接