@The2ndDim · Post #1644 · 22.12.2021 г., 19:15
#转发#WTF#GPDPocket3#GPD#Hardware https://youtu.be/K0coSoA7Rm4 https://twitter.com/softwincn/status/1473202405411938308 // 真就是啥东西到你们手上最后都一转Switch呗...
Hashtags
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
Пребарај: #gpd
@The2ndDim · Post #1644 · 22.12.2021 г., 19:15
#转发#WTF#GPDPocket3#GPD#Hardware https://youtu.be/K0coSoA7Rm4 https://twitter.com/softwincn/status/1473202405411938308 // 真就是啥东西到你们手上最后都一转Switch呗...
Hashtags
@The2ndDim · Post #1654 · 25.12.2021 г., 07:43
#GPD#GPDPocket3#GotThis#Hardware 原装充电器还没过48小时就坏了之后,联系了一下GPD,他们补发了一个充电器回来。 然后这次发来了一个65w充电器。(原装45w)。 我发回去的没有带原装线,发来的这个又带了一根线... 这是赚了?🌚
Hashtags
@The2ndDim · Post #1581 · 04.12.2021 г., 18:15
#转发#GPD#Hardware#isRetro#WTF https://twitter.com/softwincn/status/1465597429714096128 // 不是,GPD你这就有点过分了🌚 // 你这不就摆明了你这设计是在无限接近当年的VAIO UX系列吗...
@The2ndDim · Post #1642 · 20.12.2021 г., 12:36
#WTF#GPD#GPDPocket3#GotThis#Hardware 这才第二天,GPD Pocket 3的充电器就坏了。 🌚 连 5v 2A 都不输出了,一点电都不出。
@The2ndDim · Post #1641 · 20.12.2021 г., 01:57
#WTF#GPD#GPDPocket3#GotThis#Hardware 你所有的文件名都写对了,就路径没写对。 而且是自家品牌的名字没写对。🌚
@The2ndDim · Post #1584 · 11.12.2021 г., 04:05
#转发#GPD#Hardware#WantThis#GPDPocket3 https://twitter.com/softwincn/status/1468840852533362688 国际区域的GPD Pocket 3预计在12月底发货。 国内区域京东那边说是今天起到12月16日发第一批预购的货。 另外京东那边已经可以进行第二波购买了,12月20日前完成发货。 另外问过京东那边的GPD客服。之前国外发的正式版硬件更新,国行版也会搭载。 // 咱还是挺早就付了尾款的。刚刚看过物流状态,并没有开始发。🌚
@The2ndDim · Post #1582 · 04.12.2021 г., 18:19
#转发#GPD#Hardware#WantThis#GPDPocket3 https://twitter.com/softwincn/status/1465938302024830980 GPD Pocket 3 的正式版本的高配版 (i7-1195G7) 将会升级为搭载 Intel AX210 无线网卡。支持WiFi 6E (2.4GHz/5GHz/6GHz频段,最高 3600Mbps) 和蓝牙 5.2 。
@The2ndDim · Post #1580 · 04.12.2021 г., 18:12
#转发#GPD#Hardware#WantThis#GPDPocket3 https://twitter.com/softwincn/status/1462710100661964804 GPD Pocket 3 的正式版本转轴将会使用不锈钢粉末冶金成型,并通过淬火工艺提高硬度。 // 很多人说的转轴不牢固容易晃来晃去的问题应该能解决了。
@The2ndDim · Post #1571 · 08.11.2021 г., 10:00
#转发#GPD#Hardware#WantThis#GPDPocket3 GPD Pocket 3 的触控板的材质将会从塑料材质更改为磨砂玻璃材质。 图源: GPD Game Console 的 Youtube 社区
@The2ndDim · Post #1562 · 29.10.2021 г., 03:50
#转发#Hardware#GPD#WantThis #GPDPocket3 https://www.youtube.com/watch?v=zdBgJOqIZPg // GPD Pocket 3 的 KVM 控制功能演示 // 这下子线下调服务器的时候就不需要带显示器和键盘鼠标了 // Type-C 口的 USB IN 好评
@The2ndDim · Post #2064 · 30.10.2024 г., 08:16
#转发#WTF#GPD#GPDPocket4#Hardware http://softwincn.com/gpdpocket4 // 文案都没改好就直接上官网了? // 而且之前这个页面的英文版好像也泄漏过一次了。
Hashtags
@The2ndDim · Post #1586 · 14.12.2021 г., 06:29
#转发#GPD#GPDPocket3#Hardware#WantThis#WTF // 万万没想到GPD Pocket 3国内也这么火... // 你们不是还在因为那篇公众号文章抵制GPD吗?🌚