Nonchalantly Performs Magic


    0.0.1 • Public • Published


    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


    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.


    npm i nodebb-plugin-import-punbb

    DownloadsWeekly Downloads






    Last publish


    • patricksebastien