Бэкап телеграм диалогов, каналов
AnonymousЭто слишком долгий путь для бэкапа телеграма, надо запилить docker контейнер, а пока есть, что есть. Обобщенная информация для исключения багов при работе
использовал образ Ubuntu 16.04.3 LTS
Используемые репозитории
https://github.com/tvdstaaij/telegram-history-dump
На этом всё, дальше для тех кто не знает английский или лень искать решение, возникающих ошибок
Устанавливаем git, если не установлен
sudo apt-get install git
- Скачиваем консольный телеграм
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