Activate generic importer + document usage
This commit is contained in:
parent
5d15728eb0
commit
c47f705907
@ -60,7 +60,8 @@ For more options, see :doc:`server <configuration/server>` and :doc:`client
|
|||||||
Migration
|
Migration
|
||||||
---------
|
---------
|
||||||
|
|
||||||
You can import comments from Disqus_ or WordPress_.
|
You can import comments from Disqus_ or WordPress_. You can also import comments
|
||||||
|
issued from any comment system but you have to stick a specific json format.
|
||||||
|
|
||||||
To export your comments from Disqus, log into Disqus, go to your website, click
|
To export your comments from Disqus, log into Disqus, go to your website, click
|
||||||
on *Discussions* and select the *Export* tab. You'll receive an email with your
|
on *Discussions* and select the *Export* tab. You'll receive an email with your
|
||||||
@ -70,11 +71,33 @@ To export comments from your previous WordPress installation, go to *Tools*,
|
|||||||
export your data. It has been reported that WordPress may generate broken XML.
|
export your data. It has been reported that WordPress may generate broken XML.
|
||||||
Try to repair the file using ``xmllint`` before you continue with the import.
|
Try to repair the file using ``xmllint`` before you continue with the import.
|
||||||
|
|
||||||
Now import the XML dump:
|
For any other comment system you can use the generic JSON format. It's up to you
|
||||||
|
to fit the format (see isso/tests/generic.json for an example):
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
A list of threads, each item being a dict with the following data:
|
||||||
|
|
||||||
|
- id: a text representing the unique thread id
|
||||||
|
- title: the title of the thread
|
||||||
|
- comments: the list of comments
|
||||||
|
|
||||||
|
Each item in that list of comments is a dict with the following data:
|
||||||
|
|
||||||
|
- id: an integer with the unique id of the comment inside the thread
|
||||||
|
(it can be repeated among different threads); this will be used to
|
||||||
|
order the comment inside the thread
|
||||||
|
- author: the author's name
|
||||||
|
- email: the author's email
|
||||||
|
- website: the author's website
|
||||||
|
- remote_addr: the author's IP
|
||||||
|
- created: a timestamp, in the format "%Y-%m-%d %H:%M:%S"
|
||||||
|
|
||||||
|
|
||||||
|
Now import the XML or JSON dump:
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
~> isso -c /path/to/isso.cfg import disqus-or-wordpress.xml
|
~> isso -c /path/to/isso.cfg import -t [disqus|wordpress|generic] disqus-or-wordpress-or-generic.[xml|json]
|
||||||
[100%] 53 threads, 192 comments
|
[100%] 53 threads, 192 comments
|
||||||
|
|
||||||
.. _Disqus: https://disqus.com/
|
.. _Disqus: https://disqus.com/
|
||||||
|
@ -225,7 +225,7 @@ def main():
|
|||||||
imprt.add_argument("-n", "--dry-run", dest="dryrun", action="store_true",
|
imprt.add_argument("-n", "--dry-run", dest="dryrun", action="store_true",
|
||||||
help="perform a trial run with no changes made")
|
help="perform a trial run with no changes made")
|
||||||
imprt.add_argument("-t", "--type", dest="type", default=None,
|
imprt.add_argument("-t", "--type", dest="type", default=None,
|
||||||
choices=["disqus", "wordpress"], help="export type")
|
choices=["disqus", "wordpress", "generic"], help="export type")
|
||||||
imprt.add_argument("--empty-id", dest="empty_id", action="store_true",
|
imprt.add_argument("--empty-id", dest="empty_id", action="store_true",
|
||||||
help="workaround for weird Disqus XML exports, #135")
|
help="workaround for weird Disqus XML exports, #135")
|
||||||
|
|
||||||
|
@ -269,9 +269,10 @@ class Generic(object):
|
|||||||
|
|
||||||
- id: an integer with the unique id of the comment inside the thread (it can be repeated
|
- id: an integer with the unique id of the comment inside the thread (it can be repeated
|
||||||
among different threads); this will be used to order the comment inside the thread
|
among different threads); this will be used to order the comment inside the thread
|
||||||
- author: the author name
|
- author: the author's name
|
||||||
- email: the author email
|
- email: the author's email
|
||||||
- website: the authot's website
|
- website: the author's website
|
||||||
|
- remote_addr: the author's IP
|
||||||
- created: a timestamp, in the format "%Y-%m-%d %H:%M:%S"
|
- created: a timestamp, in the format "%Y-%m-%d %H:%M:%S"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -351,6 +352,8 @@ def dispatch(type, db, dump, empty_id=False):
|
|||||||
cls = Disqus
|
cls = Disqus
|
||||||
elif type == "wordpress":
|
elif type == "wordpress":
|
||||||
cls = WordPress
|
cls = WordPress
|
||||||
|
elif type == "generic":
|
||||||
|
cls = Generic
|
||||||
else:
|
else:
|
||||||
with io.open(dump, encoding="utf-8") as fp:
|
with io.open(dump, encoding="utf-8") as fp:
|
||||||
cls = autodetect(fp.read(io.DEFAULT_BUFFER_SIZE))
|
cls = autodetect(fp.read(io.DEFAULT_BUFFER_SIZE))
|
||||||
|
Loading…
Reference in New Issue
Block a user