|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Здравствуйте. У меня есть python-скрипт, который пересылает сообщения из почтового ящика в телеграм. Проблема в том, что модуль mail-parser не понимает кириллицу и если в письме вложение на русском, то скрипт отправляет в телеграм сообщение без вложения, а сам завершается с ошибкой. В гитхабе создал issue в репозитории автора модуля mail-parser, но уже больше недели он не отвечает. Вкратце принцип такой: В панели хостинга клиент создает тикет и прикрепляет скриншот. Тикет дублируется на мой почтовый ящик и если python-скрипт увидел, что в папке INBOX новое письмо, то он пересылает его в телеграм. И вот, если во вложении имя файла на русском языке, то скрипт завершается с ошибкой. Поэтому я подумал, а что если в MySQL сделать так, чтобы все имена файлов переменовывать? Имею ввиду начиная с последующего, как только клиент создаст тикет. Но как это сделать я не знаю. Если можете помочь буду очень признателен. База: billmgr Таблица, где хранятся все вложения: ticket_message_attach Содержимое таблицы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Где: id — код записи ticket_message — код сообщения base_name — имя файла для отображения name — имя файла ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 08:13 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Замените пример выборки на её CREATE TABLE (взять реальный DDL, а не создать под данные!) + INSERT INTO скрипты. Покажите требуемый результат на этих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 10:56 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Akina Замените пример выборки на её CREATE TABLE (взять реальный DDL, а не создать под данные!) + INSERT INTO скрипты. Покажите требуемый результат на этих данных. Понятно, что ничего не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 15:02 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Akina, ему надо, чтобы при вставке записи в поле name вставлялось транслитерированное значение из base_name. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 16:34 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Я сделал так Код: sql 1. 2. 3. 4. 5. 6. 7.
Затем создал новое сообщение с вложением "снимок.PNG" в панели управления, после этого смотрю таблицу и вижу появился id 2 с вместо имени "снимок.PNG" в виде хэша. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Всё отлично, но проблема в том, что в имени "4ca61df6137d46eebb9e82b403b87d75" теряется расширение файла. А должно быть таким "4ca61df6137d46eebb9e82b403b87d75.PNG" Поделитесь пожалуйста решением как избежать хэширования расширения. Заведомо неизвестно, какое может быть расширение, оно может быть *.doc, *.docx, *png, *jpeg и тд. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 16:41 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
строковые функции никто не отменял имя_файла . расширение имя_файла меняем. дописываем ".расширение" имя файла = SUBSTRING_INDEX(name , '.', -1) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 17:57 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Alex_Ustinov,попробовал так Код: sql 1. 2. 3. 4. 5. 6. 7.
Затем отправил тикет с вложением Снимок - копия - копия.PNG, но MD5 не сработал. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2020, 13:41 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
я же привел только пример... да и то ошибку сделал. .. Код: sql 1. 2. 3. 4. 5.
осталось понять, осознать, применить... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2020, 13:58 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Alex_Ustinov Код: sql 1. 2.
Записи id = 6, 7, 8 из исходного сообщения дадут неверный результат - имя будет обрезано. С другой стороны - а зачем отрезать расширение перед хэшированием? хешируем всё, а потом добавляем расширение... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 12:07 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Akina, я не даю конкретных решений под ключ. Человеку если надо - он сам разберется. Внизу пояснение для ТС "осталось понять, осознать, применить..." Решение через строковые функции имеет десяток вариантов. мне показать все что ли... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 12:27 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Akina, допустим я бы не мучался даже со строковыми функциями и сделал функцию транслитерации РУС->ENG. Всего лишь 33 REPLACE(). Заодно и пробел на подчеркивание заменить. Не люблю разовые поделки. А функция всегда пригодится. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 12:46 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
Alex_Ustinov допустим я бы не мучался даже со строковыми функциями и сделал функцию транслитерации РУС->ENG. Всего лишь 33 REPLACE(). Дык готовые функции транслитерации - что по ГОСТ, что по иным алгоритмам, в т.ч. обратимые - они есть (искать только замучаешься, чтобы была именно в виде, пригодном для компиляции под использование в MySQL). А кто сделал - вот не рвётся выкладывать для всеобщего употребления. Но проблема, в общем, решаемая. Ну а регистрация UDF - не самая сложная задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 13:30 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
все же просто на коленке, даже если влоб Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
обратных 1 в 1 не существует, так что это не самоцель ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 16:53 |
|
Изменение строки в колонке таблицы с помощью триггера
|
|||
---|---|---|---|
#18+
появилось время дополним с циклом, так удобнее для редакции функция "шифрограмма" Ъ-два апострофа Ь - один Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 18:27 |
|
|
start [/forum/topic.php?fid=47&msg=39991742&tid=1828402]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 523ms |
0 / 0 |