Бэкап телеграм диалогов, каналов

Бэкап телеграм диалогов, каналов

Anonymous

Это слишком долгий путь для бэкапа телеграма, надо запилить docker контейнер, а пока есть, что есть. Обобщенная информация для исключения багов при работе

использовал образ Ubuntu 16.04.3 LTS

Используемые репозитории

https://github.com/vysheng/tg

https://github.com/tvdstaaij/telegram-history-dump

На этом всё, дальше для тех кто не знает английский или лень искать решение, возникающих ошибок

Устанавливаем git, если не установлен

sudo apt-get install git
  1. Скачиваем консольный телеграм
git clone --recursive https://github.com/vysheng/tg.git && cd tg

2. Скачиваем библиотеки

sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make

Если скомпилировать на данном этапе, то будут ошибки.

3. В файле tgl/mtproto-utils.c, изменяем строки 101 и 115

assert (0); // As long as nobody ever uses this code, assume it is broken.

на

//assert (0); // As long as nobody ever uses this code, assume it is broken.

или удаляем.

4. В файле tgl/queries.c находим функцию static void _tgl_do_get_history и изменяем, как показано ниже

static void _tgl_do_get_history (struct tgl_state *TLS, struct get_history_extra *E, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) {
  clear_packet ();
  //tgl_peer_t *C = tgl_peer_get (TLS, E->id);
  //if (tgl_get_peer_type (E->id) != TGL_PEER_CHANNEL || (C && (C->flags & TGLCHF_MEGAGROUP))) {
    out_int (CODE_messages_get_history);
    out_peer_id (TLS, E->id);
  //} else {    
  //  out_int (CODE_channels_get_important_history);

  //  out_int (CODE_input_channel);
  //  out_int (tgl_get_peer_id (E->id));
  //  out_long (E->id.access_hash);
  // }
  out_int (E->max_id);
  out_int (E->offset);
  out_int (E->limit);
  out_int (0);
  out_int (0);
  tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_history_methods, E, callback, callback_extra);
}

5. Компилируем

./configure 
make

6. Пробуем запустить телеграм

bin/telegram-cli -k tg-server.pub

залогинились, если всё работает, то супер.

6. Проверяем версию Ruby

ruby --version

если не установлен, то устанавливаем

sudo apt-get install ruby-full

7. Скачиваем репозиторий

git clone https://github.com/tvdstaaij/telegram-history-dump.git && cd telegram-history-dump

8. Настраиваем файл config.yaml

backup_channels: [
    Название канала
  ]

для сохранения в html

  formatters: {
    plaintext: {
      date_format: '%Y-%m-%d %H:%M:%S'
    },
    bare: {},
    pisg: {},
    html: {
      paginate: 1500, # messages per page
      use_utc_time: false,
      timestamps_every: 50, # messages
      loop_video: true, # loop and autoplay videos
    },
  }

выбираем что скачивать

download_media: {
    photo: true,
    document: true,
    audio: false,
    video: false,
  }

чтобы файлы сохранялись в отдельную директорию

copy_media: true

9. Запускаем телеграм из соответствующей директории

bin/telegram-cli --json -P 9009

открываем новое терминальное окно

запускаем из папки telegram-history-dump

ruby telegram-history-dump.rb

Результаты будут в директории telegram-history-dump/output


Report Page