nodebb-plugin-import-punbb

0.0.1 • Public • Published

nodebb-plugin-import-punbb

a PUNBB forum exporter to import-ready files.

based on nodebb-plugin-import-ubb into this plugin to work along with nodebb-plugin-import.

works, but still young

What is this?

It's just an exporter of PUNBB, into files that nodebb-plugin-import can understand and import to NodeBB's database. So, it's not really a conventional nodebb-plugin, and you have to run it from the command line.

Why is it even a NodeBB plugin?

it doesn't really need to be, nor that you can use it within NodeBB it self, but, having this as a plugin have few benefits:

  • a nodebb- namespace, since you can't really use it for anything else
  • it can easily require NodeBB useful tools, currently, it uses its util.js for example.
  • potentially, in the future, this plugin, nodebb-plugin-import-punbb can interact with nodebb-plugin-import for a better UX

Usage

cd NodeBB
npm install nodebb-plugin-import-punbb
cd node_modules/nodebb-plugin-import-punbb/bin
node export.js --storage="$HOME/Desktop/storage" --config="../export.config.json" --log="debug,info,warn" --flush

What does it export?

read carefully:

  • ####Users:

    • _username YES.
    • _alternativeUsername YES. using 'realname', which nodebb-plugin-import will try to use if the username validation fails
    • _password NO. PUNBB uses MD5, NodeBB uses base64 I think, so can't do, but if you use nodebb-plugin-import it will generate random passwords and hand them to you so can email them.
    • _level (administrator and moderator) NO, but doable check the structure of PUNBB
    • _joindate YES, using 'registered'
    • _website YES. using 'url' if URL looks valid, it is exported, but it's not checked if 404s
    • _picture NO.
    • _reputation NO.
    • _profileviews NO.
    • _location YES. migrated as is, clear text
    • _signature YES. migrated as is (HTML -- read the Markdown note below)
    • _banned NO.
  • ####Categories:

    • _name YES
    • _description YES
  • ####Topics:

    • _cid (or its PUNBB category aka Forum id) YES (but if its parent Category is skipped, this topic gets skipped)
    • _uid (or its PUNBB user id) YES (but if its user is skipped, this topic gets skipped)
    • _title YES
    • _content (or the 'parent-post` content of this topic) YES (HTML - read the Markdown Note below)
    • _timestamp YES
    • _pinned NO
    • _viewcount YES
  • ####Posts:

    • _pid (or its PUNBB post id)
    • _tid (or its PUNBB parent topic id) YES (but if its parent topic is skipped, this post gets skipped)
    • _uid (or its PUNBB user id) YES (but if its user is skipped, this post is skipped)
    • _content YES (HTML - read the Markdown Note below)
    • _timestamp YES

I exported, now what?

now use this nodebb-plugin-import to import your files into NodeBB's database

Versions tested on:

  • PUNBB > 1.3.2

You configs are required

But you can override the log, storageDir and clearStorage ones with flags when using bin/export.js

{
    "log": "debug",
    "storageDir": "../storage",

    "clearStorage": false,

    "db": {
        "host": "localhost",
        "user": "punbb_user",
        "password": "password",
        "database": "punbb_test"
    },
    "tablePrefix": "punbb_"

}

Markdown note

read nodebb-plugin-import#markdown-note

It's an exporter, why does it have 'import' in its title

To keep the namespacing accurate, this exporter is designed to export data for nodebb-plugin-import only, also for a 1 time use, so why do you care.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.1
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.0.1
    1

Package Sidebar

Install

npm i nodebb-plugin-import-punbb

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • patricksebastien