|
|
|
@ -6,6 +6,7 @@ from itertools import groupby
|
|
|
|
|
from django.conf import settings
|
|
|
|
|
from django.utils.timezone import make_aware, now
|
|
|
|
|
|
|
|
|
|
import phpserialize
|
|
|
|
|
import request
|
|
|
|
|
from bs4 import BeautifulSoup as bs
|
|
|
|
|
|
|
|
|
@ -203,3 +204,50 @@ def convert_node(node, options):
|
|
|
|
|
spip.MotsLiens.objects.get_or_create(
|
|
|
|
|
mot=mot, id_objet=article.pk, objet='article'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
for numero, revision in enumerate(
|
|
|
|
|
node.noderevisions_set.order_by('timestamp'), start=1
|
|
|
|
|
):
|
|
|
|
|
user_attributes = {
|
|
|
|
|
'nom': revision.user.name,
|
|
|
|
|
'email': revision.user.mail,
|
|
|
|
|
'en_ligne': convert_timestamp(revision.user.access),
|
|
|
|
|
'maj': convert_timestamp(revision.user.created),
|
|
|
|
|
}
|
|
|
|
|
auteur, _ = spip.Auteurs.objects.update_or_create(
|
|
|
|
|
login=revision.user.name, defaults=user_attributes
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if numero == 1:
|
|
|
|
|
fragment = phpserialize.dumps({1: revision.body}).decode()
|
|
|
|
|
else:
|
|
|
|
|
fragment = phpserialize.dumps(
|
|
|
|
|
{1: previous.body, 2: revision.body}
|
|
|
|
|
).decode()
|
|
|
|
|
# fragment = phpserialize.dumps({1: str(numero-1), 2: revision.body}).decode()
|
|
|
|
|
|
|
|
|
|
spip.VersionsFragments.objects.update_or_create(
|
|
|
|
|
id_fragment=numero,
|
|
|
|
|
id_objet=article.pk,
|
|
|
|
|
objet='article',
|
|
|
|
|
version_min_id=numero,
|
|
|
|
|
defaults={'fragment': fragment, 'version_max_id': numero,},
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
champs_versionnes = {'texte': numero}
|
|
|
|
|
|
|
|
|
|
version, _ = spip.Versions.objects.update_or_create(
|
|
|
|
|
id_version=numero,
|
|
|
|
|
id_objet=article.pk,
|
|
|
|
|
objet='article',
|
|
|
|
|
defaults={
|
|
|
|
|
'auteur': auteur,
|
|
|
|
|
'titre_version': 'Version initiale'
|
|
|
|
|
if numero == 1 and not revision.log
|
|
|
|
|
else revision.log,
|
|
|
|
|
'date': convert_timestamp(revision.timestamp),
|
|
|
|
|
'permanent': '' if numero == 1 else 'non',
|
|
|
|
|
'champs': phpserialize.dumps(champs_versionnes).decode(),
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
previous = revision
|
|
|
|
|