forked from dancwilliams/wordpress_to_staticman_comments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
wordpress_to_staticman.py
78 lines (73 loc) · 2.55 KB
/
wordpress_to_staticman.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import xmltodict
import time
import hashlib
import sys
import os
import traceback
from pprint import pprint
import yaml
if not os.path.exists(os.path.join(os.getcwd(), 'big_data.xml')):
sys.exit("Please put the big_data.xml file in this folder")
total_count = 0
with open('big_data.xml') as fd:
cfg = xmltodict.parse(fd.read())
for item in cfg['rss']['channel']['item']:
foldername = '-'.join(item['link'].split('.com/')[1].split('/'))[:-1]
try:
if item.get('wp:comment') == None:
continue
for comment in item['wp:comment']:
if comment['wp:comment_approved'] != '1' or comment['wp:comment_type'] == 'pingback':
continue
total_count += 1
data_dict = {}
folderpath = os.path.join(os.getcwd(), 'comments', foldername)
total_count += 1
if not os.path.exists(folderpath):
try:
os.mkdir(folderpath)
except Exception as e:
print("Error occured")
sys.exit()
try:
date_time = comment['wp:comment_date_gmt']
pattern = '%Y-%m-%d %H:%M:%S'
epoch = int(time.mktime(time.strptime(date_time, pattern)))
comment_file = "comment-" + str(epoch) + ".yml"
except:
continue
try:
data_dict['_id'] = comment['wp:comment_id']
except:
pass
try:
data_dict['name'] = comment['wp:comment_author']
except:
pass
try:
if comment['wp:comment_parent'] != '0':
data_dict['reply_to'] = comment['wp:comment_parent']
except:
pass
try:
temp_email = comment['wp:comment_author_email']
temp_email = temp_email.strip()
temp_email = temp_email.lower()
data_dict['email'] = hashlib.md5(temp_email).hexdigest()
except:
pass
try:
data_dict['comment'] = comment['wp:comment_content']
except:
pass
try:
data_dict['date'] = comment['wp:comment_date_gmt']
except:
pass
pprint(data_dict)
with open(os.path.join(folderpath, comment_file), "w") as f:
yaml.dump(data_dict, f)
except Exception as e:
traceback.print_exc()
pass
print("Total Count: " + str(total_count))