Changeset 7137


Ignore:
Timestamp:
Apr 12, 2018, 2:55:55 PM (20 months ago)
Author:
Juanma
Message:

WIP on releases

Location:
lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore
Files:
4 edited

Legend:

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

    r7132 r7137  
    7575                        self._chk_installDir()
    7676                        if action=='load':
    77                                 self.result['data']=self._load_appimage_store(self.store)
     77                                self.result['data']=self._load_appimage_store()
    7878                        else:
    7979                                for app_info in applist:
     
    167167        #def _remove_appimage
    168168
    169         def _load_appimage_store(self,store):
     169        def _load_appimage_store(self,store=None):
    170170                self._get_bundles_catalogue()
    171171                if os.path.exists(self.bundles_dir):
     
    333333        #def load_json_appinfo
    334334
    335         def _get_releases_from_json(self,appimage):
    336                 releases=[]
    337                 if appimage['links']:
    338                         for link in appimage['links']:
    339                                 if 'type' in link.keys():
    340                                         if link['type']=='Download':
    341                                                 self._debug("Info url: %s"%link['url'])
    342                                                 try:
    343                                                         sw_git=False
    344                                                         with urllib.request.urlopen(link['url']) as f:
    345                                                                 if 'github' in link['url']:
    346                                                                         sw_git=True
    347                                                                 content=(f.read().decode('utf-8'))
    348                                                                 soup=BeautifulSoup(content,"html.parser")
    349                                                                 package_a=soup.findAll('a', attrs={ "href" : re.compile(r'.*[aA]pp[iI]mage$')})
    350                                                                 for package_data in package_a:
    351                                                                         package_name=package_data.findAll('strong', attrs={ "class" : "pl-1"})
    352                                                                         package_link=package_data['href']
    353                                                                         if sw_git:
    354                                                                                 package_link="https://github.com"+package_link
    355                                                                                 releases.append(package_link)
    356                                                                                 self._debug("Link: %s"%package_link)
    357                                                 except Exception as e:
    358                                                         print(e)
    359                 return releases
    360         #def _get_releases_from_json
    361 
    362335        def _th_generate_xml_catalog(self,applist,outdir,info_url,repo,repo_name):
    363336                maxconnections = 10
     
    402375        def _write_xml_file(self,appinfo,repo_info,lock):
    403376                #Search in local store for the app
     377                sw_new=False
    404378                app=self.store.get_app_by_pkgname(appinfo['package'].lower())
    405379                if not app:
    406380                        self._debug("Searching for %s"%appinfo['package'])
    407381                        app=self.store.get_app_by_id(appinfo['package'].lower()+".desktop")
    408                 sw_new=False
    409382                if not app:
    410383                        self._debug("Generating new %s"%appinfo['package'])
     
    421394                app.add_keyword("C","appimage")
    422395                app.add_category("appimage")
     396                app.add_pkgname(appinfo['package'].lower()+".appimage")
     397                app.add_url(appstream.UrlKind.UNKNOWN,appinfo['homepage'])
    423398                if sw_new:
    424399                        app.set_name("C",appinfo['name'])
    425400#               app.add_pkgname(pkg.get_name()+'.snap')
    426                         app.add_pkgname(appinfo['package'])
     401                        app.add_pkgname(appinfo['package'].lower()+".appimage")
    427402#               release=appstream.Release()
    428403#               release.set_version(pkg.get_version())
    429404#               app.add_release(release)
    430                         app.set_id("appimagehub.%s"%appinfo['name']+'.appimage')
     405                        app.set_id("appimagehub.%s"%appinfo['name'].lower()+'.appimage')
    431406#               app.set_id(pkg.get_name()+'.snap')
    432407                        app.set_id_kind=appstream.IdKind.DESKTOP
     
    646621       
    647622        def _get_info(self,app_info):
     623                app_info=self._get_releases(app_info)
    648624                app_info['state']='available'
    649625                if os.path.isfile(self.appimage_dir+'/'+app_info['package']):
     
    663639        #def _get_info
    664640
     641        def _get_releases(self,app_info):
     642                releases=[]
     643                if app_info['installerUrl']:
     644                        self._debug("Info url: %s"%app_info['installerUrl'])
     645                        try:
     646                                sw_git=False
     647                                if 'github' in app_info['installerUrl']:
     648                                        sw_git=True
     649#                                       app_info['installerUrl']=app_info['installerUrl']+"/download"
     650
     651                                with urllib.request.urlopen(app_info['installerUrl']) as f:
     652                                        content=(f.read().decode('utf-8'))
     653                                        soup=BeautifulSoup(content,"html.parser")
     654                                        package_a=soup.findAll('a', attrs={ "href" : re.compile(r'.*\.[aA]pp[iI]mage$')})
     655                                        for package_data in package_a:
     656                                                package_name=package_data.findAll('strong', attrs={ "class" : "pl-1"})
     657                                                package_link=package_data['href']
     658                                                if sw_git:
     659                                                        package_link="https://github.com"+package_link
     660                                                        releases.append(package_link)
     661                                                        self._debug("Link: %s"%package_link)
     662                        except Exception as e:
     663                                print(e)
     664                app_info['releases']=releases
     665                return app_info
     666        #def _get_releases
     667       
     668        def _get_releases_from_json(self,appimage):
     669                releases=[]
     670                if appimage['links']:
     671                        for link in appimage['links']:
     672                                if 'type' in link.keys():
     673                                        if link['type']=='Download':
     674                                                self._debug("Info url: %s"%link['url'])
     675                                                try:
     676                                                        sw_git=False
     677                                                        with urllib.request.urlopen(link['url']) as f:
     678                                                                if 'github' in link['url']:
     679                                                                        sw_git=True
     680                                                                content=(f.read().decode('utf-8'))
     681                                                                soup=BeautifulSoup(content,"html.parser")
     682                                                                package_a=soup.findAll('a', attrs={ "href" : re.compile(r'.*[aA]pp[iI]mage$')})
     683                                                                for package_data in package_a:
     684                                                                        package_name=package_data.findAll('strong', attrs={ "class" : "pl-1"})
     685                                                                        package_link=package_data['href']
     686                                                                        if sw_git:
     687                                                                                package_link="https://github.com"+package_link
     688                                                                                releases.append(package_link)
     689                                                                                self._debug("Link: %s"%package_link)
     690                                                except Exception as e:
     691                                                        print(e)
     692                return releases
     693        #def _get_releases_from_json
     694
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/infoManager.py

    r7132 r7137  
    7575                        if app.get_pkgname_default():
    7676                                appInfo['package']=app.get_pkgname_default()
     77                        if len(app.get_pkgnames())>1:
     78                                appInfo['packages']=app.get_pkgnames()
    7779                        if app.get_project_license():
    7880                                appInfo['license']=app.get_project_license()
     
    138140                                appInfo["screenshots"]=screenshots_list
    139141                        #The values are the values of appstream.UrlKind. 1=HOMEPAGE, 0=UNKNOWN
     142                        self._debug(app.get_url_item(0))
    140143                        if app.get_url_item(1):
    141144                                appInfo['homepage']=app.get_url_item(1).strip()
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/searchManager.py

    r7132 r7137  
    183183                #4.- Try exact match by pkgname
    184184                        app=self.store.get_app_by_pkgname(app_name)
     185                if not app:
     186                        app=self.store.get_app_by_id_ignore_prefix(app_name)
    185187                self._debug("App found %s"%app)
    186188                return(app)
    187189
    188190        def _get_apps_by_match(self,tokens,applist=[]):
    189                 #Add items witch match >= self.precision
     191                #Add items with match >= self.precision
    190192                self._debug("Searching app by fuzzy match")
    191193                if not applist:
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/storeManager.py

    r7132 r7137  
    2222                self._propagate_dbg=False
    2323                self.store=None
     24                self.stores={}
    2425                self.related_actions={
    2526                                        'load':['load'],
     
    430431                result['data']=[]
    431432                result['status']={'status':0,'msg':''}
     433                processed=[]
    432434                for app_info in info_applist:
    433435                        if channel:
     
    436438                                available_channels=self._check_package_type(app_info)
    437439                                for package_type in available_channels:
     440                                        if app_info['component']!='':
     441                                                if app_info['package'] in processed:
     442                                                        continue
     443#                                               processed.append(app_info['package'])
     444
    438445                                        if package_type in types_dict:
    439446                                                types_dict[package_type].append(app_info)
Note: See TracChangeset for help on using the changeset viewer.