if $3 && $4
if topic_lookup = topic_lookup_from_imported_post_id(post_id)
post_number = topic_lookup[:post_number]
topic_id = topic_lookup[:topic_id]
"\n[quote=\"#{new_username},post:#{post_number},topic:#{topic_id}\"]\n"
else
"\n[quote=\"#{new_username}\"]\n"
end
elsif $5
"\n[/quote]\n"
end
此外,我还更改了 spoiler 的代码。以前:
# [spoiler=Some hidden stuff]SPOILER HERE!![/spoiler]
raw.gsub!(%r{\\[spoiler=\"?(.+?)\"?\\](.+?)\\[/spoiler\\]}im) do
"\n#{$1}\n[spoiler]#{$2}[/spoiler]\n"
end
这会模糊文本,我将其转换为 details 标签:
raw.gsub!(%r{(\\[spoiler(=\"?(.*?)\"?)?\\])|(\\[\\/spoiler\\])}im) do
if $3
"\n[details=#{$3}]\n"
elsif $1
"\n[details]\n"
elsif $4
"\n[/details]\n"
end
end
# [MENTION]<username>[/MENTION]
raw.gsub!(%r{\\[mention\\](.+?)\\[/mention\\]}i) do
new_username = get_username_for_old_username($1)
"@#{new_username}"
end
我也以自己的方式修复了这个问题:
# [MENTION]<username>[/MENTION]
raw.gsub!(%r{\\[mention(=\\d+)?\\](.+?)\\[/mention\\]}i) do
new_username = get_username_for_old_username($2)
"@#{new_username}"
end
importing users
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/lib/tzinfo/timestamp.rb:138:in `for': Integer values are not supported (ArgumentError)
raise ArgumentError, "#{value.class} values are not supported" unless is_time_like?(value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/lib/tzinfo/timezone.rb:575:in `utc_to_local'
from script/import_scripts/vbulletin.rb:1019:in `parse_timestamp'
from script/import_scripts/vbulletin.rb:166:in `block (2 levels) in import_users'
from /var/www/discourse/script/import_scripts/base.rb:267:in `block in create_users'
from /var/www/discourse/script/import_scripts/base.rb:266:in `each'
from /var/www/discourse/script/import_scripts/base.rb:266:in `create_users'
from script/import_scripts/vbulletin.rb:148:in `block in import_users'
from /var/www/discourse/script/import_scripts/base.rb:951:in `block in batches'
from <internal:kernel>:187:in `loop'
from /var/www/discourse/script/import_scripts/base.rb:950:in `batches'
from script/import_scripts/vbulletin.rb:126:in `import_users'
from script/import_scripts/vbulletin.rb:82:in `execute'
from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'
from script/import_scripts/vbulletin.rb:1027:in `<main>'
脚本中的默认值是“America/Los Angeles”——vBulletin 论坛设置为(GMT)西欧时间,伦敦,里斯本,卡萨布兰卡),而我正在导入的 discourse 实例有两个条目:America/Los Angeles 和 Europe/Paris。