Ну, это просто ужасно!
Я думал, что Google не трогал это с февраля 2015 года, но я ошибался.
Похоже, в 2020 году был проведён полный редизайн, а в 2021 году обновили логотип.
Ну, это просто ужасно!
Я думал, что Google не трогал это с февраля 2015 года, но я ошибался.
Похоже, в 2020 году был проведён полный редизайн, а в 2021 году обновили логотип.
Я планирую использовать API Gmail и Discourse для преобразования потоков писем в посты на Discourse. Я изучил документацию Google API, смог получать письма, но у меня осталось несколько вопросов.
Письма можно скачать в сыром виде — это значение в кодировке base64, соответствующее «Оригинальному сообщению» письма. Это то же самое, что формат mbox, или они различаются?
Есть ли пример того, как добавлять посты и вложения в Discourse через API?
Интересно. Возможно ли использовать Gmail API для доступа к письмам из Google Groups, или у вас просто есть аккаунт Gmail, в котором хранятся все письма, отправленные в группу?
Я рекомендую сохранять все сообщения в отдельные файлы *.eml. Вам потребуется декодировать сообщение перед сохранением, если всё сообщение (включая заголовки электронной почты) закодировано в base64. После этого следуйте инструкциям по адресу Migrate a mailing list to Discourse (mbox, Listserv, Google Groups, etc) (за исключением шагов, связанных с Google Groups). Скрипт импорта автоматически обработает посты, вложения и многое другое.
Я являюсь участником группы, поэтому могу получать письма через свой адрес электронной почты. Всё сообщение, включая заголовки, будет частью закодированной строки.
Попробую ваш подход для импорта в Discourse, по крайней мере, для одной ветки.
Что ж, в таком случае вам, возможно, даже не понадобится Gmail API. Подключение почтового клиента, такого как Thunderbird, к вашему аккаунту Gmail и экспорт отдельных писем или файла mbox должно быть достаточно…
Теперь мне очень интересно узнать, как это работает. У меня было впечатление, что Google Groups не поддерживает NNTP.
Это не NNTP, а REST API.
Размер моего почтового ящика превышает 200 ГБ, и для получения писем по конкретным группам мне, возможно, придется скачать все эти письма через Thunderbird. Кроме того, Thunderbird не отображает все письма из Google Groups — они все находятся только во «Входящих». Также он скачивает только по 200 писем за раз. Поэтому я не уверен, сколько времени это займет, чтобы получить все письма и т. д.
Есть ли какой-то альтернативный способ просто получить данные из Google Groups и экспортировать их в mbox?
Здравствуйте, Герхард Шлагер,
Мы пытаемся мигрировать наши группы Google в Discourse. Мы выполнили все указанные выше шаги согласно документации, но система создаёт только категорию в Discourse, не импортируя данные. Будем очень признательны, если вы сможете быстро ответить на этот вопрос.
Единственный известный нам способ больше не работает. Если вы знаете любой способ получения данных, то вам следует воспользоваться им. Если вам известен способ, вам, вероятно, стоит начать собирать данные как можно скорее, пока этот метод тоже не исчезнет.
Если данные находятся в вашем почтовом ящике, возможно, использовать Gmail API для их извлечения. Однако это будет непросто, так как разработчику потребуется доступ к почтовому ящику, содержащему данные группы Google, чтобы написать код.
Если только корпоративный клиент не потребует этого, я сомневаюсь, что cdck (то есть discourse.org) займется написанием такого кода в ближайшее время. Вы можете спросить в канале Marketplace. Я бы, скорее всего, не рассматривал такую задачу за сумму менее 2000 долларов, а учитывая мое прошлое разочарование скриптом импорта из групп Google, вероятно, потребовал бы 5000 долларов. Конечно, у кого-то другого могут быть более высокие навыки или больше терпения.
Один из возможных подходов — использовать Integromat для автоматизации конвертации, при условии, что доступны приложения для Google Groups и Discourse. Либо можно самостоятельно выполнять HTTP-вызовы к REST API.
Integromat — это система интеграции и миграции данных. Она очень мощная и позволяет решать множество задач с минимальным кодом или вовсе без него.
Я попробовал использовать Google Takeout, сделав себя владельцем группы в Google Workspace, что позволило скачать переписку из Google Groups. Однако процесс импорта всё ещё в работе.
У этого подхода есть несколько недостатков:
Привет, @Anjana_Raghavendra_P! Удалось ли вам выполнить простой импорт с помощью этого подхода?
Огромное спасибо!
Да, я смог загрузить файл mbox из Takeout и импортировать его, следуя шагам, указанным в оригинальном сообщении.
Позже, так как мы используем PaaS-сервис Discourse, мы передали файл технической команде Discourse, которая смогла импортировать контент на платформу Discourse.
Рад это слышать — спасибо!
Я столкнулся с проблемой @sturdy2, когда в файле settings.yml изменил первую строку data_dir: /shared/import/data с её значения по умолчанию.
Главный вывод: не меняйте её, так как она указывает путь внутри контейнера импорта, а не на основной машине.
У меня вопрос о перезапуске импорта?
Я не разработчик, но мне удалось успешно импортировать два файла mbox, полученные из системы Topicbox Group Email. Я выполнил тестовый импорт во временный экземпляр Discourse, который настроил на Digital Ocean. И я смог импортировать свои два тестовых файла mbox в уже созданные категории в Discourse, благодаря инструкциям о настройке category.custom_fields[“import_id”] = “mydir” из предыдущих материалов.
Отлично! Но если я захочу импортировать больше файлов mbox, мне нужно будет выполнить все команды, упомянутые в FAQ 2.2, где указано, что это «удалит всё»?
Я успешно установил «import_id» для двух разных категорий в рамках первоначального тестового импорта. Всё сработало! Мои два файла mbox были импортированы в указанные мной существующие категории.
В итоге мне нужно сделать то же самое для 18 различных категорий. Я ничего не знаю о Ruby. Могу ли я создать файл, который будет задавать имя каталога для каждой из моих категорий, чтобы мне не приходилось вручную вводить каждую строку в интерфейсе командной строки Ruby?
Да. Поищите в Google «ruby for each». И создайте массив с некоторыми из категорий.
Нет, не нужно. Импортер поддерживает инкрементальный импорт. При следующем запуске он импортирует только новые данные. Пожалуйста, не выполняйте команды, упомянутые в разделе 2.2, если вы не хотите начать с нуля.
К сожалению, в настоящее время это невозможно. Если вы хотите импортировать данные в существующие категории, вам нужно назначить каждой категории import_id.
Спасибо @gerhard за всю вашу удивительную работу над этим! Я не разработчик, но мне удалось завершить миграцию из системы рассылки под названием Topicbox. Я смог получить файлы mbox из Topicbox для импорта в Discourse. В процессе проб и ошибок я всё задокументировал в статье блога. Так что, если это нормально, я хотел бы разместить ссылку на эту статью для любых других пользователей Topicbox, которые хотят перейти на Discourse.