summaryrefslogtreecommitdiff
path: root/plugin.video.btsportvideo/addon.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.video.btsportvideo/addon.py')
-rw-r--r--plugin.video.btsportvideo/addon.py43
1 files changed, 34 insertions, 9 deletions
diff --git a/plugin.video.btsportvideo/addon.py b/plugin.video.btsportvideo/addon.py
index d671ea6..ac0db52 100644
--- a/plugin.video.btsportvideo/addon.py
+++ b/plugin.video.btsportvideo/addon.py
@@ -26,10 +26,11 @@
import traceback
# Workaround for 'Failed to import _strptime because the import lock is held by another thread.'
+from datetime import datetime
+import operator
import _strptime # pylint: disable=unused-import
from kodiswift import Plugin
-import rollbar.kodi
from resources.lib import api
@@ -40,9 +41,9 @@ plugin = Plugin(addon_id='plugin.video.btsportvideo')
def categories():
- yield {'label': '[B]{}[/B]'.format(plugin.get_string(30002)),
+ yield {'label': u'[B]{}[/B]'.format(plugin.get_string(30002)),
'path': plugin.url_for('search')}
- yield {'label': '[B]{}[/B]'.format(plugin.get_string(30001)),
+ yield {'label': u'[B]{}[/B]'.format(plugin.get_string(30001)),
'path': plugin.url_for('show_videos_by_category_first_page', category='all')}
for category in api.categories():
yield {'label': category,
@@ -85,6 +86,16 @@ def show_videos(func, route, page, update_listing, **kwargs):
)
+def previous_search_items():
+ for search_term, _timestamp in sorted(plugin.get_storage('searches').items(),
+ key=operator.itemgetter(1),
+ reverse=True):
+ yield {
+ 'label': search_term,
+ 'path': plugin.url_for('show_search_results_first_page', term=search_term)
+ }
+
+
@plugin.cached_route('/')
def index():
return list(categories())
@@ -98,30 +109,44 @@ def show_videos_by_category(category, page='1', update_listing=True):
update_listing, category=category)
-@plugin.route('/search/<term>', name='show_search_results_first_page',
+@plugin.route('/search/term/<term>', name='show_search_results_first_page',
options={'update_listing': False})
-@plugin.route('/search/<term>/<page>')
+@plugin.route('/search/term/<term>/<page>')
def show_search_results(term, page='1', update_listing=True):
+ plugin.get_storage('searches')[term] = datetime.now()
return show_videos(api.search_results, 'show_search_results', int(page),
update_listing, term=term)
-@plugin.route('/search')
-def search():
+@plugin.route('/search/input')
+def new_search():
term = plugin.keyboard(heading=plugin.get_string(30002))
if term:
url = plugin.url_for('show_search_results_first_page', term=term)
- plugin.redirect(url)
+ plugin.request.url = url
+ return plugin.redirect(url)
+ return plugin.redirect(plugin.url_for('search'))
+
+
+@plugin.route('/search')
+def search():
+ yield {
+ 'label': u'[B]{}[/B]'.format(plugin.get_string(30005)),
+ 'path': plugin.url_for('new_search')
+ }
+ for item in previous_search_items():
+ yield item
if __name__ == '__main__':
+ import rollbar.kodi
try:
plugin.run()
except Exception as exc:
+ plugin.log.error(traceback.format_exc())
if rollbar.kodi.error_report_requested(exc):
rollbar.kodi.report_error(
access_token='cc56a52c62c5418ebc87f97b1aa44669',
version=plugin.addon.getAddonInfo('version'),
url=plugin.request.url
)
- plugin.log.error(traceback.format_exc())