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 слични објави

Пребарај: #july2024

当前筛选 #july2024清除筛选
The Open Platform

@topco · Post #88 · 04.07.2024 г., 13:03

Boring A.P.E. (Attention Points Economy): Observations on a New Trend In the digital age, attention has become a valuable commodity, and the "Attention Points Economy" seeks to capture this value by turning simple interactions into measurable points. This concept is gaining traction, particularly in Telegram Mini apps like Notcoin and Hamster Kombat, which engage millions of users through gamified interactions. The economic value created by points rewards every beneficiary within the ecosystem. This creates micro-markets within apps and opens new opportunities for developers and users alike, potentially leading to a decentralized ecosystem where digital engagement and identity merge. Our new post explores the rapid adoption of this trend and its broader significance. #July2024#GameFi#TelegramMiniApps#Telegram#Notcoin

The Open Platform

@topco · Post #89 · 12.07.2024 г., 12:55

Native USDt on TON: Adoption and Market Dynamics Q2 2024 On April 19th, Pavel Durov, CEO & Founder of Telegram, Paolo Ardoino, CEO of Tether, and Andrew Rogozov, CEO of TOP & Wallet, announced the launch of native USDt on TON at TOKEN2049. It was designed to revolutionize peer-to-peer payments, allowing Telegram users to make USDt transfers instantly by simply sending a direct message to their contacts. With a total circulation of $580 million in just 3 months since its launch, USDt is already deeply integrated with most of TON's major protocols and dApps. This post will explore the emerging trends surrounding USDt within TON's ecosystem and its role as a Digital Dollar. Learn more about: — The premise for introducing native USDt to TON and its significance in the long-term strategy of TON and Telegram — Gasless USDt payments on TON — The context for USDt-TON’s adoption figures compared to similar metrics on other blockchains — The adoption markers of USDt-TON within the TON ecosystem — The current and future impact of USDt-TON on TON. You may be interested in: Stablecoins: Collateralized vs Algorithmic #TON#stablecoins#DeFi#July2024#USDT