From f91ee80046f68caaab4c99adbd120d9cdc071780 Mon Sep 17 00:00:00 2001 From: Shir Bar Lev Date: Wed, 17 Mar 2021 13:48:32 +0000 Subject: [PATCH 01/12] Added script to convert to Wordpress XML. --- src/convert_to_wp.py | 387 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100644 src/convert_to_wp.py diff --git a/src/convert_to_wp.py b/src/convert_to_wp.py new file mode 100644 index 0000000..d8a625a --- /dev/null +++ b/src/convert_to_wp.py @@ -0,0 +1,387 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This script converts Israblog html (complete) backup files to an XML file +# Originally written by Eliram (@eliramk) +# Updated for wordpress by Shir (@shirblc) + +import logging +import re +import os +import datetime +import json +from convert import ( + get_post_enum, + get_comment_enum, + sanitize_text, + get_backup_files + ) + +BACKUP_FOLDER = './isra' +TEMPLATE_FILE = 'template.html' +OUTPUT_FORMAT = 'xml' +OUTPUT_FILENAME = os.path.join(BACKUP_FOLDER, 'blog.' + OUTPUT_FORMAT) + +STATE_OUT = 1 +STATE_POST = 2 +STATE_COMMENT = 3 + +RE_COMMENT = '

(.*)' +RE_POST = '

' +RE_DATE = '>(\d\d?/\d\d?/\d{1,4} \d\d?:\d\d?:\d\d?)<' +RE_PAGE_END = ' + + + + + + + + + + + + + + + + + + + + + Blog + https://wordpress.com + + Wed, 17 Mar 2021 12:26:39 +0000 + + 1.2 + http://wordpress.com/ + https://wordpress.com + + 0 + + + http://wordpress.com/ + + http://s0.wp.com/i/buttonw-com.png + Blog + https://wordpress.com + \n""") + for post in parsed_data: + output_file.write(post.__repr__()) + output_file.write('\n\n\n') + + +def main(): + backup_files_list = get_backup_files(BACKUP_FOLDER) + parsed_data = parse_backup_files(backup_files_list) + save_parsed_data(parsed_data) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + main() From 2fb4a8cc92eb02e725057cccfa42b8896f5600d1 Mon Sep 17 00:00:00 2001 From: Shir Bar Lev Date: Wed, 17 Mar 2021 16:22:34 +0000 Subject: [PATCH 02/12] Adjusted convert.py method to enable WP conversion. --- src/convert.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/convert.py b/src/convert.py index 8f76307..550c3be 100644 --- a/src/convert.py +++ b/src/convert.py @@ -338,13 +338,13 @@ def parse_backup_files(backup_files_list): return parsed_data -def get_backup_files(): +def get_backup_files(backup_folder): """ Search folder for html backup files :return: A list of backup files :rtype: list """ - all_files = os.listdir(BACKUP_FOLDER) + all_files = os.listdir(backup_folder) logging.debug(all_files) file_list = [] @@ -386,7 +386,7 @@ def save_parsed_data(parsed_data): def main(): - backup_files_list = get_backup_files() + backup_files_list = get_backup_files(BACKUP_FOLDER) parsed_data = parse_backup_files(backup_files_list) save_parsed_data(parsed_data) From a9af88fb0af6b99a5c7b8ea0b169ed43695e946f Mon Sep 17 00:00:00 2001 From: Shir Bar Lev Date: Wed, 17 Mar 2021 16:23:57 +0000 Subject: [PATCH 03/12] Adjusted file reading to Python3. --- src/convert.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/convert.py b/src/convert.py index 550c3be..d9597a5 100644 --- a/src/convert.py +++ b/src/convert.py @@ -324,12 +324,8 @@ def parse_backup_files(backup_files_list): """ parsed_data = [] for filename in backup_files_list: - # with codecs.open(os.path.join(BACKUP_FOLDER, filename), encoding='cp1255') as backup_file: - # file_text = backup_file.readlines() - with open(os.path.join(BACKUP_FOLDER, filename)) as backup_file: + with open(os.path.join(BACKUP_FOLDER, filename), encoding='cp1255') as backup_file: file_text = backup_file.read() - file_text = file_text.decode("cp1255", errors='ignore') - file_text = file_text.encode('UTF-8', errors='ignore') parse_obj = ParseBackupFile(file_text.splitlines()) new_data = parse_obj.process() parsed_data += new_data From bd45db3615aaa84d56fb8e61fbb041c9c7f3fb50 Mon Sep 17 00:00:00 2001 From: Shir Bar Lev Date: Wed, 17 Mar 2021 16:26:24 +0000 Subject: [PATCH 04/12] Fixed an issue that caused all posts to be merged into one. --- src/convert.py | 6 +++++- src/convert_to_wp.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/convert.py b/src/convert.py index d9597a5..259a05a 100644 --- a/src/convert.py +++ b/src/convert.py @@ -18,6 +18,7 @@ RE_COMMENT = '

(.*)' RE_POST = '

' +RE_BREAKER_AND_POST = '

' RE_DATE = '>(\d\d?/\d\d?/\d{1,4} \d\d?:\d\d?:\d\d?)<' RE_PAGE_END = '