From 461d2863bab3e93a9196f897ee9b1de266d42b96 Mon Sep 17 00:00:00 2001 From: Richard Macias Date: Tue, 27 May 2025 10:49:08 -0500 Subject: [PATCH] chore: more dev QoL, exclude dolphin dev from json. fix: scummvm --- Makefile | 12 +++-- README.md | 53 ++++++++++++++++--- obtainium-emulation-pack.min.json | 2 +- pages/development.md | 31 +++++++++++ pages/init.md | 19 +++++-- pages/table.md | 2 +- scripts/generate-readme.py | 14 ++--- scripts/generate-table.py | 4 ++ scripts/minify-json.py | 24 ++++++--- .../obtainium-emulation-pack.json | 7 ++- 10 files changed, 136 insertions(+), 32 deletions(-) create mode 100644 pages/development.md rename obtainium-emulation-pack.json => src/obtainium-emulation-pack.json (99%) diff --git a/Makefile b/Makefile index fb13ef8..500d6b8 100644 --- a/Makefile +++ b/Makefile @@ -8,13 +8,17 @@ help: # Show help for each of the makefile recipes. release: readme minify # Run all Make targets related to cutting a release. links: # Generate links for all obtainium packages - @python scripts/generate-obtainium-urls.py obtainium-emulation-pack.json > scripts/links.md + @python scripts/generate-obtainium-urls.py src/obtainium-emulation-pack.json > scripts/links.md minify: # Obtainium historically expects a minified json. This allows humans to edit the readable and easily update the minified one. - @python scripts/minify-json.py obtainium-emulation-pack.json obtainium-emulation-pack.min.json + @python scripts/minify-json.py src/obtainium-emulation-pack.json obtainium-emulation-pack.min.json table: # Generate a table of obtainium links for the README. - @python scripts/generate-table.py obtainium-emulation-pack.json ./pages/table.md + @python scripts/generate-table.py src/obtainium-emulation-pack.json ./pages/table.md readme: table # Generate the readme file. Why? Because editing that table every change is tedious. - @python scripts/generate-readme.py ./pages/init.md ./pages/table.md ./pages/faq.md + @python scripts/generate-readme.py \ + ./pages/init.md \ + ./pages/table.md \ + ./pages/development.md \ + ./pages/faq.md diff --git a/README.md b/README.md index 3765d03..8fea328 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,20 @@ The maintainer of Obtainium also hosts a collection of Crowdsourced app configur ### Option 1. Import Method -1. Download the latest obtainium-emulation-pack.json release json to your device -2. Open Obtainium on your device -3. Navigate to Import/Export -4. Select `Obtainium Import` and select the obtainium-emulation-pack.json -5. Profit. You should see packages added to your obtainium +> [!TIP] +> This is recommended installation method for beginners and/or new devices + +1. On your android emulation device, navigate to the [latest release](https://github.com/RJNY/Obtainium-Emulation-Pack/releases/latest) of the Obainium Emulation Pack. +1. Download the file titled `obtainium-emulation-pack-vX.X.X.json` to your device. +1. Open Obtainium. +1. Navigate to Import/Export. +1. Select `Obtainium Import` and open `obtainium-emulation-pack-vX.X.X.json` +1. You should see packages imported to your obtainium. + +### Option 2. Click-to-Install Method + +1. Visit this page on your android emulation device +1. Click the "Add to Obtainium!" links of the emulators you wish to track | Application Name | Category | Add to Obtainium | |------------------|----------|-------------------| @@ -30,7 +39,7 @@ The maintainer of Obtainium also hosts a collection of Crowdsourced app configur | RetroArch AArch64 (Stable) | Emulator | Add to Obtainium! | | RetroArch AArch64 (Nightly) | Emulator | Add to Obtainium! | | RPCSX | Emulator | Add to Obtainium! | -| ScummVM | Emulator | Add to Obtainium! | +| ScummVM | Emulator | Add to Obtainium! | | Winlator | Emulator | Add to Obtainium! | | Vita3K | Emulator | Add to Obtainium! | | Vita3K ZX | Emulator | Add to Obtainium! | @@ -39,6 +48,38 @@ The maintainer of Obtainium also hosts a collection of Crowdsourced app configur | AdrenoToolsDrivers | Track Only | Add to Obtainium! | | Obtainium Emulation Pack | Track Only | Add to Obtainium! | +# Development & Contribution + +## Contributing + +You are welcome to make a PR with a contribution. + +### 1. Making changes to the pack + +You'll want to directly edit only things in either `./pages/` or `./src/`. Everything else should be designed to update +through scripts. Including the README! + +...why template out the README? Because that table is very cumbersome to update on every change. + +### 2. Pre-Commit + +Before you commit, make sure to run `make release`. +This will: + +- template the README +- update the minified json release file + +## Development Tips + +### Meta field options + +My scripts will do specific actions if a `meta` field is present + +| key | type | default | description | +| ---------------- | ---- | ------- | ---------------------------------------------- | +| exludeFromExport | bool | false | Excludes the app from the release export json. | +| exludeFromTable | bool | false | Excludes the app from the README table. | + ## FAQ ### Why do some applications say TRACK ONLY? diff --git a/obtainium-emulation-pack.min.json b/obtainium-emulation-pack.min.json index b9b1c11..a5f385a 100644 --- a/obtainium-emulation-pack.min.json +++ b/obtainium-emulation-pack.min.json @@ -1 +1 @@ -{"apps":[{"id":"com.limelight.noir","url":"https://github.com/ClassicOldSong/moonlight-android","author":"ClassicOldSong","name":"Artemis","apkUrls":"[[\"artemis-nonRoot_game-release.apk\",\"https://api.github.com/repos/ClassicOldSong/moonlight-android/releases/assets/256681514\"]]","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":false,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"sortMethodChoice\":\"date\",\"useLatestAssetDateAsReleaseDate\":false,\"releaseTitleAsVersion\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":false,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Streaming"],"overrideSource":"GitHub"},{"id":"io.github.lime3ds.android","url":"https://github.com/azahar-emu/azahar","author":"azahar-emu","name":"Azahar","apkUrls":"[[\"azahar-2120-android-universal.apk\",\"https://api.github.com/repos/azahar-emu/azahar/releases/assets/239683655\"]]","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":false,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"sortMethodChoice\":\"date\",\"useLatestAssetDateAsReleaseDate\":false,\"releaseTitleAsVersion\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":true,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"GitHub"},{"id":"info.cemu.cemu","url":"https://github.com/SSimco/Cemu","author":"SSimco","name":"Cemu","apkUrls":"[[\"Cemu-0.1.apk\",\"https://api.github.com/repos/SSimco/Cemu/releases/assets/236257329\"]]","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":false,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"dontSortReleasesList\":false,\"useLatestAssetDateAsReleaseDate\":false,\"releaseTitleAsVersion\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":true,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"GitHub"},{"id":"org.dolphinemu.dolphinemu","url":"https://dolphin-emu.org/download/?ref=btn","author":"dolphin-emu.org","name":"Dolphin Emulator (Dev build)","apkUrls":"[[\"182947822-dolphin-master-2503a-280.apk\",\"https://dl.dolphin-emu.org/builds/b7/5c/dolphin-master-2503a-280.apk\"]]","preferredApkIndex":0,"additionalSettings":"{\"intermediateLink\":[],\"customLinkFilterRegex\":\"https:\\\\/\\\\/dl.dolphin-emu.org\\\\/builds.+dolphin-master-.+.apk\",\"filterByLinkText\":false,\"skipSort\":false,\"reverseSort\":false,\"sortByLastLinkSegment\":true,\"versionExtractWholePage\":false,\"requestHeader\":[{\"requestHeader\":\"User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36\"}],\"defaultPseudoVersioningMethod\":\"partialAPKHash\",\"trackOnly\":false,\"versionExtractionRegEx\":\"dolphin-master-(.+).apk\",\"matchGroupToUse\":\"$1\",\"versionDetection\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"Dolphin Emulator (Dev build)\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"HTML"},{"id":"org.dolphinemu.dolphinemu","url":"https://dolphin-emu.org/download/?ref=btn","author":"dolphin-emu.org","name":"Dolphin Emulator","apkUrls":"[[\"202199666-dolphin-2503a.apk\",\"https://dl.dolphin-emu.org/releases/2503a/dolphin-2503a.apk\"]]","preferredApkIndex":0,"additionalSettings":"{\"intermediateLink\":[],\"customLinkFilterRegex\":\"https:\\\\/\\\\/dl.dolphin-emu.org\\\\/releases.+dolphin.+.apk\",\"filterByLinkText\":false,\"skipSort\":false,\"reverseSort\":false,\"sortByLastLinkSegment\":true,\"versionExtractWholePage\":false,\"requestHeader\":[{\"requestHeader\":\"User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36\"}],\"defaultPseudoVersioningMethod\":\"partialAPKHash\",\"trackOnly\":false,\"versionExtractionRegEx\":\"/releases/.+/dolphin-(.+).apk\",\"matchGroupToUse\":\"$1\",\"versionDetection\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"Dolphin Emulator (Stable)\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"HTML"},{"id":"com.github.stenzek.duckstation","url":"https://downloads.duckstation.org/android/","author":"downloads.duckstation.org","name":"DuckStation (Beta)","preferredApkIndex":0,"additionalSettings":"{\"intermediateLink\":[],\"customLinkFilterRegex\":\"https://www.duckstation.org/android/duckstation-(beta|android).apk\",\"filterByLinkText\":true,\"skipSort\":false,\"reverseSort\":false,\"sortByLastLinkSegment\":false,\"versionExtractWholePage\":true,\"requestHeader\":[{\"requestHeader\":\"User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36\"}],\"defaultPseudoVersioningMethod\":\"partialAPKHash\",\"trackOnly\":false,\"versionExtractionRegEx\":\"