Merge pull request #4 from Kyosfonica/epub_tags_metadata

Added tags metadata handler for epubs
This commit is contained in:
Carlos Clavero 2017-07-31 08:54:38 +02:00 committed by GitHub
commit dde3b9b0e7
2 changed files with 11 additions and 3 deletions

View File

@ -43,13 +43,16 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
epub_metadata = {} epub_metadata = {}
for s in ['title', 'description', 'creator', 'language']: for s in ['title', 'description', 'creator', 'language', 'subject']:
tmp = p.xpath('dc:%s/text()' % s, namespaces=ns) tmp = p.xpath('dc:%s/text()' % s, namespaces=ns)
if len(tmp) > 0: if len(tmp) > 0:
epub_metadata[s] = p.xpath('dc:%s/text()' % s, namespaces=ns)[0] epub_metadata[s] = p.xpath('dc:%s/text()' % s, namespaces=ns)[0]
else: else:
epub_metadata[s] = "Unknown" epub_metadata[s] = "Unknown"
if epub_metadata['subject'] == "Unknown":
epub_metadata['subject'] = ''
if epub_metadata['description'] == "Unknown": if epub_metadata['description'] == "Unknown":
description = tree.xpath("//*[local-name() = 'description']/text()") description = tree.xpath("//*[local-name() = 'description']/text()")
if len(description) > 0: if len(description) > 0:
@ -101,7 +104,7 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
author=epub_metadata['creator'].encode('utf-8').decode('utf-8'), author=epub_metadata['creator'].encode('utf-8').decode('utf-8'),
cover=coverfile, cover=coverfile,
description=epub_metadata['description'], description=epub_metadata['description'],
tags="", tags=epub_metadata['subject'].encode('utf-8').decode('utf-8'),
series="", series="",
series_id="", series_id="",
languages=epub_metadata['language']) languages=epub_metadata['language'])

View File

@ -2928,7 +2928,7 @@ def upload():
title = meta.title title = meta.title
author = meta.author author = meta.author
tags = meta.tags
title_dir = helper.get_valid_filename(title, False) title_dir = helper.get_valid_filename(title, False)
author_dir = helper.get_valid_filename(author, False) author_dir = helper.get_valid_filename(author, False)
data_name = title_dir data_name = title_dir
@ -2995,6 +2995,11 @@ def upload():
if upload_comment != "": if upload_comment != "":
db.session.add(db.Comments(upload_comment, db_book.id)) db.session.add(db.Comments(upload_comment, db_book.id))
db.session.commit() db.session.commit()
input_tags = tags.split(',')
input_tags = map(lambda it: it.strip(), input_tags)
modify_database_object(input_tags, db_book.tags, db.Tags, db.session, 'tags')
if db_language is not None: # display Full name instead of iso639.part3 if db_language is not None: # display Full name instead of iso639.part3
db_book.languages[0].language_name = _(meta.languages) db_book.languages[0].language_name = _(meta.languages)
author_names = [] author_names = []