Changeset 7139


Ignore:
Timestamp:
Apr 17, 2018, 4:47:11 PM (19 months ago)
Author:
Juanma
Message:

WIP Releases

File:
1 edited

Legend:

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

    r7137 r7139  
    2828                self.result['data']={}
    2929                self.result['status']={}
    30                 self.conf_dir=os.getenv("HOME")+"/.cache/lliurex-store"
    31                 self.icons_dir=self.conf_dir+"/icons"
    32                 self.bundles_dir=self.conf_dir+"/bundles"
     30                self.cache_dir=os.getenv("HOME")+"/.cache/lliurex-store"
     31                self.icons_dir=self.cache_dir+"/icons"
     32                self.bundles_dir=self.cache_dir+"/bundles/appimage"
    3333                self.bundle_types=['appimg']
    3434                self.appimage_dir=os.getenv("HOME")+"/.lliurex-store/appimg"
     
    6565                else:
    6666                        self.store=appstream.Store()
     67                self.appimage_store=appstream.Store()
    6768                self.progress=0
    6869                self.result['status']={'status':-1,'msg':''}
     
    369370#               if not os.path.isfile(filename):
    370371                repo_info={'info_url':info_url,'repo':repo,repo_name:'repo_name'}
    371                 self._write_xml_file(appinfo,repo_info,lock)
     372                self._add_appimage(appinfo,repo_info,lock)
    372373                semaphore.release()
    373374        #def _th_write_xml
    374375
    375         def _write_xml_file(self,appinfo,repo_info,lock):
     376        def _add_appimage(self,appinfo,repo_info,lock):
    376377                #Search in local store for the app
    377378                sw_new=False
     
    387388                icon=appstream.Icon()
    388389                screenshot=appstream.Screenshot()
    389                 #F*****g appstream have kinds undefined but kind_from_string works... wtf?
    390 #               bundle.set_kind(appstream.BundleKind.SNAP)
    391390                bundle.set_kind(bundle.kind_from_string('APPIMAGE'))
    392391                bundle.set_id(appinfo['package']+'.appimage')
     
    397396                app.add_url(appstream.UrlKind.UNKNOWN,appinfo['homepage'])
    398397                if sw_new:
     398                        app.add_keyword("C",appinfo['package'])
    399399                        app.set_name("C",appinfo['name'])
    400 #               app.add_pkgname(pkg.get_name()+'.snap')
    401400                        app.add_pkgname(appinfo['package'].lower()+".appimage")
    402 #               release=appstream.Release()
    403 #               release.set_version(pkg.get_version())
    404 #               app.add_release(release)
    405401                        app.set_id("appimagehub.%s"%appinfo['name'].lower()+'.appimage')
    406 #               app.set_id(pkg.get_name()+'.snap')
    407402                        app.set_id_kind=appstream.IdKind.DESKTOP
    408403                        description="This is an AppImage bundle of app %s. It hasn't been tested by our developers and comes from a 3rd party dev team. Please use it carefully.\n%s"%(appinfo['name'],appinfo['description'])
     
    415410                                app.add_category(category)
    416411                        self.store.add_app(app)
    417 
    418 #               app.add_keyword("C",pkg.get_name())
    419 #               for word in pkg.get_summary().split(' '):
    420 #                       app.add_keyword("C",word)
    421 
    422 #               if pkg.get_icon():
    423 #                       if self.icon_cache_enabled:
    424 #                               icon.set_kind(appstream.IconKind.LOCAL)
    425 #                               icon.set_name(self._download_file(pkg.get_icon(),pkg.get_name(),self.icons_folder))
    426 #                       else:
    427 #                               icon.set_kind(appstream.IconKind.REMOTE)
    428 #                               icon.set_name(pkg.get_icon())
    429 #                       app.add_icon(icon)
    430 
    431 #               if pkg.get_license():
    432 #                       app.set_project_license(pkg.get_license())
    433 
    434 #               if pkg.get_screenshots():
    435 #                       for snap_screen in pkg.get_screenshots():
    436 #                               img=appstream.Image()
    437 ##                              img.load_filename(self._download_file(snap_screen.get_url(),pkg.get_name(),self.images_folder))
    438 #                               img.set_kind(appstream.ImageKind.SOURCE)
    439 #                               img.set_url(snap_screen.get_url())
    440 #                               break
    441 #                       screenshot.add_image(img)
    442 #                       app.add_screenshot(screenshot)
     412                gioFile=Gio.File.new_for_path('%s/%s.xml'%(self.bundles_dir,app.get_id_filename()))
     413                app.to_file(gioFile)
     414#               self.appimage_store.to_file(gioFile,appstream.NodeToXmlFlags.ADD_HEADER)
     415#               self.appimage_store.add_app(app)
    443416                return(app)
    444 #                       name=appinfo['name'].lower().replace(".appimage","")
    445 #                       self._debug("Generating %s xml"%appinfo['package'])
    446 #                       f=open(filename,'w')
    447 #                       f.write('<?xml version="1.0" encoding="UTF-8"?>'+"\n")
    448 #                       f.write("<components version=\"0.10\">\n")
    449 #                       f.write("<component  type=\"desktop-application\">\n")
    450 #                       f.write("  <id>%s</id>\n"%appinfo['package'].lower())
    451 #                       f.write("  <pkgname>%s</pkgname>\n"%appinfo['package'])
    452 #                       f.write("  <name>%s</name>\n"%name)
    453 #                       f.write("  <metadata_license>CC0-1.0</metadata_license>\n")
    454 #                       f.write("  <provides><binary>%s</binary></provides>\n"%appinfo['package'])
    455 #                       if 'releases' in appinfo.keys():
    456 #                               f.write("  <releases>\n")
    457 #                               for release in appinfo['releases']:
    458 #                                       tmp_release=release.split('/')
    459 #                                       rel_number='/'.join(tmp_release[-2:])
    460 #                                       f.write("    <release version=\"%s\" urgency=\"medium\">"%rel_number)
    461 #                                       f.write("</release>\n")
    462 #                               f.write("  </releases>\n")
    463 #                       f.write("  <launchable type=\"desktop-id\">%s.desktop</launchable>\n"%name)
    464 #                       if appinfo['description']=='':
    465 #                               with lock:
    466 #                                       try:
    467 #                                               if appinfo['name'] in self.descriptions_dict.keys():
    468 #                                                       (description,icon)=self.descriptions_dict[appinfo['name']]
    469 #                                               else:
    470 #                                                       (description,icon)=self._get_description_icon(appinfo['name'],repo_info)
    471 #                                                       self.descriptions_dict.update({appinfo['name']:[description,icon]})
    472 #                                       except:
    473 #                                               description=''
    474 #                                               icon=''
    475 #                       else:
    476 #                               description=appinfo['description']
    477 #                       summary=' '.join(list(description.split(' ')[:8]))
    478 #                       if len(description.split(' '))>8:
    479 #                               summary+="... "
    480 #                       description="This is an AppImage bundle of app %s. It hasn't been tested by our developers and comes from a 3rd party dev team. Please use it carefully.\n%s"%(name,description)
    481 #                       if summary=='':
    482 #                               summary=' '.join(list(description.split(' ')[:8]))
    483 #                       f.write("  <description><p></p><p>%s</p></description>\n"%description)
    484 #                       f.write("  <summary>%s</summary>\n"%summary)
    485 ##                      f.write("  <icon type=\"local\">%s</icon>\n"%appinfo['icon'])
    486 #                       f.write("<icon type=\"cached\">"+name+"_"+name+".png</icon>\n")
    487 #                       f.write("  <url type=\"homepage\">%s</url>\n"%appinfo['homepage'])
    488 #                       f.write("  <bundle type=\"appimage\">%s</bundle>\n"%appinfo['name'])
    489 #                       f.write("  <keywords>\n")
    490 #                       keywords=name.split("-")
    491 #                       banned_keywords=["linux","x86_64","i386","ia32","amd64"]
    492 #                       for keyword in keywords:
    493 #                               #Better than isalpha method for this purpose
    494 #                               if keyword.isidentifier() and keyword not in banned_keywords:
    495 #                                       f.write("       <keyword>%s</keyword>\n"%keyword)
    496 #                       f.write("       <keyword>appimage</keyword>\n")
    497 #                       f.write("  </keywords>\n")
    498 #                       f.write("  <categories>\n")
    499 #                       f.write("       <category>AppImage</category>\n")
    500 #                       if 'categories' in appinfo.keys():
    501 #                               for category in appinfo['categories']:
    502 #                                       f.write("       <category>%s</category>\n"%category)
    503 #                       f.write("  </categories>\n")
    504 #                       f.write("</component>\n")
    505 #                       f.write("</components>\n")
    506 #                       f.close()
    507         #def _write_xml_file
     417        #def _add_appimage
    508418
    509419        def _get_description_icon(self,app_name,info_url,repo_name):
Note: See TracChangeset for help on using the changeset viewer.