Changeset 7137
- Timestamp:
- Apr 12, 2018, 2:55:55 PM (20 months ago)
- 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 75 75 self._chk_installDir() 76 76 if action=='load': 77 self.result['data']=self._load_appimage_store( self.store)77 self.result['data']=self._load_appimage_store() 78 78 else: 79 79 for app_info in applist: … … 167 167 #def _remove_appimage 168 168 169 def _load_appimage_store(self,store ):169 def _load_appimage_store(self,store=None): 170 170 self._get_bundles_catalogue() 171 171 if os.path.exists(self.bundles_dir): … … 333 333 #def load_json_appinfo 334 334 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=False344 with urllib.request.urlopen(link['url']) as f:345 if 'github' in link['url']:346 sw_git=True347 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_link355 releases.append(package_link)356 self._debug("Link: %s"%package_link)357 except Exception as e:358 print(e)359 return releases360 #def _get_releases_from_json361 362 335 def _th_generate_xml_catalog(self,applist,outdir,info_url,repo,repo_name): 363 336 maxconnections = 10 … … 402 375 def _write_xml_file(self,appinfo,repo_info,lock): 403 376 #Search in local store for the app 377 sw_new=False 404 378 app=self.store.get_app_by_pkgname(appinfo['package'].lower()) 405 379 if not app: 406 380 self._debug("Searching for %s"%appinfo['package']) 407 381 app=self.store.get_app_by_id(appinfo['package'].lower()+".desktop") 408 sw_new=False409 382 if not app: 410 383 self._debug("Generating new %s"%appinfo['package']) … … 421 394 app.add_keyword("C","appimage") 422 395 app.add_category("appimage") 396 app.add_pkgname(appinfo['package'].lower()+".appimage") 397 app.add_url(appstream.UrlKind.UNKNOWN,appinfo['homepage']) 423 398 if sw_new: 424 399 app.set_name("C",appinfo['name']) 425 400 # app.add_pkgname(pkg.get_name()+'.snap') 426 app.add_pkgname(appinfo['package'] )401 app.add_pkgname(appinfo['package'].lower()+".appimage") 427 402 # release=appstream.Release() 428 403 # release.set_version(pkg.get_version()) 429 404 # app.add_release(release) 430 app.set_id("appimagehub.%s"%appinfo['name'] +'.appimage')405 app.set_id("appimagehub.%s"%appinfo['name'].lower()+'.appimage') 431 406 # app.set_id(pkg.get_name()+'.snap') 432 407 app.set_id_kind=appstream.IdKind.DESKTOP … … 646 621 647 622 def _get_info(self,app_info): 623 app_info=self._get_releases(app_info) 648 624 app_info['state']='available' 649 625 if os.path.isfile(self.appimage_dir+'/'+app_info['package']): … … 663 639 #def _get_info 664 640 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 75 75 if app.get_pkgname_default(): 76 76 appInfo['package']=app.get_pkgname_default() 77 if len(app.get_pkgnames())>1: 78 appInfo['packages']=app.get_pkgnames() 77 79 if app.get_project_license(): 78 80 appInfo['license']=app.get_project_license() … … 138 140 appInfo["screenshots"]=screenshots_list 139 141 #The values are the values of appstream.UrlKind. 1=HOMEPAGE, 0=UNKNOWN 142 self._debug(app.get_url_item(0)) 140 143 if app.get_url_item(1): 141 144 appInfo['homepage']=app.get_url_item(1).strip() -
lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/searchManager.py
r7132 r7137 183 183 #4.- Try exact match by pkgname 184 184 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) 185 187 self._debug("App found %s"%app) 186 188 return(app) 187 189 188 190 def _get_apps_by_match(self,tokens,applist=[]): 189 #Add items wit ch match >= self.precision191 #Add items with match >= self.precision 190 192 self._debug("Searching app by fuzzy match") 191 193 if not applist: -
lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/storeManager.py
r7132 r7137 22 22 self._propagate_dbg=False 23 23 self.store=None 24 self.stores={} 24 25 self.related_actions={ 25 26 'load':['load'], … … 430 431 result['data']=[] 431 432 result['status']={'status':0,'msg':''} 433 processed=[] 432 434 for app_info in info_applist: 433 435 if channel: … … 436 438 available_channels=self._check_package_type(app_info) 437 439 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 438 445 if package_type in types_dict: 439 446 types_dict[package_type].append(app_info)
Note: See TracChangeset
for help on using the changeset viewer.