Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@sugarlabs.org>2011-05-16 20:57:37 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-05-16 20:57:37 (GMT)
commit554b65af27d04808193ac95bcfbb2434062db62b (patch)
treeff7cd2f61f0c65204ff5f3c56e78cee1c0bbc791
parent27b266ef3446c0b72888867df3502a9966e662cd (diff)
Display summary of books bassed in configuration
Signed-off-by: Daniel Castelo <dcastelo@plan.ceibal.edu.uy> Acked-By: Gonzalo Odiard <gonzalo@laptop.org>
-rwxr-xr-xGetIABooksActivity.py26
-rw-r--r--get-books.cfg1
-rw-r--r--opds.py11
3 files changed, 37 insertions, 1 deletions
diff --git a/GetIABooksActivity.py b/GetIABooksActivity.py
index 34a496b..d5e0884 100755
--- a/GetIABooksActivity.py
+++ b/GetIABooksActivity.py
@@ -196,6 +196,10 @@ class GetIABooksActivity(activity.Activity):
repo_config = {}
repo_config['query_uri'] = config.get(section, 'query_uri')
repo_config['opds_cover'] = config.get(section, 'opds_cover')
+ if config.has_option(section, 'summary_field'):
+ repo_config['summary_field'] = config.get(section, 'summary_field')
+ else:
+ repo_config['summary_field'] = None
_SOURCES_CONFIG[section] = repo_config
logging.error('_SOURCES %s', _SOURCES)
@@ -514,6 +518,9 @@ class GetIABooksActivity(activity.Activity):
book_data += _('Author:\t\t') + self.selected_author + '\n\n'
self.selected_publisher = self.selected_book.get_publisher()
book_data += _('Publisher:\t') + self.selected_publisher + '\n\n'
+ self.selected_summary = self.selected_book.get_summary()
+ if (self.selected_summary is not 'Unknown'):
+ book_data += _('Summary:\t') + self.selected_summary + '\n\n'
self.selected_language_code = self.selected_book.get_language()
if self.selected_language_code != '':
try:
@@ -841,8 +848,10 @@ class GetIABooksActivity(activity.Activity):
journal_entry.metadata['cover_image'] = ""
journal_entry.metadata['tags'] = self.source
+ journal_entry.metadata['source'] = self.source
journal_entry.metadata['author'] = self.selected_author
journal_entry.metadata['publisher'] = self.selected_publisher
+ journal_entry.metadata['summary'] = self.selected_summary
journal_entry.metadata['language'] = self.selected_language_code
journal_entry.file_path = tempfile
@@ -975,7 +984,22 @@ class GetIABooksActivity(activity.Activity):
else:
entry['dcterms_language'] = ''
- books.append(opds.Book(None, entry, ''))
+ if 'source' in ds_objects[i].metadata:
+ entry['source'] = \
+ ds_objects[i].metadata['source']
+ else:
+ entry['source'] = ''
+
+ if entry['source'] in _SOURCES_CONFIG:
+ repo_configuration = _SOURCES_CONFIG[entry['source']]
+ summary_field = repo_configuration['summary_field']
+ if 'summary' in ds_objects[i].metadata:
+ entry[summary_field] = ds_objects[i].metadata['summary']
+ else:
+ entry[summary_field] = ''
+ else:
+ repo_configuration = None
+ books.append(opds.Book(repo_configuration, entry, ''))
return books
def close(self, skip_save=False):
diff --git a/get-books.cfg b/get-books.cfg
index ee36bd3..8309aa5 100644
--- a/get-books.cfg
+++ b/get-books.cfg
@@ -6,6 +6,7 @@ languages = en,es,fr,de
name = Feedbooks
query_uri = http://www.feedbooks.com/books/search.atom?query=
opds_cover = http://opds-spec.org/image
+summary_field = summary
[Catalogs_Feedbooks]
Science Fiction = http://www.feedbooks.com/books/top.atom?category=FBFIC028000&range=week
diff --git a/opds.py b/opds.py
index c40f896..29f829a 100644
--- a/opds.py
+++ b/opds.py
@@ -172,6 +172,17 @@ class Book(object):
ret = 'Unknown'
return ret
+ def get_summary(self):
+
+ if self._configuration is not None and 'summary_field' in self._configuration:
+ try:
+ ret = self._entry[self._configuration['summary_field']]
+ except KeyError:
+ ret = 'Unknown'
+ else:
+ ret = 'Unknown'
+ return ret
+
def get_object_id(self):
try:
ret = self._entry['object_id']