Switched out fuzzywuzzy for ulaunchers fuzzy search algorithm
This commit is contained in:
parent
50f31ec1c3
commit
61ba0db659
19
main.py
19
main.py
|
@ -4,7 +4,7 @@ sys.path.append("/home/zen/.local/lib/python2.7/site-packages/")
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import codecs
|
import codecs
|
||||||
from fuzzywuzzy import process
|
from ulauncher.search.SortedList import SortedList
|
||||||
|
|
||||||
from ulauncher.api.client.Extension import Extension
|
from ulauncher.api.client.Extension import Extension
|
||||||
from ulauncher.api.client.EventListener import EventListener
|
from ulauncher.api.client.EventListener import EventListener
|
||||||
|
@ -17,6 +17,13 @@ from ulauncher.api.shared.action.HideWindowAction import HideWindowAction
|
||||||
|
|
||||||
FILE_PATH = os.path.dirname(sys.argv[0])
|
FILE_PATH = os.path.dirname(sys.argv[0])
|
||||||
|
|
||||||
|
class SearchableItem:
|
||||||
|
def __init__(self, name, item):
|
||||||
|
self._name = name
|
||||||
|
self._item = item
|
||||||
|
|
||||||
|
def get_search_name(self):
|
||||||
|
return self._name
|
||||||
|
|
||||||
class UnicodeCharExtension(Extension):
|
class UnicodeCharExtension(Extension):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -26,17 +33,20 @@ class UnicodeCharExtension(Extension):
|
||||||
|
|
||||||
class KeywordQueryEventListener(EventListener):
|
class KeywordQueryEventListener(EventListener):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
print('======'*40)
|
||||||
f = open(os.path.dirname(sys.argv[0]) + "/unicode_list.txt", "r")
|
f = open(os.path.dirname(sys.argv[0]) + "/unicode_list.txt", "r")
|
||||||
data = f.readlines()
|
data = f.readlines()
|
||||||
self.data = {}
|
self.data = {}
|
||||||
# self.names = []
|
# self.names = []
|
||||||
self.items = []
|
self.items = []
|
||||||
|
self.items_ = []
|
||||||
# self.blocks = []
|
# self.blocks = []
|
||||||
for item in data:
|
for item in data:
|
||||||
item = item.strip()
|
item = item.strip()
|
||||||
name, code, block = item.split("\t")
|
name, code, block = item.split("\t")
|
||||||
self.data[name + " " + block] = (name, block, code)
|
self.data[name + " " + block] = (name, block, code)
|
||||||
self.items.append(name + " " + block)
|
self.items.append(name + " " + block)
|
||||||
|
self.items_.append(SearchableItem(name , (name, block, code)))
|
||||||
# self.names.append(name)
|
# self.names.append(name)
|
||||||
# self.blocks.append(block)
|
# self.blocks.append(block)
|
||||||
|
|
||||||
|
@ -44,10 +54,11 @@ class KeywordQueryEventListener(EventListener):
|
||||||
items = []
|
items = []
|
||||||
arg = event.get_argument()
|
arg = event.get_argument()
|
||||||
if arg:
|
if arg:
|
||||||
matches = process.extract(arg, self.items, limit=15)
|
|
||||||
|
|
||||||
for m in matches:
|
m_ = SortedList(arg, min_score=60, limit=10)
|
||||||
name, block, code = self.data[m[0]]
|
m_.extend(self.items_)
|
||||||
|
for m in m_:
|
||||||
|
name, block, code = m._item
|
||||||
image_path = self.create_icon_image(code)
|
image_path = self.create_icon_image(code)
|
||||||
items.append(
|
items.append(
|
||||||
ExtensionResultItem(
|
ExtensionResultItem(
|
||||||
|
|
Loading…
Reference in a new issue