LINUX.ORG.RU

Авточинилка кривых кодировок в емейлах: Fomenca


0

0

Скрипт на Питоне принимает со стандартного ввода email-сообщение, правит кодировки в заголовках у всех его текстовых частей (простой текст или HTML, кодировки 8бит, Quoted-Printable, base64 - всё должно поддерживаться) и выводит исправленное сообщение на стандартный вывод. Если при разборке сообщения что-то не срабатывает, на стандартный вывод отправляется копия исходного сообщения - поэтому потери сообщений быть не должно.

Для определения кодировки используется программа под названием Enca. Название Fomenca - это "Enca" плюс имя известного "исторического ревизиониста", который никогда не доверяет источникам. (Автор не поддерживает взгляды Фоменко!)

>>> Скачать fomenca. Здесь же линк на Enca



Проверено: Shaman007 ()

Хех, обычно мэйл уже испорченый приходит, либо в вопросах, либо похереный ;) Исправлять надо на другом конце ;)

anonymous
()

Присоединяюсь к anonymous (*) (01.03.2005 11:52:27). Хотелось бы ещё добавить, что за такое оформление страницы в виде двуязычной мешанины надо руки обрывать.

dsx
()
Ответ на: комментарий от anonymous

>Блин, офигительный скрипт, я таких каждый день пишу по пять штук.

Хоть ты и написал их 5*365*хз, где они? А я могу сказать, но промолчу

Dubrovsky
()
Ответ на: комментарий от vm

кучкой воинствующих маргиналов не умеющих настроить русский или зайти на translit.ru

anonymous
()

ждем патча для подсветки

anonymous
()

Очередной велосипед с квадратными колесами, да еще и со змеей (питон) в место руля.

http://fix-mime-chr.sourceforge.net/

> Для определения кодировки используется программа под названием Enca

Автоматическое определение кодировки при помощи ENCA (поддерживаются все языки, имеющиеся в ENCA) или встроенного детектора (только русскоязычные кодировки KOI8-R, CP1251 и UTF-8).

ps: учить матчасть, фунчасть и статчасть.

chip
()

Кроме того, не мешает подучить питон, прежде чем лезть ко всему миру
со своими 20-строчниками.

Вместо

try:
blablabla()
done = 1
finally:
if not done: bububu()

вменяемые люди пишут:

try:
blablabla()
except:
bububu()

Так что, учите матчасть, гражданин Рамендик.

anonymous
()
Ответ на: комментарий от anonymous

А нельзя ли эту ENCA к вводу с клавиатуры приделать?
Частенько забываешь переключится с русского на английский
или наоборот.
Видел такую вещь в одной очень известной ОСи.

svs ★★★
()
Ответ на: комментарий от svs

>А нельзя ли эту ENCA к вводу с клавиатуры приделать? >Частенько забываешь переключится с русского на английский или наоборот. >Видел такую вещь в одной очень известной ОСи.

См. http://www.linux.org.ru/jump-message.jsp?msgid=703938

Правда, у меня под Gentoo/xorg/KDE-3.4 оно так и не заработало... :)

KRoN73 ★★★★★
()

Все это, конечно, здорово. Вот только письма пришедшике комне в крокобяках меня не еб.. волнуют. Я их убиваю, и совесть потом не мучает.

Интересует более другой вопрос, отучить у клиентов аутглюк умничать.
Причепляешь к письму HTML файлик. Ну отчет у меня формируется в HTML. Причем, в нем все почесному с кодировкой в методанных. The Bat намна принимает, всевозможные юниксы-фрюниксы нормально, а вот аутглюк берет и это все перекодирует в каую-то попугайскую кодировку, которую и сам не понимает, и такой, гордый сам собой, показывает! Во, мля, я че умею!
Из-за этой его фичи, приходится в pdf конвертить. Дело не хитрое, но напрягаться не охота каждый раз.

vada ★★★★★
()
Ответ на: комментарий от anonymous

Вопрос по теме:
Что нужно сделать если хочется сделать subject письма русский и чтобы при этом его никто не покорежил и спаматсасин не ругнулся на SUBJ_ILLEGAL_CHARS Subject contains too many raw illegal ?
текст письма в koi8 и есть хидер Content-Type: text/plain; charset="koi8-r"

barmaglot
()
Ответ на: комментарий от barmaglot

сне зависимости от Content-Type: text/plain; charset="koi8-r" все буквы за пределами ascii во всех заголовках кодируются.

в питоне для этого есть модуль email

anonymous
()
Ответ на: комментарий от KRoN73

Поставил себе эту xneur-0.0.3.tar.bz2 - идея мне нравится, но не заработала
gnome 2.8.3-1
xfree86 4.3
говорит:
[ERR]: Can't get WM_CLASS
хотя:
$ xprop WM_CLASS
WM_CLASS(STRING) = "gaim", "Gaim"

anonymous
()
Ответ на: комментарий от anonymous

>>сне зависимости от Content-Type: text/plain; charset="koi8-r" все буквы за пределами ascii во всех заголовках кодируются.

>>в питоне для этого есть модуль email

кодируются во что?

barmaglot
()
Ответ на: комментарий от anonymous

По 5 штук в день? Реюз кода уже отменили?

CruZ
()
Ответ на: комментарий от anonymous

настоящие хакиры маны никогда не читают ;)
ps. прочитал я его, прочитал. о чем и ответ запостил

barmaglot
()

Я узнал его! Это Альфекс, это Альфекс! За Питон взялся, ник помнял!

P.S. Ваш английский, уважаемый сэр, меня просто потряс. Оксфорд? Кэмбридж?

brainf_cker
()
Ответ на: комментарий от barmaglot

1)не просто в base64 а с указанием кодировки. 2)не просто строку в base64, а только части, выходящие за пределы 127 бит и в одной кодировке.

стекабельная закрутка получается.

AVL2 ★★★★★
()

(Это ramendik, пишу с работы, лень пароль доставать).

Тривиальность скрипта мне, разумеется, понятна. Единственное, зачем я его вывесил - это чтобы каждый следующий не повторял раз за разом ту же работу. Ещё для этой же цели линк вывешен на странице enca.

Перед тем как писать сиё поделие (ещё в январе - я ж тестировал до выкладывания ;) я, разумеется, пробовал поискать. Не нашёл. А что искать - было. Вот чтобы в ТРЕТИЙ раз кто-то не делал, пусть и будет сей флейм на LOR ;)

Кстати, про fix-mime-charset не знал не только я, но и сам автор enca. И потому поддерживать типичные mime названия кодировок enca начала только позавчера и только по моей просьбе :) Наверное, теперь и в fix-mime-charset эта фича пригодится.

Пояснение к try-finally - это я как раз нарочно сделал "неправильно". Разница в том, что в try-finally, насколько я понимаю, информация об exception вывалится в stderr, а в try-except, если не принимать специальных мер, она просто пропадёт. Но вообще - разумеется, поправки принимаются, емейл на сайте.

Насчёт двуязычности - принято, сделаю как у fix-mime-charset. И добавлю линк на fix-mime-charset.

Это всё ерунда на самом деле. Вот научить бы Konqueror фильтровать весь получаемый HTML через подобный же фильтр (который сляпать-то несложно), чтобы отменить проблему кодировок насовсем...

anonymous
()
Ответ на: комментарий от anonymous

> Пояснение к try-finally - это я как раз нарочно сделал "неправильно". Разница в том, что в try-finally, насколько я понимаю, информация об exception вывалится в stderr, а в try-except, если не принимать специальных мер, она просто пропадёт. Но вообще - разумеется, поправки принимаются, емейл на сайте.

try:
    blablabla()
except:
    bububu()
    raise

stinkrat
()
Ответ на: комментарий от brainf_cker

Вы ошибаетесь. У меня никогда не было ника Альфекс.

Английский на всякий случай перепроверил, багов не обнаружено. Я вобще-то профессионально именно тексты пишу, а скрипты - для развлечения (или, как в даном случае, когда припрёт).

ramendik
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.