def get_result_list(query_str): query_str = shared.format_query_str(query_str) query = get_query_object(query_str) results = [] if not query: return results prefs = shared.get_prefs() bible = shared.get_bible_data(prefs['language']) chapters = shared.get_chapter_data() matching_books = get_matching_books(bible['books'], query) if 'chapter' not in query: query['chapter'] = 1 chosen_version = choose_best_version(prefs, bible, query) # Build result list from books matching the query for book in matching_books: # Skip result if given chapter exceeds number of chapters in book if query['chapter'] > chapters[book['id']]: continue # Result information results.append(get_result(book, query, chosen_version)) return results
def wrapper(*args, **kwargs): original_prefs = yvs.get_prefs() try: yvs.update_prefs(prefs) return fn(*args, **kwargs) finally: yvs.update_prefs(original_prefs)
def set_pref(key, value): prefs = shared.get_prefs() prefs[key] = value if key == 'language': bible = shared.get_bible_data(language=value) # Set version to default version of new language prefs['version'] = bible['default_version'] shared.update_prefs(prefs)
def get_version_result_list(query_str): prefs = shared.get_prefs() versions = shared.get_versions(prefs['language']) results = [] for version in versions: result = { 'arg': 'version:{}'.format(version['id']), 'title': version['name'] } if version['id'] == prefs['version']: result['subtitle'] = 'This is already your preferred version' result['valid'] = 'no' else: result['subtitle'] = 'Set this as your preferred version' if not query_str or result['title'].lower().startswith(query_str): results.append(result) return results
def get_language_result_list(query_str): prefs = shared.get_prefs() languages = shared.get_languages() results = [] for language in languages: result = { 'arg': 'language:{}'.format(language['id']), 'title': language['name'] } if language['id'] == prefs['language']: result['subtitle'] = 'This is already your preferred language' result['valid'] = 'no' else: result['subtitle'] = 'Set this as your preferred language' if not query_str or result['title'].lower().startswith(query_str): results.append(result) return results
def get_search_html(query_str): prefs = shared.get_prefs() url = 'https://www.bible.com/search/bible?q={}&version_id={}'.format( urllib.quote_plus(query_str.encode('utf-8')), prefs['version']) return shared.get_url_content(url)