supermemo-like program for item memorising
Revision | ae251ecbb0c50c62bc1e55e7ef1968e42c71f56c (tree) |
---|---|
Time | 2014-06-10 04:43:28 |
Author | PJ |
Commiter | PJ |
scripts: sort + unlearn
@@ -283,7 +283,7 @@ | ||
283 | 283 | string out(text.substr(split)); |
284 | 284 | out += text.substr(0, split); |
285 | 285 | if (noEOL) { |
286 | - unsigned last = out.size() - 1; | |
286 | + unsigned last = (unsigned)out.size() - 1; | |
287 | 287 | if (out[last] == '\n') |
288 | 288 | out.erase(last); |
289 | 289 | } |
@@ -0,0 +1,43 @@ | ||
1 | +#!/usr/bin/python | |
2 | + | |
3 | +import sys | |
4 | +import xml.etree.ElementTree as ET | |
5 | + | |
6 | +def elem_brief(elem): | |
7 | + print elem.tag, elem.attrib | |
8 | + for e in list(elem): | |
9 | + print '>', e.tag, e.attrib | |
10 | + | |
11 | +def elem_text(elem): | |
12 | + print elem.tag, elem.attrib | |
13 | + print 'I:', repr(elem.text) | |
14 | + print 'T:', repr(elem.tail) | |
15 | + | |
16 | +parser = ET.XMLParser() | |
17 | +#parser.entity['mdash'] = u'\u2014' | |
18 | + | |
19 | +tree = ET.parse(sys.argv[1], parser) | |
20 | +root = tree.getroot() | |
21 | +#elem_text(root) | |
22 | +assert(root.tag == 'base') | |
23 | + | |
24 | +#elem_brief(root) | |
25 | + | |
26 | +mv_list = [] | |
27 | +for e in root.findall('item'): | |
28 | + #elem_brief(e) | |
29 | + interv = e.find('interval') | |
30 | + #print e.tag, interv | |
31 | + if interv == None: | |
32 | + elem_brief(e) | |
33 | + mv_list.append(e) | |
34 | + root.remove(e) | |
35 | + | |
36 | +#place at the end | |
37 | +for e in mv_list: | |
38 | + root.append(e) | |
39 | + | |
40 | +#tree.write("out.html", encoding="utf-8") | |
41 | +tree.write("out.xml", encoding=None) | |
42 | + | |
43 | +#ET.dump(root) |
@@ -0,0 +1,35 @@ | ||
1 | +#!/usr/bin/python | |
2 | + | |
3 | +import sys | |
4 | +import xml.etree.ElementTree as ET | |
5 | + | |
6 | +def elem_brief(elem): | |
7 | + print elem.tag, elem.attrib | |
8 | + for e in list(elem): | |
9 | + print '>', e.tag, e.attrib | |
10 | + | |
11 | +def elem_text(elem): | |
12 | + print elem.tag, elem.attrib | |
13 | + print 'I:', repr(elem.text) | |
14 | + print 'T:', repr(elem.tail) | |
15 | + | |
16 | +parser = ET.XMLParser() | |
17 | + | |
18 | +tree = ET.parse(sys.argv[1], parser) | |
19 | +root = tree.getroot() | |
20 | +#elem_text(root) | |
21 | +#elem_brief(root) | |
22 | +assert(root.tag == 'base') | |
23 | + | |
24 | + | |
25 | +for e in root.findall('item'): | |
26 | + #elem_brief(e) | |
27 | + #ET.dump(e) | |
28 | + for tag in [ 'repetition', 'mistake', 'ef', 'last', 'grade', 'interval']: | |
29 | + ch = e.find(tag) | |
30 | + if ch != None: | |
31 | + e.remove(ch) | |
32 | + elem_brief(e) | |
33 | + | |
34 | +#tree.write("out.html", encoding="utf-8") | |
35 | +tree.write("out.xml", encoding=None) |