@Ptfxq · Post #707 · 15.08.2024 г., 05:21
#PTP PTP 正在大规模砍树、砍邀请权。
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
Пребарај: #ptp
@Ptfxq · Post #707 · 15.08.2024 г., 05:21
#PTP PTP 正在大规模砍树、砍邀请权。
Hashtags
@PrivateTrackerNews · Post #524 · 26.05.2019 г., 18:38
#PTP We are BACK baby! Thank you all for your patience, we look forward to seeing you soon. 我们回来了宝贝! 感谢大家的耐心,我们期待很快见到你。
Hashtags
@PrivateTrackerNews · Post #489 · 21.05.2019 г., 16:07
#PTP About downtime We are dealing with some hardware issues. Downtime may extend for a day or two. Apologies for the inconvenience, these things happen sometimes. 关于停机时间 我们正在处理一些硬件问题。 停机时间可能延长一两天。 对于给您带来的不便表示歉意,这些事情有时会发生。 We are experiencing some technical difficulties. Presently there is no known ETA. We shall update as soon as we know more. 我们遇到了一些技术难题。目前还没有已知的ETA。我们会在知道更多后立即更新。
Hashtags
@Ptfxq · Post #442 · 30.08.2023 г., 05:00
#PTP PTP的IRC已复活
Hashtags
@Ptfxq · Post #440 · 24.08.2023 г., 12:15
#PTP PTP 的现状不容乐观,HDB 的某位管理员或许暗示了 PTP 将要走向 BE。 原文:Every fairytale ends one day. The world around us is ever revolving and ever changing. When the reasons would be personal issues or time constraints, the old guard should find a new management and pass the torch on. We got it 7 years ago and we hope to do the same once we get tired of it ourselves instead of shutting the site down. Some new rumours are not very positive regarding PTP. Apparently the sysop is unresponsive and he's the only one with access to money. PTP is his project and now he called it the End. Not sure it's not FUD, we'll see what they officially announce. Sad in any way. Things should never stand on one leg and in my opinion trackers do not belong to anyone but the community as they would be nothing without it.
Hashtags
@Ptfxq · Post #120 · 18.02.2021 г., 03:01
#PTP tracker 维护中,上传下载及 H&R 可能不准确。 update:已结束
Hashtags
@Ptfxq · Post #430 · 04.04.2023 г., 12:06
#GGn#PTP 过年啦!时隔2年多,PTP 再次在 GGn 开放了官方邀请。 update: 嘎了 UPDATE: 又回来了,提高了要求
@Ptfxq · Post #449 · 24.09.2023 г., 18:32
#PTP#HDB PTP 的邀请区多出来了一个 HDB 的官方邀请帖。 TK+,不允许中国等其他被禁止的国家的用户申请。 --- UPDATE:评论区大佬们出手了,帖子没了。 --- UPDATE:帖子又回来了
@Ptfxq · Post #429 · 03.04.2023 г., 06:49
#HDB#PTP 通过 HDB 俯冲 PTP 的机会也来了!1080P + 一年工龄即可在 HDB 申请 PTP 的官方邀请。
@Ptfxq · Post #465 · 17.10.2023 г., 01:17
#PTP#综合公告 为庆祝 PTP 已经超过了 30 万部电影的馆藏,PTP 开始了他们的万圣节发种大赛,任何上传恐怖惊悚(标签为thriller、horror)电影的人都能得到奖励。上传总数前三名还能得到巨量 bonus 和限时 VIP。
@Ptfxq · Post #431 · 08.04.2023 г., 11:12
#BTN#PTP BTN 的论坛中也出现了 PTP 的官方邀请。
@Ptfxq · Post #203 · 18.05.2021 г., 08:53
#BTN#PTP 继 BTN 开启了拯救动物捐赠活动后(见前文: https://t.me/Ptfxq/195 )PTP 和 HDB 管理 Musicalmind 在 BTN 论坛表示向指定慈善机构捐赠一百美元即可 PM 获得 PTP 邀请。