Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Диджитал-менеджер
Промышленная компания из Санкт-Петербурга ждет эксперта по digital-pr для создания креативного контента (маркетинговые проекты с медиа, управление процессом подготовки фото-, видео-, анимационных и других визуальных материалов, связанных с деятельностью компании) и управления digital-каналами компании (телеграм-каналы, группы в соцсетях, интернет-сайт и интранет, включая мобильное приложение).
Позиция без сотрудников в подчинении. Задача - управлять привлеченными исполнителями, формировать задание на создание контента, контролировать результат и процесс размещения материалов в digital-каналах. Сотрудник представляет лицо, принимающее со стороны заказчика конечный продукт от подрядчика и распределяет этот продукт по существующим у компании цифровым каналам.
Важные качества – экспертиза в digital-медиа и реализации спецпроектов (репутационных, не связанных с прямой продажей продукта), проектный опыт и опыт продюссирования видео- и анимационных материалов, базовое понимание принципов работы маркетинговых инструментов и организаций рекламных кампаний в интернете.
Работа в штате, в офисе в Санкт-Петербурге. З/п по результатам обсуждения. Резюме и портфолио (ваши digital-проекты, соцсети, которые вы администрировали, и созданные под вашим руководством видео, анимация и другие визуальные материалы) будем рады получить на адрес [email protected]
Просьба темой письма указывать #digital-pr
Коржик, Карамелька и Компот стали звездами TikTok и бьют рекорды в сторах 😻
Проекты «Три кота. Развивающие игры» и «Три кота. Хоккей эло» попали в топы крупнейших магазинов приложений. Как они стали вирусными, обогнали мировые хиты и вдохновили детей на творчество — поделились в карточках.
#Digital
👻MAX | 💙ВК
Вы тоже все чаще ловите себя на мысли, что уже сложно представить повседневную жизнь без ИИ? 🤖
Альянс по защите детей в цифровой среде проводит исследование, чтобы понять, как дети и родители используют искусственный интеллект — и какое влияние технологии оказывают на обучение, развитие и мышление.
Результаты помогут лучше разобраться в новых цифровых привычках семей и оценить, какие возможности и вызовы приносят нейросети.
Пройдите короткий опрос — ваше мнение поможет сделать выводы более точными и полезными.
#Digital
Как привлечь зрителей в кинотеатры?🎫
Специалисты НМГ Кинопрокат провели бесплатный мастер-класс по маркетингу в киношколе «Индустрия». Коллеги рассказали, как выстраивают стратегию продвижения, чтобы мотивировать людей покупать билеты и смотреть кино на больших экранах.
В карточках — коротко об этом сложном, но интересном процессе.
#Digital
Вот бы получать подарки за просмотр любимых реалити 😇
Такая возможность есть у зрителей ЧЕ!
Телеканал запустил собственную модель креативной экономики с взаимовыгодным обменом. Пользователи смотрят шоу на сайте и получают за это внутреннюю валюту, которую можно обменять на приятные призы.
Как все устроено — рассказываем в карточках.
#Digital
Секрет успеха в медиа: быть в курсе трендов и создавать контент, который нравится зрителям прямо сейчас🙌🏻
В НМГ мы внимательно следим за интересами аудитории и адаптируем наши проекты под ее запросы. В карточках рассказали, как на них повлияли социальные сети — и как наша команда подстраивается под предпочтения зрителей и развивает новые форматы.
Если вы тоже хотите работать над актуальными и масштабными проектами, ищите подходящие вакансии в медиахолдинге💜
#Digital
Что будет, если студент случайно окажется внутри экзоскелета с собственным разумом? 🤖
Получится «(Не)искусственный интеллект» — семейная комедия, которая попала на большие экраны благодаря НМГ Кинопрокат.
Проект стал настоящим техническим экспериментом. Перед командой стояла амбициозная задача придумать и сконструировать архетипичного «русского робота» — десятки дизайнеров и инженеров трудились над ее решением целый год.
Как разрабатывалась концепция и какие механики использовались для реализации задумки, поделились в карточках.
#Digital
Расширяйте метамиры вместе с НМГ 🌌
«Три Кота» уже живут в Roblox, а теперь в этой вселенной появился и «Отель у Овечек» — игра по мотивам одноименного мультфильма, которую запустила команда медиахолдинга.
👉🏻 Проект объединяет экранный контент и интерактивный опыт: дети смотрят серии, исследуют локации и взаимодействуют с любимыми героями. За полгода «отель» посетили более 1 миллиона пользователей!
Мы продолжаем экспериментировать с форматами и приглашаем присоединиться к команде, чтобы вместе создавать новые впечатления для зрителей 😉 Откликайтесь на вакансии в НМГ.
#Digital
Разбираетесь в IT и хотите заявить о себе в киноиндустрии? 🎬
Участвуйте в Wink AI Challenge — первом хакатоне по созданию ИИ-ассистентов для кино от онлайн-кинотеатра Wink и платформы Codenrock. Разработайте решение, которое ускорит производство фильмов и сериалов, и сразитесь за призовой фонд 1 125 000 рублей.
Соревнования пройдут в 3 треках:
1️⃣Планирование съемочного процесса. Предложите решение, которое анализирует сценарий и рассчитывает ресурсы для организации съемок.
2️⃣Оценка потенциального возрастного рейтинга контента. Разработайте систему, которая помогает автоматически определять возрастную маркировку контента.
3️⃣Интеллектуальная система превизуализации сценария. Создайте инструмент, который превращает текст сценария в многоуровневый превиз с интерактивным коллективным редактированием, генерацией коротких анимаций и контролем качества.
Ваше решение оценят продюсеры популярных российских фильмов и сериалов, а в портфолио появится реальный кейс для крупного стримингового сервиса.
В жюри — генеральный директор Wink Антон Володькин, директор направления инноваций и ИИ Wink Артем Орлов, продюсер Галина Стрижевская, руководитель сервиса автоматизации кинопроизводства FilmToolz Владислав Момджян и другие.
📅 Участвовать можно соло или в команде. Отборочный этап состоится онлайн с 31 октября по 17 ноября. Лучшие защитят свои решения в очном финале 29 ноября.
Успейте зарегистрироваться до 31 октября включительно.
#Digital
История, которая оживает 🕊
К 80-летию Победы в Великой Отечественной войне МИЦ «Известия» представил виртуальный интерактивный музей «Великая Победа» — уникальный онлайн-проект, где инновации помогают сохранить память.
Благодаря современным технологиям визуализации вы сможете:
▫️пройтись по 7 тематическим залам,
▫️детально рассмотреть военную технику в 3D-формате,
▫️изучить ключевые сражения на интерактивных картах,
▫️увидеть архивные кадры, оживленные с помощью искусственного интеллекта,
▫️услышать реальные истории ветеранов.
Это не просто экспозиция — это возможность почувствовать дух времени, вспомнить подвиги и передать историю следующим поколениям.
Посетить музей можно по ссылке. Погружайтесь, узнавайте, помните.
#Digital
Экзамены, поиски себя, своя группа и неловкие свидания ☺️
Все, что бывает в 17–18 лет — в молодежном экспериментальном сериале «Наш гараж» от НМГ. Проект создан специально для соцсетей, сочетает в себе элементы реалити-шоу и влога, а также живую музыку, которую исполняют сами герои.
Но его главная особенность — интерактивность🙌🏻 Вы можете общаться с любимыми персонажами в паблике во ВКонтакте, находить друзей по интересам и становиться частью вселенной сериала.
Новые 15-минутные эпизоды выходят с понедельника по четверг. Первая и вторая серии уже доступны онлайн, скорее смотрите 😉
#Digital
Как заставить зиллениалов «випсануться» на всю голову, когда на полке — десятки конкурентов?⚡️
Мы раскрываем формулу успеха летней кампании VIPS, где:
✅ Burkalo Company создали взрывной креатив
✅ 19agency84 обеспечили измеримый брендформанс
И вот результат: +19% к продажам и 26 млн охват!
В этом кейсе показываем, как стратегическое партнерство и нестандартные решения помогли бренду громко заявить о себе в пиковый сезон.
#digital