fnp
/
librarian.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
deb4aee
)
[epub, mobi] Fix for a problem with epubs, mobi in drama ebooks without acts
author
Robert Błaut
<listy@blaut.biz>
Wed, 29 Jan 2014 10:13:50 +0000
(11:13 +0100)
committer
Robert Błaut
<listy@blaut.biz>
Wed, 29 Jan 2014 10:13:50 +0000
(11:13 +0100)
librarian/epub.py
patch
|
blob
|
history
diff --git
a/librarian/epub.py
b/librarian/epub.py
index
2f7bbec
..
4855de8
100644
(file)
--- a/
librarian/epub.py
+++ b/
librarian/epub.py
@@
-291,18
+291,47
@@
def chop(main_text):
main_xml_part = part_xml[0] # master
last_node_part = False
main_xml_part = part_xml[0] # master
last_node_part = False
+
+ # the below loops are workaround for a problem with epubs in drama ebooks without acts
+ is_scene = False
+ for one_part in main_text:
+ name = one_part.tag
+ if name in ('naglowek_scena'):
+ is_scene = True
+ break
+ if is_scene is True:
+ is_scene_with_acts = False
+ for one_part in main_text:
+ if one_part.tag == 'naglowek_akt':
+ is_scene_with_acts = True
+ break
+ else:
+ is_scene_with_acts = False
+
for one_part in main_text:
name = one_part.tag
for one_part in main_text:
name = one_part.tag
- if name == 'naglowek_czesc':
- yield part_xml
- last_node_part = True
- main_xml_part[:] = [deepcopy(one_part)]
- elif not last_node_part and name in ("naglowek_rozdzial", "naglowek_akt", "srodtytul"):
- yield part_xml
- main_xml_part[:] = [deepcopy(one_part)]
+ if is_scene_with_acts is False and is_scene is True:
+ if name == 'naglowek_czesc':
+ yield part_xml
+ last_node_part = True
+ main_xml_part[:] = [deepcopy(one_part)]
+ elif not last_node_part and name in ("naglowek_scena"):
+ yield part_xml
+ main_xml_part[:] = [deepcopy(one_part)]
+ else:
+ main_xml_part.append(deepcopy(one_part))
+ last_node_part = False
else:
else:
- main_xml_part.append(deepcopy(one_part))
- last_node_part = False
+ if name == 'naglowek_czesc':
+ yield part_xml
+ last_node_part = True
+ main_xml_part[:] = [deepcopy(one_part)]
+ elif not last_node_part and name in ("naglowek_rozdzial", "naglowek_akt", "srodtytul"):
+ yield part_xml
+ main_xml_part[:] = [deepcopy(one_part)]
+ else:
+ main_xml_part.append(deepcopy(one_part))
+ last_node_part = False
yield part_xml
yield part_xml