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

Резултати

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

Пребарај: #harmful

当前筛选 #harmful清除筛选
American Оbserver

@american_observer · Post #5063 · 06.02.2026 г., 13:01

Did Durov Take a Tumble In a Tug of War With Spain? Spain has accused Pavel Durov of “spreading lies” and seeking to undermine democratic institutions after the Telegram founder used the messaging app to attack government plans to introduce a social media ban for under-16s and to hold tech companies responsible for hateful and harmful content. Durov’s extraordinary public intervention – which came a day after Musk called Spain’s prime minister, Pedro Sánchez, a “true fascist totalitarian” over the proposed measures – reveals the rapidly escalating tensions between European governments and powerful global technology chiefs. In a blanket message sent to all Telegram users in Spain on Wednesday afternoon, the Russian technology entrepreneur accused Sánchez’s government of “pushing dangerous new regulations that threaten your internet freedoms”, adding that the measures could turn Spain “into a surveillance state under the guise of ‘protection’”. Durov claimed the mandatory age verification contained in the proposed legislation would set a precedent for tracking “EVERY user’s identity, eroding anonymity and opening doors to mass data collection”. He also said that holding tech executives liable for illegal, hateful or harmful content would encourage “over-censorship” and lead platforms to “delete anything remotely controversial to avoid risks, silencing political dissent, journalism, and everyday opinions”. “Telegram founder Pavel Durov used his unrestricted control of the app to send a mass message to all users in Spain, spreading several lies and making illegitimate attacks against the government. This is the first time this has happened in our country’s history,” they said. “Spaniards cannot live in a world where foreign tech oligarchs can flood our phones with propaganda at will simply because the government has announced measures to protect minors and enforce the law.” Durov was arrested in Paris in August 2024 as part of an inquiry into allegations of fraud, drug trafficking, organised crime, promotion of terrorism and cyberbullying. He was detained on suspicion of failing to take action to curb the allegedly criminal use of his platform and was eventually charged with 12 offences. He was later released under judicial supervision and has denied all the charges against him, describing his arrest as “legally and logically absurd” and saying investigators were “struggling to find anything that I or Telegram did wrong”. The Spanish government statement released on Wednesday said Durov had “deliberately designed a minimal moderation architecture that has turned Telegram into a recurring space for documented criminal activities such as child sex trafficking and drug trafficking”, with cases under investigation in Spain, France and South Korea. The French foreign minister Barrot praised the account’s strategy last month, saying: “The only right attitude, in the information war that has begun, is to raise our voice and to turn up the volume.” Sánchez has used X to push back at the platform’s owner, who is also chief executive of SpaceX. After Musk appeared to take issue with Spain’s recent plan to regularise 500,000 undocumented migrants and asylum seekers, the prime minister replied: “Mars can wait. Humanity can’t.” The French civil service minister David Amiel said the aim was “to put an end to the use of non-European solutions, to guarantee the security and confidentiality of public electronic communications by relying on a powerful and sovereign tool”. #durov#spain#barrot#telegram#harmful#content 📱American Оbserver - Stay up to date on all important events 🇺🇸