astrXbian/.install/.kodi/addons/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/search_history.py

56 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
"""
Copyright (C) 2014-2016 bromix (plugin.video.youtube)
Copyright (C) 2016-2019 plugin.video.youtube
SPDX-License-Identifier: GPL-2.0-only
See LICENSES/GPL-2.0-only for more information.
"""
import hashlib
from .storage import Storage
from .methods import to_utf8
class SearchHistory(Storage):
def __init__(self, filename, max_items=10):
Storage.__init__(self, filename, max_item_count=max_items)
def is_empty(self):
return self._is_empty()
def list(self):
result = []
keys = self._get_ids(oldest_first=False)
for i, key in enumerate(keys):
if i >= self._max_item_count:
break
item = self._get(key)
if item:
result.append(item[0])
return result
def clear(self):
self._clear()
@staticmethod
def _make_id(search_text):
m = hashlib.md5()
m.update(to_utf8(search_text))
return m.hexdigest()
def rename(self, old_search_text, new_search_text):
self.remove(old_search_text)
self.update(new_search_text)
def remove(self, search_text):
self._remove(self._make_id(search_text))
def update(self, search_text):
self._set(self._make_id(search_text), search_text)