Пользователь
0,0
рейтинг
19 декабря 2009 в 16:40

Скачиваем историю сообщений из GTalk'a себе на компьютер

GTalk
Давно пользуюсь gmail'овским джаббером для общения. Подключил транспорт и пользовался, радуясь жизни. Спустя пол года Чингачгук заметил, что одной стены в его камере нет я заметил, что пользоваться историей жутко неудобно и решил скачать всю историю сообщений для оффлайнового пользования.

Рассмотрим варианты


Google Gears


Первый вариант, который предлагает сам гугл, использовать Google Gears. Но для того, чтобы просматривать историю, все равно нужно заходить в браузер, а это более чем неудобно (по крайней мере для меня), мне намного приятнее хранить историю в текстовом виде.
Также, небезопасно хранить историю сообщений в онлайне. Пусть она хранится на сервере гугла, пусть на серверах AOL все логируется, но я не хочу, чтобы она была доступна из моей учетной записи gmail'a. По крайней мере долгосрочно — пусть хранится история недельной давности. Не более.

Хранить в нативном виде у себя на компьютере


Стандартными методами это никак не возможно. История не скачивается с POP3, IMAP, отсутствует она и в клиенте GTalk. Никакой кнопки «Скачать историю» даже близко и нету.
Что-ж. Не хотите по-хорошему, будем по-плохому.

Танцы с бубном


Сохраняем странички с историей себе на компьютер.


Подготовка

В «чатах» у меня около двух тысяч логов. Нужно открыть каждый и сохранить.
Делать это вручную, естественно, мы не будем. Для этого устанавливаем дополнение iMacros для Firefox'a.
Что же нам нужно сохранять? Желательно, только сам лог — без всяких логотипов, кнопок и вкладок. Идеально — «версия для печати» в gmail'e есть!

Записываем макрос

Для начала, создайте новую метку, например, «chats». Перейдите в «Чаты» и пометьте ВСЕ логи этой меткой. Для чего? А скоро увидите.
Переходим в Режим просмотра Gmail: упрощенный (внизу страницы)
Что мы видим? Вкладки «Чаты» нет! Но мы хитрые — выбираем метку «chats» и видим все чаты.
Открываем iMacros и уменьшаем немного масштаб страницы, чтобы вся панель с кнопками «Снять ярлык», «Сообщить о спаме», цифрами о количестве сообщений была БЕЗ переводов строки.
Начинаем запись макроса.
Первым делом меняем режим клика — на позиционный — X/Y. Кликаем на первом сообщении — по метке «chats» рядом с темой. Когда откроется, меняем режим клика на Авто, кликаем правой кнопкой по «Печать» и выбираем «Сохранить объект как...» и сохраняем в любую папку. Далее снова меняем режим клика на X/Y и нажимаем на кнопку «Снять ярлык chats». Завершаем запись.
Теперь заходим в Редактирование.
Уберите третью строку (URL GOTO=...) и у вас получится что-то вроде этого:

VERSION BUILD=6251204 RECORDER=FX
TAB T=1
URL GOTO=http://mail.google.com/mail/h...
CLICK X=442 Y=177
ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}} WAIT=YES
TAG POS=2 TYPE=A ATTR=TXT:Печать CONTENT=EVENT:SAVETARGETAS
CLICK X=268 Y=151


Сохраните макрос под каким-то именем.

Запуск

Всё будет сохраняться в ту папку, которая указана в опциях iMacros'a (Папка закачек). Поставьте метку «chats» на те сообщения, у которых она была снята в результате эксперементов, зайдите в Папку закачек и удалите всё её содержимое.
Запускайте макрос по сотне раз с перерывом в 10 минут во избежание блокировки аккаунта. Во время операции меня 3 раза заблокировали на один час :)

Преобразовываем в текстовый файл


И так… все файлы с историей у нас на компьютере. Но все они с кучей html-тегов.
Решением проблемы есть утилита html2text — она есть почти во всех репозиториях linux, в сети видел и под windows.
$cd Папка_закачек_iMacros
$html2text * > ~/all.txt
После этой комманды вся история сохранится в текстовый файл all.txt в домашней папке в довольно-таки удобном виде.

Поздравляю! Мы сделали это! Теперь можно с чистой совестью удалить историю с gmail'a.
Спасибо за внимание.

Пользуясь случаем, выражаю благодарность levsha100 за инвайт ;)
Роман @Antigluk
карма
128,7
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (51)

  • +9
    вроде история чатов в Google Talk хранится на сервере, чтоб избавить пользователя от необходимости следить за сохранностью подобных all.txt… )
    на за способ всё равно спасибо)
    • 0
      для меня это актуально, так как я подключил транспорт аськи и:
      1) через gmail могу сидеть в аське на любом компьютере, где есть интернет без установки какого-либо софта
      2) если сижу через разные клиенты то нет проблем с разными форматами истории у них
      3) периодически делаю действия, которые описал в статье, и у меня есть полная история в едином формате. даже если я иногда сидел не дома или «забыл скинуть история аськи на флешку когда сидел за другим компьютером»
      • +1
        ну просто у gmail'а, как ни крути, достаточно гибкая и быстрая система поиска. хотя конечно, порой хочется просто grep'нуть.
      • 0
        кстати, а в gmail опять можно подключать транспорты?
        • 0
          прямо из gtalk'a или веб-мессенджера никак, но если подключиться другим клиентом — psi, pidgin или gajim (им я пользуюсь), то можно.
          А потом все контакты видны и из gtalk'a и на gmail'e. Единственный минус, что транспорт в них отображается как обычный контакт, но меня это не особо напрягает.
          • 0
            ну, понятно, это я примеры клинтов дал. можно любым, который поддерживает транспорты.
          • 0
            А разве pidgin стал поддерживать подключение транспортов? Разработчики вроде сознательно их не реализовывают, ссылаясь на то, что дескать и так клиент поддерживает много протоколов.
      • 0
        расскажи о подключение транспорта и проблемах при использовании
        • 0
          заходите любым клиентом, который поддерживает транспорты и добавляете
          никаких проблем нет. единственная — в некоторых клиентах транспорт отображается как обычный контакт, но к gtalk/gmail это никакого отношения не имеет.
          • 0
            Это я пробывал, но у меня возникли проблемы с аторизацией 59 человек из моего коетактного листа. Поэтому если вас не затруднит можно более подробно описать схему + если можно указать сервер который вы использыете как транспорт. Если не хочется писать то можно пообщаться MrVodinn [] gmail.com
          • 0
            Ни в какую ни один из транспортов и Psi не захотел резолвить ники.
            Переименовывать 200 контактов вручную — лучше убиться.
            Заколебался потом удалять из контактов в gamail кучу юзеров типа 12121212121@icq.transport…
            На этом эксперименты остановил
            • 0
              А вы опцию options.contactlist.resolve-nicks-on-contact-add в Psi включали?
              • 0
                Угу, галочку ставил, а то, что вы написали это вообще откуда-то из дебрей, и я и не обязан знать где это
                • 0
                  не обязаны, но вы ведь хотите, чтоб оно работало?) так что можно и узнать.
                  • 0
                    Ни в одном туториале не написано, что это вообще нужно делать, галочку ставил-не помогло, забил, очередное подтверждение того, что свободное по не решает, с какого бы большого перепугу я, пользователь, должен лезть в конфиг и править его руками
                    • 0
                      не знаю как psi, а в gajim все работает «искаробки». я даже кодировку не настраивал.
                • 0
                  Обождите, какую галочку? В psi я не знаю где можно для этого ставить галочку. А эта опция в Options → Advanced. У меня просто тоже вначале было тоже самое, что вы описали — куча контактов с ужасными никами, потом поставил эту опцию в true и всё заработало (пришлось конечно, почистить ростер от предыдущих попыток). Возможно стоит предпринять ещё одну попытку! :)

                  Правда, у меня сервер не gmail, но думаю это не должно влиять на работоспособность авто-резолвинга (т.к. очевидно, ники должны браться из vcard, а что попадает в vcard это уже ответственность транспорта).
                  • 0
                    Щас запустил, посмотрел, действительно это там :) давно открывал последний раз
    • 0
      или еще одно применение — если вдруг, захотите отказаться от gmail и пользоваться, например, аськой напрямую, без транспортов — тогда заходить в gmail за историей «до дня N» и пользоваться локальной для сообщений «после дня N». правда неудобно?)
      • +5
        обычно бывает наоборот)) отказываются от ICQ в пользу GT и Jabber…
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      да я долго думал как красивее решить эту задачу… были варианты и через bash-скрипты с парсингом кода и выцеплением ссылок на печать, но этот способ оказался красивее всех.
    • +1
      А кто мешает заходить с гуглового джаббера в конференции на любом другом сервере? О_о
      • 0
        Тут согласен но всетаки возможности гтолка урезаны по срвнению с обычным джаббером…
        нет нормально работы с ресурсами, нет закладок итд…
        единственное почему там сижу это привязка к своему домену через аппс…
        • 0
          а это проблема именно клиента(который можно сменить), или сервера?
          • 0
            Сервера конечно… родным клиентом никогда не пользовался…
        • 0
          Странно, только что проверил, из psi с gtalk всё нормально ходит.
          • 0
            Дык я что спорю я с psi+ сижу… Но это кагбэ написанному мной выше не протеворечит…
            • 0
              Гм, я подумал, что речь о том, что вообще в конференции войти нельзя — некоторое время назад такой баг в серверах gtalk действительно был.
    • 0
      только хотел сказать это! без конференций теперь никуда, да и закладок не добавить (
  • 0
    ну все чувак, поздравляю тебя с регистрацией и первым постом)) все таки ты добился своего инвайта)
    • 0
      спасибо:)
  • +1
    черт, вот бы они ввели возможность закачивать переписку и объединять асечные контакты с джабберовскими… эх… ((
  • 0
    Я в аналогичной ситуации нашёл скрипт, использующий libgmail.

    Проблема только в том, что заставить работать libgmail сложно, и, видимо, скоро будет невозможно.
    • 0
      +1

      Еще одна проблема с libgmail в том, что где-то после 500 запросов за короткий промежуток времени, гмейл банит аккаунт на какое-то время.
  • +1
    Неужели один я заметил, что название злобно темы не соответствует содержимому.
    • 0
      простите, чем оно не соответствует? цель — скачать историю. в статье описан метод.
      • 0
        Историю Gtalk, а не GMail (которая скачивается через POP3/IMAP на ура).
        • 0
          Точно) Не понял сначала о чем вы говорите.
          Спасибо за замечание, поменял название =)
  • +1
    Не пользовался Gmail для IM, но когда устанавливал Gears, то в его каталоге (в Documents and Settings) после синхронизации лежала вся почта во вполне читаемом виде, с заголовками и т.п. Скорее всего для истории IM будет так же и не нужно будет изобретать макросы.
    • +1
      Попробовал, да, вся почта и чаты с дополнительной информацией будут лежать в формате базы данных sqlite. Весьма удобно, плюс еще есть постоянная синхронизация.
  • –7
    Мне 20 лет. Я работаю в компании-лидере в своей отрасли. У меня очень красивая и умная девушка. Я лидер метал-группы. Я учусь в лучшем техническом вузе Москвы. У меня в друзьях ходят очень влиятельные люди — от сыновей начальников ФСБ до директоров по безопасности отдельно взятых компаний. А чем можешь похвастаться ты, мальчик?
    • +1
      тьфу, не туда
    • 0
      О_о
    • +1
      Я думал в конце этого будет какой-то прикол, типа «только вот не могу скомпилить KDE3 для FreeBSD»
  • 0
    кто-нибудь знает как запустить гаджет gtalk из gmail в отдельном окне?
  • 0
    А правда, что они исходники клиента потеряли, и поэтому GTalk не обновляется? :)
    • 0
      Да за столько лет, что они твердят про то, что исходники потерли можно написать его заново!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.