Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
🏁Безопасность превыше всего
🤩Начинаем заботу о вашей безопасности:
Легко ли отобрать конфету у ребенка? Также легко как кинуть ребенка девяти лет на подарок TG:
➡️ Представим ситуацию, в которой вы хотите провести сделку связанную с покупкой-продажей подарков TG. У вас недостаточно опыта и вы обращаетесь к гаранту, доверяя ему проведение сделки. Тут на сцене появляется мошенник — @torturecrime. Понятное дело, что сделка заканчивается не в вашу пользу.
❗️SCAM аккаунт — @torturecrime (имеет в профиле много юзернеймов)
❗️SCAM канал — https://t.me/philarmonio
🤩 Так вышло, что тот самый девяти летний малыш не сделал скрин переписки, которая была удалена после мошеннических действий. Этот мальчик является сыном моего хорошего друга и не доверять ему нет никаких причин.
Мы попытались написать ему, номошеннику, конечно, нечего больше ответить, кроме нецензурных выражений. Скрин в комментариях.
➡️Таблица SCAM ALERT
❗️ВМЕСТЕ мы создадим безопасное пространство! Расскажи свою историю о том, как тебя пытались обмануть мошенники и мы внесем негодяя в таблицу. Обезопась себя и окружающих!
❗️Под каждым постом, комментарий, продержавшийся 15 минут не перекрытый следующим комментарием, получает подарок TG
#SCAMALERT
- - - - - - - - - - - -
🤓Ton Cryptans | Чат | UNI | SCAM
- - - - - - - - - - - -
🤓Игры | ⭐️ Купить STARS
- - - - - - - - - - - -
How to read our content in your language / فارسیفارسی
🏁 Запускаем максимально полезную рубрику
🤩Команда Ton Cryptans начинает формировать инструмент, полезный каждому пользователю экосистемы Telegram
Ни для кого не секрет, что экосистема TG и TON, после взлёта, случившегося год назад на фоне созданного успеха всем известного проекта - к сегодняшнему дню пришла в глубочайший упадок. Во многом "благодаря" бесчисленному количеству скама, заполнившего всё и вся, при отсутствии простого и понятного инструмента защиты от него обычных пользователей.
За прошедший год мы осветили множество проектов и понимаем по каким критериям стоит оценивать дела и поступки. Не станем скрывать - не всегда нам удавалось с первого, а порой и со второго взгляда разглядеть SCAM, но от того и ценнее полученный опыт и "насмотренность", получив, заработав которые мы, считаем, что сможем принести пользу всем.
🫡 В чём суть?
Мы создаём единый список имён и проектов, причастных к скаму. Список тех, кто не погнушался замарать себя.
Полезность такого единого списка очевидна - любой пользователь сети всегда сможет подстраховаться и проверить - нет ли в списке того, кому его призывают довериться. Предупреждён - значит вооружён.
🫡 Механизм формирования:
1) Ваши личные истории
➡️ Да, вы сами сможете поделиться историей и предложить кандидатуру на внесение в список.
2) Обсуждение. При наличии достаточных оснований (пруфов), предоставленных комьюнити:
➡️ Нами подготавливается и размещается пост о конкретном скамере или скам-проекте с описанием сути скама.
➡️ В случае наличия доступных контактов - в момент публикации поста извещается его "герой"
➡️ В течении 48 часов каждый желающий сможет написать под соответствующим постом факты в поддержку обвинения и факты в защиту "героя" поста.
3) Вердикт.
➡️ По окончанию обсуждений будет приниматься решение о внесении, либо не внесении в "SCAM-список". А в самом списке всегда будет ссылка на пост с обсуждением, по результатам которого было осуществлено внесение, что-бы каждый мог ознакомиться и с "материалами дела"
🤩 Считаем, такой подход позволит создать максимально прозрачный механизм по самоочищению экосистемы, когда каждое не честное действие сможет быть зафиксировано и представлено на публичное обозрение в одном источнике.
➡️При этом стоит помнить, что не всякий "провал проекта" - равно SCAM. Некоторые просто не вывозят взятого на себя. В основном в этом нам вместе и предстоит разбираться - отделять одно от другого.
⚡Готовы попробовать перевернуть историю экосистемы?
❗️ Создадим безопасную среду вместе- присылайте свои истории где вы или ваши знакомые столкнулись с обманом.
❗️https://docs.google.com/spreadsheets/d/1GyRpmgmunBI096CjrkxPbvB0fj8xMYEZg_ydEiPKzbw/edit?gid=0#gid=0 — таблица с реестром SCAMа. Наполнение начинается. В любой момент вы сможете обратиться к ссылке SCAM в конце каждой последующий публикации. Заявки на внесении в реестр SCAMа принимаем 24/7 в комментариях под постами.
С заботой о вас. Ton Cryptans ❤️
#SCAMALERT
- - - - - - - - - - - -
🤓Ton Cryptans | Чат | UNI | SCAM
- - - - - - - - - - - -
🤓Игры | ⭐️ Купить STARS
- - - - - - - - - - - -
How to read our content in your language / فارسیفارسی
#ScamAlert Received messages with a phishing link to verify your eligibility for Budget 2024 disbursements?
SMS messages sent by MOF will only inform citizens of their benefits and information will only be disseminated through official MOF channels.
Learn tips on how to protect yourself and find out more here: https://go.gov.sg/spfb2024pr
Infographics: MOF
❗Beware of scams!
👀 Watch to find out how these scammers work. Stay alert ➡️https://go.gov.sg/meetthescammers
#scamalert
Follow @Govsg for the latest Government announcements
🚨 ALERT: Don't Let Scammers Haunt You! 🎃
Nothing’s scarier than being scammed this Halloween 👻
Scammers might impersonate NEA officers or scare you with fake messages about fines or urgent payments. Say no to their tricks and phony treats!
📢#PSA Government officials will NEVER ask you to transfer money or disclose bank login details over a phone call.
Visit www.scamshield.gov.sg or call the 24/7 ScamShield Helpline at 1799 if in doubt.
Stay vigilant during this spooky period! Share this with your family and neighbours. #ScamAlert
This image is generated using Adobe Firefly.
🚨 ALERT: Don't Fall for Scams!
Scammers may pretend to be NEA officers and send fake messages about our programmes such as the Climate Vouchers. Don't fall for these phishing links or suspicious apps! The ONLY way to claim your household’s Climate Vouchers is through go.gov.sg/cv-claim
📢#PSA Government officials will NEVER ask you to transfer money or disclose bank login details over a phone call.
Visit www.scamshield.gov.sg or call the 24/7 ScamShield Helpline at 1799 if in doubt.
Stay vigilant! Share this with your family and neighbours. #ScamAlert
🏁С нами в безопасности
🤩 Подъехал очередной SCAM бот. Наблюдая за грандиозным успехом легенды под именем Tyler Durden и его канала Project Mayhem, мошенники создали SCAM бота.
Схема пока не понятна, но мошенники пишут сами и предлагают отправить адрес кошелька. Ни в коем случае не делайте этого!
Из первоисточников, а именно из разговора с Тайлером, удалось выяснить, что бот не принадлежит команде Тайлера.
❗️SCAM BOT — @ProjectMayhemSoapBot
❗️ SCAM аккаунт — Project Mayhem Поддержка - @pvlAmFHrQuKW - @ProjectBruceLee
Добро пожаловать в реестр😉
➡️Таблица SCAM ALERT
🤩 Ниже прилагаю официальные ресурсы легенды Tyler Durden:
➡️Project Mayhem — канал
➡️Project Mayhem Records — чат
➡️@mrkt — маркетплейс
🤩 К вам уже обращались мошенники? Расскажите в комментариях.
❗️Под каждым постом, комментарий, продержавшийся 15 минут не перекрытый следующим комментарием, получает подарок TG
#SCAMALERT#TylerDurden
- - - - - - - - - - - -
🤓Ton Cryptans | Чат | UNI | SCAM
- - - - - - - - - - - -
🤓Игры | ⭐️ Купить STARS
- - - - - - - - - - - -
How to read our content in your language / فارسیفارسی
🏁Подарки под угрозой
🤩 Как вы уже знаете, при появлении нового тренда активируются мошенники, которые под любым предлогом пытаются завладеть вашим имуществом. Не важно цифровое оно или нет. Внимание схема проекта Ease Stars:
❗️ Под ширмой заработка звезд на просмотре рекламы , подписки на партнеров, и выполнении простых действий, бот интегрируется в ваш аккаунт и все подарки уходят во владение сторонних личностей.
Будьте внимательны! Обращайте внимание на разрешения, которые предоставляете ботам! В чатах уже есть пострадавшие.
С заботой о вас Ton Cryptans ❤️
❗️Под каждым постом, комментарий, продержавшийся 15 минут не перекрытый следующим комментарием, получает подарок TG
#SCAMALERT#Подарки
- - - - - - - - - - - -
🤓Ton Cryptans | Чат | UNI | SCAM
- - - - - - - - - - - -
🤓Игры | ⭐️ Купить STARS| MRKT
- - - - - - - - - - - -
How to read our content in your language / فارسیفارسی
Planning to rent a property? 🏠 Always check that the property agent is not a scammer before making payment for stamp duty. Visit the e-Stamping Portal to verify the authenticity of the Stamp Certification provided by the agent online 💻✅
Follow us on TikTok.
#irassg#scamalert#scamadvisory#stampduty
Beware of stamp duty scams! ⚠️ Always check if the property agent is registered with the Council for Estate Agencies (CEA) and verify that the mobile number is correct 🔍 Scammers may use a registered agent’s identity but provide a fake mobile number.
#irassg#scamalert#scamadvisory#stampduty#stayvigilant
Follow us on TikTok!