mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-03 19:17:02 -05:00 
			
		
		
		
	...
This commit is contained in:
		
						commit
						08f6719019
					
				@ -255,12 +255,22 @@ def _set_title(title_info, mi):
 | 
				
			|||||||
        title = _get_or_create(title_info, 'book-title')
 | 
					        title = _get_or_create(title_info, 'book-title')
 | 
				
			||||||
        title.text = mi.title
 | 
					        title.text = mi.title
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _text2fb2(parent, text):
 | 
				
			||||||
 | 
					    lines = text.split('\n')
 | 
				
			||||||
 | 
					    for line in lines:
 | 
				
			||||||
 | 
					        line = line.strip()
 | 
				
			||||||
 | 
					        if line:
 | 
				
			||||||
 | 
					            p = _create_tag(parent, 'p', at_start=False)
 | 
				
			||||||
 | 
					            p.text = line
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            _create_tag(parent, 'empty-line', at_start=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _set_comments(title_info, mi):
 | 
					def _set_comments(title_info, mi):
 | 
				
			||||||
    if not mi.is_null('comments'):
 | 
					    if not mi.is_null('comments'):
 | 
				
			||||||
        from calibre.utils.html2text import html2text
 | 
					        from calibre.utils.html2text import html2text
 | 
				
			||||||
        _clear_meta_tags(title_info, 'annotation')
 | 
					        _clear_meta_tags(title_info, 'annotation')
 | 
				
			||||||
        title = _get_or_create(title_info, 'annotation')
 | 
					        title = _get_or_create(title_info, 'annotation')
 | 
				
			||||||
        title.text = html2text(mi.comments)
 | 
					        _text2fb2(title, html2text(mi.comments))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _set_authors(title_info, mi):
 | 
					def _set_authors(title_info, mi):
 | 
				
			||||||
@ -269,26 +279,24 @@ def _set_authors(title_info, mi):
 | 
				
			|||||||
        for author in mi.authors:
 | 
					        for author in mi.authors:
 | 
				
			||||||
            author_parts = author.split()
 | 
					            author_parts = author.split()
 | 
				
			||||||
            if not author_parts: continue
 | 
					            if not author_parts: continue
 | 
				
			||||||
            atag = title_info.makeelement(FB2('author'))
 | 
					            atag = _create_tag(title_info, 'author')
 | 
				
			||||||
            title_info.insert(0, atag)
 | 
					 | 
				
			||||||
            if len(author_parts) == 1:
 | 
					            if len(author_parts) == 1:
 | 
				
			||||||
                _get_or_create(atag, 'nickname').text = author
 | 
					                _create_tag(atag, 'nickname').text = author
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                _get_or_create(atag, 'first-name').text = author_parts[0]
 | 
					                _create_tag(atag, 'first-name').text = author_parts[0]
 | 
				
			||||||
                author_parts = author_parts[1:]
 | 
					                author_parts = author_parts[1:]
 | 
				
			||||||
                if len(author_parts) > 1:
 | 
					                if len(author_parts) > 1:
 | 
				
			||||||
                    _get_or_create(atag, 'middle-name', at_start=False).text = author_parts[0]
 | 
					                    _create_tag(atag, 'middle-name', at_start=False).text = author_parts[0]
 | 
				
			||||||
                    author_parts = author_parts[1:]
 | 
					                    author_parts = author_parts[1:]
 | 
				
			||||||
                if author_parts:
 | 
					                if author_parts:
 | 
				
			||||||
                    _get_or_create(atag, 'last-name', at_start=False).text = ' '.join(author_parts)
 | 
					                    _create_tag(atag, 'last-name', at_start=False).text = ' '.join(author_parts)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _set_tags(title_info, mi):
 | 
					def _set_tags(title_info, mi):
 | 
				
			||||||
    if not mi.is_null('tags'):
 | 
					    if not mi.is_null('tags'):
 | 
				
			||||||
        _clear_meta_tags(title_info, 'genre')
 | 
					        _clear_meta_tags(title_info, 'genre')
 | 
				
			||||||
        for t in mi.tags:
 | 
					        for t in mi.tags:
 | 
				
			||||||
            tag = title_info.makeelement(FB2('genre'))
 | 
					            tag = _create_tag(title_info, 'genre')
 | 
				
			||||||
            tag.text = t
 | 
					            tag.text = t
 | 
				
			||||||
            title_info.insert(0, tag)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _set_series(title_info, mi):
 | 
					def _set_series(title_info, mi):
 | 
				
			||||||
    if not mi.is_null('series'):
 | 
					    if not mi.is_null('series'):
 | 
				
			||||||
@ -300,11 +308,7 @@ def _set_series(title_info, mi):
 | 
				
			|||||||
        except:
 | 
					        except:
 | 
				
			||||||
            seq.set('number', '1')
 | 
					            seq.set('number', '1')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _get_or_create(parent, tag, at_start=True):
 | 
					def _create_tag(parent, tag, at_start=True):
 | 
				
			||||||
    ans = XPath('./fb2:'+tag)(parent)
 | 
					 | 
				
			||||||
    if ans:
 | 
					 | 
				
			||||||
        ans = ans[0]
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
    ans = parent.makeelement(FB2(tag))
 | 
					    ans = parent.makeelement(FB2(tag))
 | 
				
			||||||
    if at_start:
 | 
					    if at_start:
 | 
				
			||||||
        parent.insert(0, ans)
 | 
					        parent.insert(0, ans)
 | 
				
			||||||
@ -312,6 +316,14 @@ def _get_or_create(parent, tag, at_start=True):
 | 
				
			|||||||
        parent.append(ans)
 | 
					        parent.append(ans)
 | 
				
			||||||
    return ans
 | 
					    return ans
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _get_or_create(parent, tag, at_start=True):
 | 
				
			||||||
 | 
					    ans = XPath('./fb2:'+tag)(parent)
 | 
				
			||||||
 | 
					    if ans:
 | 
				
			||||||
 | 
					        ans = ans[0]
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        ans = _create_tag(parent, tag, at_start)
 | 
				
			||||||
 | 
					    return ans
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def set_metadata(stream, mi, apply_null=False, update_timestamp=False):
 | 
					def set_metadata(stream, mi, apply_null=False, update_timestamp=False):
 | 
				
			||||||
    stream.seek(0)
 | 
					    stream.seek(0)
 | 
				
			||||||
    root = _get_fbroot(stream)
 | 
					    root = _get_fbroot(stream)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user