mirror of
https://github.com/serhii-londar/open-source-mac-os-apps.git
synced 2024-11-21 23:20:22 +00:00
Ci error fix.
This commit is contained in:
parent
8f1d2b9308
commit
f4293c7910
3 changed files with 6987 additions and 7394 deletions
80
.github/main.swift
vendored
80
.github/main.swift
vendored
|
@ -212,55 +212,59 @@ class ReadmeGenerator {
|
||||||
|
|
||||||
func generateReadme() {
|
func generateReadme() {
|
||||||
print("Start")
|
print("Start")
|
||||||
guard let applicationsData = try? Data(contentsOf: URL(fileURLWithPath: FilePaths.applications.rawValue)) else { return }
|
do {
|
||||||
guard let categoriesData = try? Data(contentsOf: URL(fileURLWithPath: FilePaths.categories.rawValue)) else { return }
|
let applicationsData = try Data(contentsOf: URL(fileURLWithPath: FilePaths.applications.rawValue))
|
||||||
let jsonDecoder = JSONDecoder()
|
let categoriesData = try Data(contentsOf: URL(fileURLWithPath: FilePaths.categories.rawValue))
|
||||||
guard let applicationsObject = try? jsonDecoder.decode(JSONApplications.self, from: applicationsData) else { return }
|
let jsonDecoder = JSONDecoder()
|
||||||
guard let categoriesObject = try? jsonDecoder.decode(Categories.self, from: categoriesData) else { return }
|
let applicationsObject = try jsonDecoder.decode(JSONApplications.self, from: applicationsData)
|
||||||
|
let categoriesObject = try jsonDecoder.decode(Categories.self, from: categoriesData)
|
||||||
var categories = categoriesObject.categories
|
|
||||||
let subcategories = categories.filter({ $0.parent != nil && !$0.parent!.isEmpty })
|
|
||||||
let applications = applicationsObject.applications
|
|
||||||
|
|
||||||
for subcategory in subcategories {
|
|
||||||
if let index = categories.lastIndex(where: { $0.parent != subcategory.id }) {
|
|
||||||
categories.remove(at: index)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
categories = categories.sorted(by: { $0.title < $1.title })
|
|
||||||
|
|
||||||
readmeString.append(header)
|
|
||||||
print("Start iteration....")
|
|
||||||
|
|
||||||
for category in categories {
|
|
||||||
readmeString.append(String.enter + String.section + String.space + category.title + String.enter)
|
|
||||||
var categoryApplications = applications.filter({ $0.categories.contains(category.id) })
|
|
||||||
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
|
|
||||||
|
|
||||||
for application in categoryApplications {
|
var categories = categoriesObject.categories
|
||||||
readmeString.append(application.markdownDescription())
|
let subcategories = categories.filter({ $0.parent != nil && !$0.parent!.isEmpty })
|
||||||
readmeString.append(String.enter)
|
let applications = applicationsObject.applications
|
||||||
}
|
|
||||||
|
|
||||||
var subcategories = subcategories.filter({ $0.parent == category.id })
|
|
||||||
guard subcategories.count > 0 else { continue }
|
|
||||||
subcategories = subcategories.sorted(by: { $0.title < $1.title })
|
|
||||||
for subcategory in subcategories {
|
for subcategory in subcategories {
|
||||||
readmeString.append(String.enter + String.subsection + String.space + subcategory.title + String.enter)
|
if let index = categories.lastIndex(where: { $0.parent != subcategory.id }) {
|
||||||
var categoryApplications = applications.filter({ $0.categories.contains(subcategory.id) })
|
categories.remove(at: index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
categories = categories.sorted(by: { $0.title < $1.title })
|
||||||
|
|
||||||
|
readmeString.append(header)
|
||||||
|
print("Start iteration....")
|
||||||
|
|
||||||
|
for category in categories {
|
||||||
|
readmeString.append(String.enter + String.section + String.space + category.title + String.enter)
|
||||||
|
var categoryApplications = applications.filter({ $0.categories.contains(category.id) })
|
||||||
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
|
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
|
||||||
|
|
||||||
for application in categoryApplications {
|
for application in categoryApplications {
|
||||||
readmeString.append(application.markdownDescription())
|
readmeString.append(application.markdownDescription())
|
||||||
readmeString.append(String.enter)
|
readmeString.append(String.enter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var subcategories = subcategories.filter({ $0.parent == category.id })
|
||||||
|
guard subcategories.count > 0 else { continue }
|
||||||
|
subcategories = subcategories.sorted(by: { $0.title < $1.title })
|
||||||
|
for subcategory in subcategories {
|
||||||
|
readmeString.append(String.enter + String.subsection + String.space + subcategory.title + String.enter)
|
||||||
|
var categoryApplications = applications.filter({ $0.categories.contains(subcategory.id) })
|
||||||
|
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
|
||||||
|
|
||||||
|
for application in categoryApplications {
|
||||||
|
readmeString.append(application.markdownDescription())
|
||||||
|
readmeString.append(String.enter)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
print("Finish iteration...")
|
||||||
|
readmeString.append(footer)
|
||||||
|
try readmeString.data(using: .utf8)?.write(to: URL(fileURLWithPath: FilePaths.readme.rawValue))
|
||||||
|
print("Finish")
|
||||||
|
} catch {
|
||||||
|
print(error)
|
||||||
}
|
}
|
||||||
print("Finish iteration...")
|
|
||||||
readmeString.append(footer)
|
|
||||||
try? readmeString.data(using: .utf8)?.write(to: URL(fileURLWithPath: FilePaths.readme.rawValue))
|
|
||||||
print("Finish")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -358,7 +358,7 @@ You can see in which language an app is written. Currently there are following l
|
||||||
- [Airpass](https://github.com/alvesjtiago/airpass) - Status bar Mac application to overcome time constrained WiFi networks. ![javascript_icon]
|
- [Airpass](https://github.com/alvesjtiago/airpass) - Status bar Mac application to overcome time constrained WiFi networks. ![javascript_icon]
|
||||||
- [AnyBar](https://github.com/tonsky/AnyBar) - macOS menubar status indicator. ![objective_c_icon]
|
- [AnyBar](https://github.com/tonsky/AnyBar) - macOS menubar status indicator. ![objective_c_icon]
|
||||||
- [BitBar](https://github.com/matryer/bitbar) - Put the output from any script or program in your macOS Menu Bar. ![objective_c_icon]
|
- [BitBar](https://github.com/matryer/bitbar) - Put the output from any script or program in your macOS Menu Bar. ![objective_c_icon]
|
||||||
- [CloudyTabs](https://github.com/josh-/CloudyTabs) - Simple menu bar macOS application for displaing lists of your iCloud Tabs and Reading List. ![swift_icon]
|
- [CloudyTabs](https://github.com/josh-/CloudyTabs) - Simple menu bar macOS application for displaying lists of your iCloud Tabs and Reading List. ![swift_icon]
|
||||||
- [DatWeatherDoe](https://github.com/inderdhir/DatWeatherDoe) - Simple menu bar weather app for macOS written in Swift. ![swift_icon]
|
- [DatWeatherDoe](https://github.com/inderdhir/DatWeatherDoe) - Simple menu bar weather app for macOS written in Swift. ![swift_icon]
|
||||||
- [DisplayMenu](https://github.com/Kwpolska/DisplayMenu) - Simple (bare-bones) macOS menubar extra to apply display presets. ![swift_icon]
|
- [DisplayMenu](https://github.com/Kwpolska/DisplayMenu) - Simple (bare-bones) macOS menubar extra to apply display presets. ![swift_icon]
|
||||||
- [Dozer](https://github.com/Mortennn/Dozer) - Hide MacOS menubar items. ![swift_icon]
|
- [Dozer](https://github.com/Mortennn/Dozer) - Hide MacOS menubar items. ![swift_icon]
|
||||||
|
@ -464,6 +464,7 @@ You can see in which language an app is written. Currently there are following l
|
||||||
- [Aerial](https://github.com/JohnCoates/Aerial) - Apple TV Aerial Screensaver for macOS. ![swift_icon]
|
- [Aerial](https://github.com/JohnCoates/Aerial) - Apple TV Aerial Screensaver for macOS. ![swift_icon]
|
||||||
- [Image-As-Wallpaper](https://github.com/ved62/Image-As-Wallpaper) - Utility application helps with selection of images for using as desktop wallpaper or in screensaver on Mac computers. ![swift_icon]
|
- [Image-As-Wallpaper](https://github.com/ved62/Image-As-Wallpaper) - Utility application helps with selection of images for using as desktop wallpaper or in screensaver on Mac computers. ![swift_icon]
|
||||||
- [Irvue](https://github.com/leonspok/Irvue-Screensaver) - Screensaver for macOS. ![objective_c_icon]
|
- [Irvue](https://github.com/leonspok/Irvue-Screensaver) - Screensaver for macOS. ![objective_c_icon]
|
||||||
|
- [Life Saver](https://github.com/amiantos/lifesaver) - An abstract screensaver based on Conway's Game of Life implemented with SpriteKit ![swift_icon]
|
||||||
- [MusaicFM](https://github.com/docterd/MusaicFM) - iTunes Screensaver Clone for Spotify and Last.fm ![objective_c_icon]
|
- [MusaicFM](https://github.com/docterd/MusaicFM) - iTunes Screensaver Clone for Spotify and Last.fm ![objective_c_icon]
|
||||||
- [Predator](https://github.com/vpeschenkov/Predator) - A predator-inspired clock screensaver for macOS ![swift_icon]
|
- [Predator](https://github.com/vpeschenkov/Predator) - A predator-inspired clock screensaver for macOS ![swift_icon]
|
||||||
- [The GitHub Matrix Screensaver](https://github.com/winterbe/github-matrix-screensaver) - The GitHub Matrix Screensaver for macOS. ![javascript_icon]
|
- [The GitHub Matrix Screensaver](https://github.com/winterbe/github-matrix-screensaver) - The GitHub Matrix Screensaver for macOS. ![javascript_icon]
|
||||||
|
@ -589,6 +590,7 @@ You can see in which language an app is written. Currently there are following l
|
||||||
- [HandBrake](https://github.com/HandBrake/HandBrake) - HandBrake is a video transcoder available for Linux, Mac, and Windows. ![c_icon]
|
- [HandBrake](https://github.com/HandBrake/HandBrake) - HandBrake is a video transcoder available for Linux, Mac, and Windows. ![c_icon]
|
||||||
- [MenuTube](https://github.com/edanchenkov/MenuTube) - Catch YouTube into your macOS menu bar! ![javascript_icon]
|
- [MenuTube](https://github.com/edanchenkov/MenuTube) - Catch YouTube into your macOS menu bar! ![javascript_icon]
|
||||||
- [OpenShot](https://github.com/OpenShot/openshot-qt) - Easy to use, quick to learn, and surprisingly powerful video editor. ![python_icon]
|
- [OpenShot](https://github.com/OpenShot/openshot-qt) - Easy to use, quick to learn, and surprisingly powerful video editor. ![python_icon]
|
||||||
|
- [Quick Caption](https://github.com/LumingYin/Caption) - Transcribe and generate caption files (SRT, ASS and FCPXML) without manually entering time codes. ![swift_icon]
|
||||||
- [QuickLook Video](https://github.com/Marginal/QLVideo) - This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. ![objective_c_icon]
|
- [QuickLook Video](https://github.com/Marginal/QLVideo) - This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. ![objective_c_icon]
|
||||||
- [Subler](https://bitbucket.org/galad87/subler/src) - Subler is an macOS app created to mux and tag mp4 files. ![objective_c_icon]
|
- [Subler](https://bitbucket.org/galad87/subler/src) - Subler is an macOS app created to mux and tag mp4 files. ![objective_c_icon]
|
||||||
- [Vid Quiz Creator](https://github.com/sahil-a/vidquizcreator) - macOS application to insert quizzes within video playback and play those videos to receiving devices using the LISNR API. ![swift_icon]
|
- [Vid Quiz Creator](https://github.com/sahil-a/vidquizcreator) - macOS application to insert quizzes within video playback and play those videos to receiving devices using the LISNR API. ![swift_icon]
|
||||||
|
|
14297
applications.json
14297
applications.json
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue