Ignore:
Timestamp:
Feb 20, 2017, 2:49:53 PM (4 years ago)
Author:
Juanma
Message:

WIP on zmdManager

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/searchManager.py

    r3656 r3678  
    7070                        applist.append(app)
    7171                        self._debug("App direct match found: "+app.get_id())
    72                 else:
    73                         for app in self._get_apps_by_match(tokens):
    74                                 applist.append(app)
    75                 self.result['data']=applist
     72#               else:
     73#               for app in self._get_apps_by_match(tokens):
     74#                       applist.append(app)
     75                applist=self._get_apps_by_match(tokens,applist)
    7676                if len(applist):
    7777                        self._set_status(0)
    7878                else:
    79                         self._set_status(1)
     79                        applist=self._get_app_by_pkgname(tokens)
     80                        if len(applist):
     81                                self._set_status(0)
     82                        else:
     83                                self._set_status(1)
     84                self.result['data']=applist
    8085                return(applist)
    8186
     
    144149                return(app)
    145150
    146         def _get_apps_by_match(self,tokens):
    147                         #Add items witch match >= self.precision
    148                         applist=[]
    149                         apps_in_store=self.store.get_apps()
    150                         if apps_in_store:
    151                                 auxDict={}
    152                                 count_apps=len(apps_in_store)
    153                                 self.progress=0
    154                                 inc=100.0/count_apps
    155                                 for app in apps_in_store:
    156                                         self.progress=self.progress+inc
    157                                         if app not in self.applist:
    158                                                 for token in tokens:
    159                                                         score=app.search_matches(token)
    160                                                         if score>=self.precision:
    161                                                                 if score in auxDict:
    162                                                                         auxDict[score].append(app)
    163                                                                 else:
    164                                                                         auxDict[score]=[app]
    165                                 for match in sorted(auxDict):
    166                                         for app in auxDict[match]:
     151        def _get_apps_by_match(self,tokens,applist=[]):
     152                #Add items witch match >= self.precision
     153                apps_in_store=self.store.get_apps()
     154                if apps_in_store:
     155                        auxDict={}
     156                        count_apps=len(apps_in_store)
     157                        self.progress=0
     158                        inc=100.0/count_apps
     159                        for app in apps_in_store:
     160                                self.progress=self.progress+inc
     161                                if app not in self.applist:
     162                                        for token in tokens:
     163                                                score=app.search_matches(token)
     164                                                if score>=self.precision:
     165                                                        if score in auxDict:
     166                                                                auxDict[score].append(app)
     167                                                        else:
     168                                                                auxDict[score]=[app]
     169                        for match in sorted(auxDict):
     170                                for app in auxDict[match]:
     171                                        if app not in applist:
    167172                                                self._debug("Adding app "+app.get_id() + " with score: "+str(match))
    168                                                 applist.insert(0,app)
    169                         return(applist)
     173                                                applist.insert(1,app)
     174                return(applist)
     175
     176        def _get_app_by_pkgname(self,tokens):
     177                applist=[]             
     178                apps_in_store=self.store.get_apps()
     179                if apps_in_store:
     180                        count_apps=len(apps_in_store)
     181                        self.progress=0
     182                        inc=100.0/count_apps
     183                        for app in apps_in_store:
     184                                self.progress=self.progress+inc
     185                                if app not in self.applist:
     186                                        for token in tokens:
     187                                                if app.get_pkgname_default()==token:
     188                                                        applist.append(app)
     189
     190                return(applist)
Note: See TracChangeset for help on using the changeset viewer.