From d767bdcc906476ab3b94b7a3b7610c6692df8f24 Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 13:32:35 -0600 Subject: [PATCH 1/7] generate-flatpak: Apparently HTTPS works, now, so use it --- generate-flatpak.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate-flatpak.rb b/generate-flatpak.rb index 7a42a57d..02c04829 100644 --- a/generate-flatpak.rb +++ b/generate-flatpak.rb @@ -10,7 +10,7 @@ ########### # HTTPS doesn't work -componentsDataGz = URI.open('http://flatpak.elementary.io/repo/appstream/x86_64/appstream.xml.gz') +componentsDataGz = URI.open('https://flatpak.elementary.io/repo/appstream/x86_64/appstream.xml.gz') xmlData = Zlib::GzipReader.new( componentsDataGz ).read componentsData = Nokogiri::XML(xmlData) From 4c0e783c5658ad45670b3ba625f119be4f0a8ded Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 13:37:06 -0600 Subject: [PATCH 2/7] Workflow: delete existing apps before generating new ones --- .github/workflows/update.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index b8465279..6a5db247 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -24,6 +24,7 @@ jobs: - name: Build run: | + rm _apps/* ruby ./generate-flatpak.rb - name: Commit From 9db8abd327167b266cc8349f7dd3a305ae55f527 Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 13:39:43 -0600 Subject: [PATCH 3/7] generate-flatpak: Remove outdated comments --- generate-flatpak.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/generate-flatpak.rb b/generate-flatpak.rb index 02c04829..67a13634 100644 --- a/generate-flatpak.rb +++ b/generate-flatpak.rb @@ -5,11 +5,6 @@ require 'nokogiri' require 'cgi' -########### -# FLATPAK # -########### - -# HTTPS doesn't work componentsDataGz = URI.open('https://flatpak.elementary.io/repo/appstream/x86_64/appstream.xml.gz') xmlData = Zlib::GzipReader.new( componentsDataGz ).read componentsData = Nokogiri::XML(xmlData) From 1f74b65eb774f7465d83f1e201056c137e70e839 Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 14:09:30 -0600 Subject: [PATCH 4/7] README: mention deleting existing files --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2b678720..ecac33dd 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,10 @@ bundle install ### Updating Apps -The list of apps is generated with a simple Ruby script. To rebuild the app list, run: +The list of apps is generated with a simple Ruby script. To rebuild the app list, delete the existing files so any removals (e.g. end-of-life apps) are reflected, then run the script: ```shell +rm _apps/* ruby generate-flatpak.rb ``` From fc8c572df35572690d2ff90720921bc2df9dd58a Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 15:18:32 -0600 Subject: [PATCH 5/7] generate-flatpak: allow desktop-application, strip translations --- generate-flatpak.rb | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/generate-flatpak.rb b/generate-flatpak.rb index 67a13634..663a0d6a 100644 --- a/generate-flatpak.rb +++ b/generate-flatpak.rb @@ -7,7 +7,7 @@ componentsDataGz = URI.open('https://flatpak.elementary.io/repo/appstream/x86_64/appstream.xml.gz') xmlData = Zlib::GzipReader.new( componentsDataGz ).read -componentsData = Nokogiri::XML(xmlData) +componentsData = Nokogiri::XML(xmlData,&:noblanks) template = '--- app_id: ((id)) @@ -33,11 +33,22 @@ ((description))' -puts 'about to iterate thru components...' -componentsData.css("components component").each do | component | - next if component.get_attribute("type") != "desktop" +componentsData.css("components component").each do |component| + next unless (component.get_attribute("type") == "desktop" || component.get_attribute("type") == "desktop-application") - puts "Generating #{component.at_css('name').content}" + component.xpath('name[@xml:lang]').each do |name| + name.remove + end + + component.xpath('summary[@xml:lang]').each do |summary| + summary.remove + end + + component.xpath('description[@xml:lang]').each do |description| + description.remove + end + + puts "\nGenerating #{component.at_css('name').content}" appFile = template.dup @@ -164,3 +175,4 @@ file.write(appFile) end end + From 55f617b9cd2b3c2b6abab4928e8d3ced4ef2f55f Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 16:00:08 -0600 Subject: [PATCH 6/7] Fix icons by using app ID --- _layouts/app.html | 15 ++++----------- generate-flatpak.rb | 35 +++++++++-------------------------- index.html | 18 ++++++------------ 3 files changed, 19 insertions(+), 49 deletions(-) diff --git a/_layouts/app.html b/_layouts/app.html index 3c1933e7..de241e6f 100644 --- a/_layouts/app.html +++ b/_layouts/app.html @@ -5,17 +5,10 @@
{{ page.title }} icon + srcset="https://flatpak.elementary.io/repo/appstream/x86_64/icons/64x64/{{ page.app_id }}.png" + src="https://raw.githubusercontent.com/elementary/icons/main/apps/64/application-default-icon.svg" + alt="{{ page.title }} icon" + />

{{ page.title }}

{{ page.developer }}

diff --git a/generate-flatpak.rb b/generate-flatpak.rb index 663a0d6a..f4e54007 100644 --- a/generate-flatpak.rb +++ b/generate-flatpak.rb @@ -20,8 +20,6 @@ dist: flatpak screenshots: ((screenshots)) -icons: -((icons)) color: primary: "((color_primary))" primary-text: "((color_text))" @@ -36,7 +34,7 @@ componentsData.css("components component").each do |component| next unless (component.get_attribute("type") == "desktop" || component.get_attribute("type") == "desktop-application") - component.xpath('name[@xml:lang]').each do |name| +component.xpath('name[@xml:lang]').each do |name| name.remove end @@ -48,6 +46,14 @@ description.remove end + component.xpath('keyword[@xml:lang]').each do |keyword| + keyword.remove + end + + component.xpath('caption[@xml:lang]').each do |caption| + caption.remove + end + puts "\nGenerating #{component.at_css('name').content}" appFile = template.dup @@ -124,33 +130,10 @@ image = component.at_css('image') if not image.nil? screenshots += ' - ' + image.content + "\n" - end # TODO: multiple screenshots - # releaseHash = "" - # unless doc['Screenshots'].nil? - # doc['Screenshots'].each do |screenshot| - # screenshots += " - " + URI::encode("#{mediaBase}/#{screenshot['source-image']['url']}") + "\n" - # releaseHash = screenshot['source-image']['url'].split("/")[0..3].join("/") if releaseHash.empty? - # end - # end appFile.sub!('((screenshots))', screenshots.rstrip) - icons = "" - icon_prefix = "https://flatpak.elementary.io/repo/appstream/x86_64/icons/" - - icon64 = component.at_css('icon[width="64"]') - if not icon64.nil? - icons += ' "64": ' + icon_prefix + '64x64/' + icon64.content + "\n" - end - - icon128 = component.at_css('icon[width="128"]') - if not icon128.nil? - icons += ' "128": ' + icon_prefix + '128x128/' + icon128.content + "\n" - end - - appFile.sub!('((icons))', icons.rstrip) - releases = "" # TODO: Releases # unless doc['Releases'].nil? diff --git a/index.html b/index.html index 9f95b144..ed5b81ea 100644 --- a/index.html +++ b/index.html @@ -16,18 +16,12 @@

Made for elementary OS

{% for app in flatpak_apps %} {% assign id = app.id | remove: '/' %} - {{app.title}} icon + {{ app.title }} icon {{ app.title }} {{ app.summary }} From 2ead9761673351a17a0c421a0aef574a8a6d45d3 Mon Sep 17 00:00:00 2001 From: Cassidy James Blaede Date: Wed, 28 Aug 2024 16:03:08 -0600 Subject: [PATCH 7/7] Index: don't include scaled-down 128px icons --- index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/index.html b/index.html index ed5b81ea..03e92c76 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,6 @@

Made for elementary OS

{% assign id = app.id | remove: '/' %}