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

Резултати

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

Пребарај: #ttrss

当前筛选 #ttrss清除筛选
ALL About RSS

@AboutRss · Post #1522 · 13.10.2025 г., 15:00

Tiny Tiny RSS 作者将停止维护该项目 项目作者在 #TTRSS 官方论坛发布:The end of tt-rss.org,宣布11月1日终止该项目。目前已有项目贡献者 fork 源码、插件、文档等并转载至 GitHub ,且愿意接棒项目开发和运维: https://github.com/tt-rss/tt-rss 发现于 https://x.com/JeffreyCalm/status/1977632807418745277

Hashtags

ALL About RSS

@AboutRss · Post #841 · 14.10.2020 г., 01:00

「Tiny Tiny RSS更新之后非80 443端口解决方案」 #教程 该文系 RSSHub 群里大佬就 Docker 版本 #TTRSS 的解决方案: https://8430177.github.io/post/tiny-tiny-rss-geng-xin-zhi-hou-fei-80-443-duan-kou-jie-jue-fang-an/

ALL About RSS

@AboutRss · Post #922 · 02.01.2021 г., 01:00

RSSForever.com : 提供公开的 TTRSS 和 RSSHub 实例 频道提及过「思有云」博主 Stille 在去年上半年开始提供 #TTRSS 和 #RSSHub 实例,如今 Stille 将其数据库升级并切换域名至 https://rssforever.com/ ,十分感谢! 发现于博主日志: https://www.ioiox.com/archives/notice-2020-12-31.html

ALL About RSS

@AboutRss · Post #831 · 29.09.2020 г., 01:00

「Tiny Tiny RSS vs Miniflux」 因为 #TTRSS 近期升级后的端口封闭问题,以及无移动端适配,不少人都切换去了 #Miniflux ,包括 DIY小可爱 这位有 1.5K feeds 、用了超过 8 年 TTRSS 的用户。Ta 根据自己的使用情景,撰文对比了两家的优劣,解释了自己最终选择换坑的原因。 https://raymii.org/s/articles/Tiny_Tiny_RSS_vs_Miniflux.html 发现于 https://twitter.com/RSSCircus/status/1310229514623029253 题图来自 https://www.ericsbinaryworld.com/2019/12/26/considering-moving-from-tiny-tiny-rss-to-miniflux/

ALL About RSS

@AboutRss · Post #853 · 23.10.2020 г., 01:00

「 #TTRSS + #RSSHub 搭建指南」 by VinceHut https://www.vincehut.top/index.php/2020/10/14/ttrssrsshub%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/ 「Tiny Tiny RSS 安装及填坑之路」 by Le Phower https://phower.me/2020/03/Tiny%20Tiny%20RSS%20%E5%AE%89%E8%A3%85%E5%8F%8A%E5%A1%AB%E5%9D%91%E4%B9%8B%E8%B7%AF/#%E5%AE%89%E8%A3%85-TT-RSS #教程

ALL About RSS

@AboutRss · Post #827 · 27.09.2020 г., 01:00

一家安全公司出具了一份 #TinyTinyRSS 的安全报告 「Exploiting Tiny Tiny RSS」 by DigeeX https://www.digeex.de/blog/tinytinyrss/ 最近 #ttrss 的升级与该报告有关。 发现于 https://twitter.com/RSSCircus/status/1308694071121195008

ALL About RSS

@AboutRss · Post #586 · 12.05.2020 г., 07:04

#RSSHub#TTRSS#服务器 RSSHub:http://rss.probe.earth:1200 TTRSS:http://rss.probe.earth:8280/tt-rss/ 来源于 「使用 RSSHub 一键订阅 TA 的所有网络动态」 https://probe.earth/hosting-rsshub-on-your-site/ 发现于 https://twitter.com/__Probe__/status/1259716907613032448 感谢这位推友。

ALL About RSS

@AboutRss · Post #559 · 03.05.2020 г., 02:44

订阅制的兴起和当局对RSS的不友好似乎使得入坑 #TTRSS 的人越来越多了。又来一篇 #教程 : 「自己搭建RSS阅读器 #TinyTinyRSS 教程(2020)」 by 奶爸建站 https://blog.naibabiji.com/tutorial/tiny-tiny-rss.html

ALL About RSS

@AboutRss · Post #840 · 13.10.2020 г., 01:00

FeedIt :利用机器学习进行文章喜好排序的在线 #RSS阅读器 还记得在 Reddit 上看到个贴,说 Ta 唯一不喜欢 RSS 订阅的一点是:阅读器把所有文章一视同仁,不能告诉 Ta 哪个重要、哪个不重要。回帖里自然有人教育道:RSS 订阅的特色就是没有谁帮你决定哪个重要、哪个不重要。 当然,该帖里也提到,除了关键词过滤或给 Feeds 按重要程度分组外,有几家阅读器可以给文章打分,并以分数改变其排序。比如 #TTRSS 的 Scoring 。 现在,更 fancy 的来了。 #FeedIt 让你可以通过给文章以及文章关键词打“赞”和“踩”来用机器学习训练阅读器对你喜好的把握;一段时日之后,就可以让阅读器按你的喜好来给文章排序了。对于那些订阅很多 Feeds 的玩家,说不定也是条路。 官网在此,自带 #Android App : https://feedit.sk/ 发现于 Reddit 。到底是高大上还是本末倒置,欢迎留言讨论。

12
ПретходнаСтраница 1 од 2Следна