* File.exists? is deprecated and removed in Ruby 3.2 in favor of
File.exist?
* Dir.exists? is deprecated and removed in Ruby 3.2 in favor of
Dir.exist?
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.
Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
FEATURE: Adds a link to the Howto on meta
FIX: Suppresses multiple warnings about invalid votes for the same topic
FIX: Adds missing table prefixes
FIX: Removes duplicate column from query
- Extensive refactoring of the existing importer
- Configuration of import with settings.yml instead of editing code
- Supports importing from phpBB 3.0.x and 3.1.x
- Imports all attachments (not just the ones embedded with [attachment])
from posts and private messages
- Imports all existing attachments without the need to configure allowed
file extensions or file sizes
- Imports polls
- Imports bookmarks
- Imports sticky topics and (global) announcements as pinned topics
- Imports categories in the original order and sets the content of the
category description topic
- Sets the creation date of category description topics to the creation
date of the first topic in each category
- Imports additional user attributes: last seen date, registration
IP address, website, date of birth, location
- Optionally set the user's name to its username
- Users that didn't activate their account in phpBB3 are imported as
inactive users
- All imported, active users are automatically approved
- Users that were deactivated in phpBB3 get suspended for 200 years
during the import
- Anonymous user can be imported as suspended users instead of the
system user
- Forums of type "link" are not imported as categories anymore
- Internal links to posts get rewritten during the import (previously
only links to topics got rewritten)
- Ordered lists with BBCode [list=a] (which are unsupported in
Discourse) get imported as if they would be [list=1]
- Importing of avatars, attachments, private messages, polls and
bookmarks can be disabled via configuration file
- Optional fixing of private messages for forums that have been upgraded
from phpBB2 prevents the import of duplicate messages and tries to
group related messages into topics
- Table prefix (default: phpbb) is configurable
- Most of phpBB's default smilies are mapped to Emojis and all other
smilies get uploaded and embedded as images. Smiley mappings can be
added or overridden in the settings.yml file.
This changes the content of `@categories_lookup` from `Category` objects
to IDs since the category names aren't needed anymore. The lookup
method has been renamed too.
bbcode-to-md happily ignores all phpBB's lists. The list syntax is
[list][*]item 1
[*]item 2
[/list]
and
[list=1][*]item 1
[*]item 2
[/list]
respectively for [ul] and [ol]s. Luckily, phpBB adds closing tags for [*] items. My workaround simply converts phpBBs lists into bbcode using [ul] and [ol] which then can be converted by the standard bbcode-to-md code.
FIX: history revision can now properly be hidden
FIX: PostRevision serializer is now entirely dynamic to properly handle
hidden revisions
FIX: default history modal to "side by side" view on mobile
FIX: properly hiden which revision has been hidden
UX: inline category/user/wiki/post_type changes with the revision
details
FEATURE: new '/posts/:post_id/revisions/latest' endpoint to retrieve
latest revision
UX: do not show the hide/show revision button on mobile (no room for
them)
UX: remove CSS transitions on the buttons in the history modal
FIX: PostRevisor now handles all the changes that might create new
revisions
FIX: PostRevision.ensure_consistency! was wrong due to off by 1
mistake...
refactored topic's callbacks for better readability
extracted 'PostRevisionGuardian'
This code adds all three avatar types to the import. Uploaded avatars and default gallery avatars are converted, hotlinked are pulled from the remote web site and stored as local. Beware, though: this is currently done during the importer run and can consume loong periods of time if many downloads fail with timeouts.
A minor fix concerns attachments to posts with white space in the real_name, this is handled properly now.