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

Резултати

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

Пребарај: #fines

当前筛选 #fines清除筛选
Telegram Info Kazakh

@tginfokk · Post #60 · 12.01.2022 г., 10:49

Telegram 147 000 АҚШ доллары көлеміндегі айыппұлды өндіріп алуды талап етті Сот орындаушылары Telegram-ға қарсы жалпы сумасы 147 000 АҚШ долларын құрайтын айыппұлдарды өндіріп алу туралы жаңа істер қозғады, себебі ол Ресей Федерациясында тыйым салынған мазмұнды жоюдан бас тартты. Федералдық сот орындаушылар қызметінің (ФСОҚ) деректер банкінің мәліметі бойынша, Мәскеудің Таганск сотының 2021 жылғы 20 желтоқсандағы шешімі негізінде компанияға қарсы $76,000, $27,000 және $54,000 айыппұлдар өндіру туралы үш атқарушылық іс қозғалды. Хабарланғандай, 2021 жылдың желтоқсан айының ортасында Telegram 200 000 доллар көлеміндегі айыппұлдар бойынша қарызды толығымен өтеді. #fines Телеграмның қолжетімділігің талқылайтын чат @tginfokkchat

Hashtags

Telegram Info Indonesia

@tginfoid · Post #67 · 13.05.2021 г., 14:07

Telegram mungkin didenda 16 juta rubel lagi karena menolak menghapus informasi terlarang Pengadilan Magistrate Moskow pada 10 Juni akan mempertimbangkan masalah denda terhadap kurir Telegram sebesar 16 juta rubel lagi karena menolak untuk menghapus informasi yang dilarang atas permintaan Roskomnadzor. Sebelumnya, di departemen peradilan dunia di distrik Tagansky Moskow mendenda utusan Telegram dengan jumlah total 5 juta rubel di bawah dua protokol dari Roskomnadzor karena menolak untuk menghapus informasi tentang seruan bagi anak di bawah umur untuk mengambil bagian dalam tindakan yang tidak sah di Moskow. #courts#fines

NIDO Russia (НИДО)

@nido_russia · Post #1666 · 26.06.2024 г., 18:31

💍The #Ministry of #Finance proposed to increase the state duty for divorce from 650₽ to 5,000₽ (by almost 8 times) 📛 For state registration of a name change, including the issuance of a name change certificate - from 1,600 rubles. up to 5000 rubles. 🧑‍🎓For the issuance of a certificate, certificate or other document confirming the level of qualification, or its duplicate due to loss, the fee will rise from 1300 rubles. up to 2000 rub. 👮 For consideration of a petition provided for by antimonopoly legislation - from 35 thousand rubles. up to 400 thousand rubles. 🚔 For consideration of an application provided for by the legislation on natural monopolies - from 16 thousand rubles. up to 50 thousand rubles. Subscribe: @nido_russia https://t.me/nido_russia/1666 #stateduties#госпошлина#fees#tax#fines

Venture Village Wall 🦄

@venturevillagewall · Post #4242 · 25.02.2025 г., 16:00

OKX Settles Dispute with US DOJ 🕊OKX settles dispute with the US Department of Justice, admitting fault for operating without a license. The exchange will pay $84 million in fines and forfeit $421 million in commissions from US clients. This settlement marks a pivotal point for OKX, allowing continued collaboration with regulators to enhance solutions for clients and the crypto market. Details:OKX Announcement 🟠 In related news, $635 million in leveraged Bitcoin positions were liquidated within 24 hours. #Crypto#Bitcoin#OKX#Regulations#Compliance #OKX#Crypto#Bitcoin#Finance#Regulations#Compliance#Investment#Blockchain#US#Litigation#Trading#Market#Fines#Exchanges#Leveraged#Settlement#Lawsuits#Justice#USDOJ#CryptoMarket