Ignore:
Timestamp:
Jun 15, 2018, 1:26:33 PM (15 months ago)
Author:
Juanma
Message:

implement method random to get a random list of apps

File:
1 edited

Legend:

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

    r7471 r7473  
    425425        #def _load_Store
    426426
     427        ####
     428        #Return a random array of applications
     429        #Input:
     430        #  - exclude_sections=[] -> Array of sections that will not be included
     431        #  - include_sections=[] -> Array of sections that will be included
     432        #  - max_results -> Max number of apps to include
     433        #Output:
     434        #  - Dict with the related info
     435        ####
    427436        def _get_editors_pick(self,*args,**kwargs):
    428437               
    429438                def load_applist():
    430439                        attempts=0
     440                        sw_include=True
    431441                        tmp_app=random.choice(tmp_applist)
    432442                        while tmp_app in applist or tmp_app.get_state()==1:
     
    436446                                        tmp_app=None
    437447                                        break
     448                        if tmp_app:
     449                                if exclude_sections or include_sections:
     450                                        tmp_app_sec=tmp_app.get_categories()
     451                                        for sec in exclude_sections:
     452                                                sw_include=True
     453                                                if sec in tmp_app_sec:
     454                                                        sw_include=False
     455                                                        break
     456                                        for sec in include_sections:
     457                                                sw_include=False
     458                                                if sec in tmp_app_sec:
     459                                                        sw_include=True
     460                                                        break
     461
     462                                if sw_include:
     463                                        while tmp_app in applist or tmp_app.get_state()==1:
     464                                                tmp_app=random.choice(tmp_applist)
     465                                                attempts+=1
     466                                                if attempts==9:
     467                                                        tmp_app=None
     468                                                        break
     469                                else:
     470                                        tmp_app=None
    438471                        return(tmp_app)
    439472
     
    448481                        return(tmp_applist)
    449482                exclude_sections=[]
    450                 only_sections=[]
    451                 if 'exclude_sections' in kwargs.keys():
    452                         exclude_sections=kwargs['exclude_sections']
    453                 if 'only_sections' in kwargs.keys():
    454                         only_sections=kwargs['only_sections']
     483                include_sections=[]
     484                max_results=10
     485                #WTF?
     486                kargs=kwargs['kwargs'].copy()
     487                if 'exclude_sections' in kargs.keys():
     488                        exclude_sections=kargs['exclude_sections'].split(',')
     489                        self._debug("Exclude sections %s"%exclude_sections)
     490                if 'include_sections' in kargs.keys():
     491                        include_sections=kargs['include_sections'].split(',')
     492                        self._debug("Only sections %s"%include_sections)
     493                if 'max_results' in kargs.keys():
     494                        if kargs['max_results']:
     495                                max_results=kargs['max_results']
    455496                applist=[]
    456497                apps_in_store=self.store.get_apps()
     
    458499                total_apps=len(apps_in_store)-1
    459500                tmp_applist=select_applist()
    460                 max_results=10
    461501                while cont<max_results:
    462502                        tmp_app=load_applist()
     503                        attempts=0
    463504                        while tmp_app==None:
    464505                                tmp_applist=select_applist()
    465506                                tmp_app=load_applist()
    466                         applist.append(tmp_app)
     507                                attempts+=1
     508                                if attempts>max_results*10:
     509                                        break
     510                        if tmp_app:
     511                                applist.append(tmp_app)
    467512                        cont+=1
    468513                #Now transform applist into an app_info list
Note: See TracChangeset for help on using the changeset viewer.