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

Резултати

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

Пребарај: #verification

当前筛选 #verification清除筛选

"በስማችሁ ገንዘብ ተጠይቆባችሁ ያውቃል? ወዳጅ ዘመዶቻችሁ ለሳይበር ሌቦች ሰለባ እንዳይሆኑ ይህንን የጥንቃቄ መልዕክት ያጋሩላቸው!" *********************** በኢትዮጵያ በዋትሳፕ (WhatsApp)፣ በቴሌግራም (Telegram) እና በሌሎች የመልዕክት መላላኪያ ማህበራዊ ገጾች አማካኝነት የሚፈጸሙ የሳይበር ጥቃቶች እና የማጭበርበር ድርጊቶች በአሳሳቢ ሁኔታ መጨመራቸውን የኢንፎርሜሽን መረብ ደህንነት አስተዳደር (ኢመደአ) አስታወቀ። ወንጀለኞቹ ወቅታዊ ኩነቶችን፣ ሲምፖዚየሞችን እና ስብሰባዎችን እንደ አጋጣሚ በመጠቀም የተለያዩ የማታለያ ዘዴዎችን እንደሚጠቀሙ አስተዳደሩ ገልጿል። ከማጭበርበሪያ ስልቶቹ መካከልም "ነጻ የኢንተርኔት ፓኬጅ" እና "ልዩ የሥራ ቅጥር" የሚሉ አሳሳች መልዕክቶችን ማሰራጨት አንዱ መሆኑን ገልጿል። በሁለተኛ ደረጃ ደግሞ ተጠቃሚዎች በመልዕክቱ ውስጥ ያሉ ሊንኮችን (Links) እንዲጫኑ በማድረግ አካውንታቸውን መጥለፍ ነው። በሦስተኛ ደረጃ የተጠለፈውን አካውንት በመጠቀም በተጎጂው ስም ከቅርብ ዘመዶቹ የገንዘብ ድጋፍ መጠየቅ መሆናቸውን የኢንፎርሜሽን መረብ ደህንነት አስተዳደር (ኢመደአ) ባወጣው መረጃ አስታውቋል። እንዲህ አይነት ክስተቶችን ለመከላከል እና ተጎጂ ላለመሆን ማህበረሰቡ ከሳይበር ጥቃት ራሱን መጠበቅ እንዳለበት ያሳሰበው የኢንፎርሜሽን መረብ ደህንነት አስተዳደር በተለይ የሚከተሉትን መውሰድ እነደሚገባ በጥብቅ አሳስቧል፦ 1. አጠራጣሪ ሊንኮችን አለመክፈት፡ ከማይታወቁ አድራሻዎች የሚላኩ መልዕክቶችን "Report" እና "Block" ማድረግ። 2. ምስጢራዊ ኮዶችን አለመስጠት፡ በስልክ የሚላክ የማረጋገጫ ኮድን (Verification Code) ለማንም አካል አለመንገር። 3. የሁለትዮሽ ማረጋገጫ (Two-Step Verification)፡ ጠላፊዎች በቀላሉ አካውንትን እንዳይቆጣጠሩ ተጨማሪ የደህንነት ቁልፍ የሚፈጥረውን የቴክኖሎጂ ዘዴ በአስቸኳይ መተግበር። የኢንፎርሜሽን መረብ ደህንነት አስተዳደር (ኢመደአ) ወንጀለኞችን በህግ ተጠያቂ ለማድረግ እየሰራ መሆኑን ገልጾ፣ ማንኛውም አጠራጣሪ እንቅስቃሴ ሲያጋጥም በነጻ ስልክ መስመር 933 በመደወል ጥቆማ እንዲሰጥ ጥሪ አቅርቧል። #EthiopianBroadcastingCorporation#Verification#ኢመደአ

Libreware

@libreware · Post #1312 · 29.07.2024 г., 14:12

Harbor Decentralized p2p identity verification system. Identity management application written, targeting iOS, and Android, built on Polycentric. Create pseudonymous identities, make claims, link identities across applications. Checkout harbor.social, or docs.polycentric.io for more information What is Harbor and How it Works: https://peertube.futo.org/w/939a212d-920f-4411-b9b6-d60aa4ef4db7 https://gitlab.futo.org/polycentric/harbor/ #p2p#id#verification#futo

Libreware

@libreware · Post #1564 · 20.03.2026 г., 00:42

#Systemd Adds #Age#Verification & #Reddit#Linux Censors Age Verification Posts Plus: Which Open Source Operating Systems plan to include Age Verification? The Lunduke Journal compiles a list. Does It Age Verify?: https://github.com/BryanLunduke/DoesItAgeVerify https://lunduke.com https://www.youtube.com/watch?v=M3erhbwqIAM Lennart Poettering #microsoft#stalking#surveillance#backdoor#trojan

Venture Village Wall 🦄

@venturevillagewall · Post #3381 · 18.12.2024 г., 12:09

Fight Disinformation with AI INAR .IA Labs & Technologies has raised $1.21M for its innovative SaaS platform aimed at automating the detection and verification of disinformation across online content. Scheduled to launch on December 18, 2024, this multimodal and multilingual tool is set to enhance online security and information integrity. More details can be found at TrueFlag. #Funding#Technology#AI#SaaS#Disinformation#Verification#OnlineSafety#Security#Innovation#Automation#Multimodal#Multilingual#Integrity#Content#Platform#Launch #2024 #INAR#TrueFlag#Labs