Yahoo Groups 提供(或者说曾经提供)存储空间,用于存放群组的照片(100 GB)和其他文件(2 GB)。我所加入的群组使用这些空间来存放成员照片、与群组相关的各类物品图片以及其他文件。任何在 Yahoo 群组成员之间私下发送的内容,很可能都是通过电子邮件进行的,而 Yahoo 不会保留这些记录;我认为迁移这部分内容甚至是不可能的,更谈不上是优先事项了。不过,许多群组中确实存储了大量信息,在迁移过程中他们可能希望将这些信息保留下来。
有可能。再次强调,目前据我所知,只有一个(且仅有一个)网站看起来像是现成的替代方案,但它仅对 Yahoo Groups 的旧格式进行了微调。我在想,如果一个群组无论如何都需要迁移,那么迁移到一个更现代化的平台可能更好。Discourse 与电子邮件的配合仍然相当出色(许多其他论坛软件做不到这一点),这意味着像我们这样习惯接收邮件并直接通过邮件回复的“老派”用户,依然可以沿用这种方式。此外,节省一些费用也是不错的。
在批量下载群组内容方面似乎相当好用——它能获取所有消息、文件、附件等。消息会被下载为两个 .json 文件,一个是“原始”格式,另一个是 HTML 格式。第一个文件看起来像这样:
{
"userId": 185744666,
"authorName": "vhsproducts@aol.com",
"from": "vhsproducts@...",
"profile": "vhsproducts",
"replyTo": "LIST",
"senderId": "fc-T6L4xNaFRDleu_7gutRzgA_WWujKXanij68LOf7iz0WXh-BolDsmiqlo19adwRPTjwe0FpCYycg",
"spamInfo": {
"isSpam": false,
"reason": "0"
},
"subject": "Re: [MicroTrak] Mint-Trak300 completed",
"postDate": "1181013131",
"msgId": 4,
"canDelete": false,
"contentTrasformed": false,
"systemMessage": false,
"headers": {
"messageIdInHeader": "PGM3ZC5lNWZlOTFjLjMzOTYyZThiQGFvbC5jb20+"
},
"prevInTopic": 3,
"nextInTopic": 6,
"prevInTime": 3,
"nextInTime": 5,
"topicId": 3,
"numMessagesInTopic": 4,
"msgSnippet": "Outstanding work! I see you have the first gen of the Micro-Trak ( although we still sell them for people with TT3 SMT s) How long will a 9 volt run your GPS? ",
"rawEmail": "Return-Path: <VHSProducts@...>\r\nX-Sender: VHSProducts@...\r\nX-Apparently-To: MicroTrak@yahoogroups.com\r\nReceived: (qmail 18487 invoked from network); 5 Jun 2007 03:13:19 -0000\r\nReceived: from unknown (66.218.67.36)\n by m50.grp.scd.yahoo.com with QMQP; 5 Jun 2007 03:13:19 -0000\r\nReceived: from unknown (HELO imo-m23.mx.aol.com) (64.12.137.4)\n by mta10.grp.scd.yahoo.com with SMTP; 5 Jun 2007 03:13:19 -0000\r\nReceived: from VHSProducts@...\n\tby imo-m23.mx.aol.com (mail_out_v38_r9.2.) id r.c7d.e5fe91c (29679)\n\t for <MicroTrak@yahoogroups.com>; Mon, 4 Jun 2007 23:12:11 -0400 (EDT)\r\nMessage-ID: <c7d.e5fe91c.33962e8b@...>\r\nDate: Mon, 4 Jun 2007 23:12:11 EDT\r\nTo: MicroTrak@yahoogroups.com\r\nMIME-Version: 1.0\r\nContent-Type: multipart/alternative; boundary="-----------------------------1181013131"\r\nX-Mailer: 9.0 Security Edition for Windows sub 5365\r\n(snip)"
}
……而后者看起来像这样:
{
"userId": 185744666,
"authorName": "vhsproducts@aol.com",
"from": "vhsproducts@...",
"profile": "vhsproducts",
"replyTo": "LIST",
"senderId": "oChpSVZSELyeHvFRyDX_nG5dfpdVZTLBKFMDvOg33fSsrDk5l-zpPohl42rhz6OhM9tFfSjAxxGsRg",
"spamInfo": {
"isSpam": false,
"reason": "0"
},
"subject": "Re: [MicroTrak] Mint-Trak300 completed",
"postDate": "1181013131",
"msgId": 4,
"canDelete": false,
"contentTrasformed": false,
"systemMessage": false,
"headers": {
"messageIdInHeader": "PGM3ZC5lNWZlOTFjLjMzOTYyZThiQGFvbC5jb20+"
},
"prevInTopic": 3,
"nextInTopic": 6,
"prevInTime": 3,
"nextInTime": 5,
"topicId": 3,
"numMessagesInTopic": 4,
"msgSnippet": "Outstanding work! I see you have the first gen of the Micro-Trak ( although we still sell them for people with TT3 SMT s) How long will a 9 volt run your GPS? ",
"messageBody": "<div id=\"ygrps-yiv-810547383\">\n<html><head>\n \n</head> \n\n<font id=\"ygrps-yiv-810547383role_document\"\n face=\"Arial\" color=\"#000000\" size=\"2\">\n<div>Outstanding work! I see you have the first gen of the Micro-Trak ( although \nwe still sell them for people with TT3 SMT's) How long will a 9 volt run your \nGPS?</div>\n(snip)",
"specialLinks": []
}
dan@ubuntu:~/discourse$ bundle exec ruby script/import_scripts/yahoogroup.rb
Traceback (most recent call last):
script/import_scripts/yahoogroup.rb: Bootsnap::LoadPathCache::FallbackScan
7: from script/import_scripts/yahoogroup.rb:4:in `<main>'
6: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/kernel.rb:23:in `require'
5: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:26:in `require'
4: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:40:in `rescue in require'
3: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
2: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register'
1: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require': cannot load such file -- mongo (LoadError)
奇怪,我以为我已经安装了 mongo gem。好吧,我再装一次:
dan@ubuntu:~/discourse$ gem install mongo
Successfully installed mongo-2.10.2
Parsing documentation for mongo-2.10.2
Done installing documentation for mongo after 4 seconds
1 gem installed
再次运行导入脚本,结果相同。是否需要在系统级别安装呢?
dan@ubuntu:~/discourse$ sudo apt install ruby-mongo
[sudo] password for dan:
Reading package lists... Done
Building dependency tree
Reading state information... Done
ruby-mongo is already the newest version (2.5.1-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.