From 201760d441fa6aa575ed09c7c98b27e5118818a8 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Tue, 3 Oct 2023 18:31:04 +0800 Subject: [PATCH 01/16] first commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..01203e1 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# json +# json From 298e11e99009e7153dcb29cdae30d23256d1adc2 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Tue, 3 Oct 2023 18:31:22 +0800 Subject: [PATCH 02/16] JSON: feat: add JSON --- rc_rewrite_data.json | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 rc_rewrite_data.json diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json new file mode 100644 index 0000000..5327196 --- /dev/null +++ b/rc_rewrite_data.json @@ -0,0 +1,32 @@ +{[ + { + "name": "Rise", + "isEnabled": false, + "bundle_id": null, + "user_agent": "rise", + "new_non_subscriptions": {}, + "new_entitlements": {}, + "new_other_purchases": {}, + "new_subscriptions": {}, + }, + { + "name": "Rise", + "isEnabled": false, + "bundle_id": null, + "user_agent": "rise", + "new_non_subscriptions": {}, + "new_entitlements": {}, + "new_other_purchases": {}, + "new_subscriptions": {}, + }, + { + "name": "Rise", + "isEnabled": false, + "bundle_id": null, + "user_agent": "rise", + "new_non_subscriptions": {}, + "new_entitlements": {}, + "new_other_purchases": {}, + "new_subscriptions": {}, + } +]} \ No newline at end of file From 4b5bc2eb16c5f891f190937948d885ebc7e204b6 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Tue, 3 Oct 2023 18:41:12 +0800 Subject: [PATCH 03/16] JSON: fix: remove extra curly brace --- rc_rewrite_data.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 5327196..1bc313e 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -1,4 +1,4 @@ -{[ +[ { "name": "Rise", "isEnabled": false, @@ -29,4 +29,4 @@ "new_other_purchases": {}, "new_subscriptions": {}, } -]} \ No newline at end of file +] \ No newline at end of file From 6b93e12ada17179ad966d6c91a49e07e08aadf9f Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Tue, 3 Oct 2023 18:56:40 +0800 Subject: [PATCH 04/16] JSON: fix: remove extra comma --- rc_rewrite_data.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 1bc313e..8bee05d 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -7,7 +7,7 @@ "new_non_subscriptions": {}, "new_entitlements": {}, "new_other_purchases": {}, - "new_subscriptions": {}, + "new_subscriptions": {} }, { "name": "Rise", @@ -17,7 +17,7 @@ "new_non_subscriptions": {}, "new_entitlements": {}, "new_other_purchases": {}, - "new_subscriptions": {}, + "new_subscriptions": {} }, { "name": "Rise", @@ -27,6 +27,6 @@ "new_non_subscriptions": {}, "new_entitlements": {}, "new_other_purchases": {}, - "new_subscriptions": {}, + "new_subscriptions": {} } ] \ No newline at end of file From 78ef1680f290fcca018fb732ef3c40e44e1df960 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Tue, 3 Oct 2023 23:40:18 +0800 Subject: [PATCH 05/16] JSON: feat: add Rise, Stoic, Rond, Fiery Feeds, Blink Shell, Planny, Obscura 4 --- rc_rewrite_data.json | 119 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 100 insertions(+), 19 deletions(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 8bee05d..5ceaa2a 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -1,32 +1,113 @@ [ { "name": "Rise", - "isEnabled": false, + "isEnabled": true, "bundle_id": null, - "user_agent": "rise", - "new_non_subscriptions": {}, - "new_entitlements": {}, - "new_other_purchases": {}, - "new_subscriptions": {} + "user_agent": "Rise", + "new_entitlements": [ + "Pro" + ], + "new_subscriptions": [ + "com.risesci.nyx.subscriptions.annual" + ], + "new_non_subscriptions": [], + "new_other_purchases": [] }, { "name": "Rise", - "isEnabled": false, - "bundle_id": null, + "isEnabled": true, + "bundle_id": "com.benricemccarthy.obscura-2", "user_agent": "rise", - "new_non_subscriptions": {}, - "new_entitlements": {}, - "new_other_purchases": {}, - "new_subscriptions": {} + "new_entitlements": [ + "rc_entitlement_obscura_ultra" + ], + "new_subscriptions": [ + "com.benricemccarthy.obscura4.obscura_ultra_sub_annual" + ], + "new_non_subscriptions": [], + "new_other_purchases": [] }, { - "name": "Rise", - "isEnabled": false, + "name": "Stoic", + "isEnabled": true, + "bundle_id": "com.mlobodzinski.Stoic", + "user_agent": null, + "new_entitlements": [ + "premium" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "com.mlobodzinski.Stoic.lifetime" + ], + "new_other_purchases": [] + }, + { + "name": "Rond", + "isEnabled": true, + "bundle_id": "com.xfge.LifeEasy", + "user_agent": null, + "new_entitlements": [ + "pro" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "lifetime_reference" + ], + "new_other_purchases": [] + }, + { + "name": "Fiery Feeds", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [ + "com.fieryfeeds.pro" + ], + "new_subscriptions": [ + "net.voidstern.fieryfeeds.12months" + ], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, + { + "name": "Blink Shell", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [ + "build", + "early_access_features", + "plus", + "unlimited_screen_time" + ], + "new_subscriptions": [ + "blink_plus_build_1m_999" + ], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, + { + "name": "Planny", + "isEnabled": true, "bundle_id": null, - "user_agent": "rise", - "new_non_subscriptions": {}, - "new_entitlements": {}, - "new_other_purchases": {}, - "new_subscriptions": {} + "user_agent": "Planny", + "new_entitlements": [ + "premium" + ], + "new_subscriptions": [ + "com.kevinreutter.Sagittarius.Premium1Year" + ], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, + { + "name": "", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [], + "new_subscriptions": [], + "new_non_subscriptions": [], + "new_other_purchases": [] } ] \ No newline at end of file From ed5e66124f7f91b44c60598e33001858b7a2f2f0 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 00:21:05 +0800 Subject: [PATCH 06/16] JSON: fix: rename Obscura 4 --- rc_rewrite_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 5ceaa2a..f345b53 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -14,7 +14,7 @@ "new_other_purchases": [] }, { - "name": "Rise", + "name": "Obscura 4", "isEnabled": true, "bundle_id": "com.benricemccarthy.obscura-2", "user_agent": "rise", From 1ba04ddec40f45815521a3a8995ee80979519f7d Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 01:11:59 +0800 Subject: [PATCH 07/16] JSON: fix: add Blink Shell bundle ID --- rc_rewrite_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index f345b53..4da9ebf 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -72,7 +72,7 @@ { "name": "Blink Shell", "isEnabled": true, - "bundle_id": "", + "bundle_id": "sh.blink.blinkshell", "user_agent": null, "new_entitlements": [ "build", From 8cf95dc648bafccbd31c396f5b4920a0a847598d Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 01:50:32 +0800 Subject: [PATCH 08/16] JSON: fix: Rond --- rc_rewrite_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 4da9ebf..341be22 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -51,7 +51,7 @@ ], "new_subscriptions": [], "new_non_subscriptions": [ - "lifetime_reference" + "lifetime_108" ], "new_other_purchases": [] }, From 90194c35c40318f497bf0e2457007178e47e3e13 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 01:52:04 +0800 Subject: [PATCH 09/16] JSON: fix: Rond --- rc_rewrite_data.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 341be22..56afbd8 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -49,9 +49,11 @@ "new_entitlements": [ "pro" ], - "new_subscriptions": [], + "new_subscriptions": [ + "rond_annual" + ], "new_non_subscriptions": [ - "lifetime_108" + // "lifetime_108" ], "new_other_purchases": [] }, From 6d91ef2b85d881ff5ec6d918632c9540c71219ad Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 01:52:31 +0800 Subject: [PATCH 10/16] JSON: fix: Rond --- rc_rewrite_data.json | 1 - 1 file changed, 1 deletion(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 56afbd8..1649185 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -53,7 +53,6 @@ "rond_annual" ], "new_non_subscriptions": [ - // "lifetime_108" ], "new_other_purchases": [] }, From 8c624bcfd643500c8b36bd4b3469f0f4fd6600ff Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 01:55:10 +0800 Subject: [PATCH 11/16] JSON: fix: add Fiery Feeds bundle ID --- rc_rewrite_data.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 1649185..95a11a1 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -52,14 +52,13 @@ "new_subscriptions": [ "rond_annual" ], - "new_non_subscriptions": [ - ], + "new_non_subscriptions": [], "new_other_purchases": [] }, { "name": "Fiery Feeds", "isEnabled": true, - "bundle_id": "", + "bundle_id": "net.voidstern.fiery-feeds", "user_agent": null, "new_entitlements": [ "com.fieryfeeds.pro" From 398956fd94f6f9f2e4436202cd2d67ee9f8cb4f6 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Wed, 4 Oct 2023 02:16:00 +0800 Subject: [PATCH 12/16] JSON: fix: correct Obscura 4 bundle ID --- rc_rewrite_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 95a11a1..a862f94 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -16,7 +16,7 @@ { "name": "Obscura 4", "isEnabled": true, - "bundle_id": "com.benricemccarthy.obscura-2", + "bundle_id": "com.benricemccarthy.obscura-3", "user_agent": "rise", "new_entitlements": [ "rc_entitlement_obscura_ultra" From 2a29def71bc2ca97fcb23abaded7a9752d62bbcc Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Fri, 6 Oct 2023 19:45:38 +0800 Subject: [PATCH 13/16] feat: add JS rewrite script and add APTV to JSON --- rc_rewrite.js | 288 +++++++++++++++++++++++++++++++++++++++++++ rc_rewrite_data.json | 24 ++++ 2 files changed, 312 insertions(+) create mode 100644 rc_rewrite.js diff --git a/rc_rewrite.js b/rc_rewrite.js new file mode 100644 index 0000000..47f0812 --- /dev/null +++ b/rc_rewrite.js @@ -0,0 +1,288 @@ +const storageKeyName = "rc_rewrite_ddata"; +const jobTitle = "update_rc"; +const notificationTitle = "Update RevenueCat JSON" + +let URL = ""; +// URL = 'https://jsonplaceholder.typicode.com/todos/1'; +// URL = "https://stackoverflow.com/questions/38708550/difference-between-return-await-promise-and-return-promise" +// URL = "http://localhost:8000/rc_rewrite_data.json"; +// URL = "https://api.jsonbin.io/v3/qs/651be8b30574da7622b3b246"; +URL = "https://git.ykz.app/PorridgePi/json/raw/branch/main/rc_rewrite_data.json"; +// URL = "https://porridgepi.github.io/json/rc_rewrite_data.json" + +requestOpts = { + // mode:'no-cors', + cache: "no-store", + headers: { + // "Origin": "https://git.ykz.app/", + // "Accept": "application/json" + } +} + +const isSurge = typeof $httpClient != "undefined"; +const isQuanX = typeof $task != "undefined"; +const isLoon = typeof $loon != "undefined"; +const isJSBox = typeof $app != "undefined" && typeof $http != "undefined"; +const isNode = typeof require == "function" && !isJSBox; + +function timeout(ms, promise) { + return new Promise((resolve, reject) => { + const timer = setTimeout(() => { + reject(new Error("Timed out after " + String(ms) + "ms")) + }, ms) + + promise + .then(value => { + clearTimeout(timer) + resolve(value) + }) + .catch(reason => { + clearTimeout(timer) + reject(reason) + }) + }) +} + +async function fetchJSON(url, opts = {}) { + if (isQuanX) { + return fetch(url, { + ...opts + }) + .then(response => { + if (false && !response.ok) { + console.log("ERROR(fetchJSON): Response not okay, HTTP " + String(response.status) + ' ' + response.statusText); + throw new Error("Response not ok"); + } + return response.text() + .then(text => { + try { + return JSON.parse(text); + } catch (err) { + console.log("ERROR(fetchJSON): Response body not JSON" + String(err)); + console.log(text); + throw new Error("Response body not JSON"); + } + }) + }); + } + if (isNode) { + var resp = await $http.get(url, opts); + try { + return JSON.parse(resp.body); + } catch (err) { + console.log("ERROR(fetchJSON): Response body not JSON" + String(err)); + console.log(text); + throw new Error("Response body not JSON"); + } + } +} + +async function getRewriteItems() { + try { + let toReturn = JSON.parse($prefs.valueForKey(storageKeyName)); + console.log("INFO: Retrieved local copy.") + return toReturn; + } catch (err) { + console.log("ERROR(getRewriteItems): Unable to access local copy - " + err); + console.log("INFO: Fetching new copy..."); + try { + if (isQuanX) return await timeout(1000, fetchJSON(URL, requestOpts)); // add await if using nested try-catch - https://stackoverflow.com/a/42750371 + if (isNode) return fetchJSON(URL, requestOpts); + } catch (err) { + console.log("ERROR(getRewriteItems): " + err); + throw new Error("Unable to retrieve rewrite items."); + } + } +} + + +async function onResponse(context, url, request, response) { + console.log("INFO: Running..."); + + let rewriteItems = {} + try { + rewriteItems = await getRewriteItems(); + // console.log(JSON.stringify(rewriteItems)); + } catch (err) { + console.log("ERROR(onResponse): " + err); + } + + let bundle_id = request.headers["X-Client-Bundle-ID"]; + let user_agent = request.headers["User-Agent"]; + + for (let i = 0; i < rewriteItems.length; i++) { + rewriteItem = rewriteItems[i] + // console.log(JSON.stringify(rewriteItem)); + console.log(rewriteItem.name); + + let bundleIdMatched = bundle_id != null && bundle_id == rewriteItem.bundle_id + let userAgentMatched = user_agent != null && user_agent.includes(rewriteItem.user_agent) + if (!bundleIdMatched && !userAgentMatched) { + if (i == rewriteItems.length - 1) { // last + console.log(String(bundle_id) + " " + String(user_agent)); + break; + } + continue; + } + console.log("MATCHED!"); + + body = { + ...response.body + } + + if (body.subscriber == undefined) body.subscriber = {} + + console.log(JSON.stringify(body)); + + let now = new Date(); + let MS_PER_MINUTE = 60000; + let timeToUse = new Date(now - 0 * MS_PER_MINUTE); // CAN CHANGE MANUAL DELAY + if (body.request_date == undefined) body.request_date = timeToUse.toISOString().split('.')[0] + "Z"; + if (body.request_date_ms == undefined) body.request_date_ms = Date.parse(timeToUse); + if (body.subscriber.first_seen == undefined) body.subscriber.first_seen = timeToUse.toISOString().split('.')[0] + "Z"; + if (body.subscriber.last_seen == undefined) body.subscriber.last_seen = timeToUse.toISOString().split('.')[0] + "Z"; + if (body.subscriber.management_url == undefined) body.subscriber.management_url = null; + + const uuidString = url.slice(-32); + console.log(uuidString) + const uuid = uuidString.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/g, '$1-$2-$3-$4-$5') + console.log(uuid) + + if (body.subscriber.original_app_user_id == undefined) body.subscriber.original_app_user_id = uuid; + if (body.subscriber.original_application_version == undefined) body.subscriber.original_application_version = "0.0"; + if (body.subscriber.original_purchase_date == undefined) body.subscriber.original_purchase_date = now.toISOString().split('.')[0] + "Z"; + body.subscriber.entitlements = { + ...body.subscriber.entitlements + }; + body.subscriber.subscriptions = { + ...body.subscriber.subscriptions + }; + body.subscriber.non_subscriptions = { + ...body.subscriber.non_subscriptions + }; + body.subscriber.other_purchases = { + ...body.subscriber.other_purchases + }; + + let isSubscription = rewriteItem.new_subscriptions.length > 0; + let isNonSubscription = rewriteItem.new_non_subscriptions.length > 0; + let product_id = "" + + console.log(isNonSubscription); + console.log(isSubscription); + + console.log(body.subscriber.entitlements); + + if (isSubscription) { + product_id = rewriteItem.new_subscriptions[0]; + for (const i of rewriteItem.new_subscriptions) { + body.subscriber.subscriptions[i] = { + "auto_resume_date": null, + "billing_issues_detected_at": null, + "expires_date": "2099-12-31T23:59:59Z", + "grace_period_expires_date": null, + "is_sandbox": false, + "original_purchase_date": "2020-01-01T00:00:00Z", + "period_type": "normal", + "purchase_date": "2020-01-01T00:00:00Z", + "refunded_at": null, + "store": "app-store", + "store_transaction_id": "", + "unsubscribe_detected_at": null + } + } + } + + if (isNonSubscription) { + product_id = rewriteItem.new_non_subscriptions[0]; + for (const i of rewriteItem.new_non_subscriptions) { + body.subscriber.non_subscriptions[i] = { + "is_sandbox": false, + "store_transaction_id": "", + "id": "", + "original_purchase_date": "2020-01-01T00:00:00Z", + "store": "app_store", + "purchase_date": "2020-01-01T00:00:00Z" + } + } + for (const i of rewriteItem.new_other_purchases) { + body.subscriber.other_purchases[i] = { + purchase_date: "2020-01-01T00:00:00Z" + } + } + } + + for (const i of rewriteItem.new_entitlements) { + body.subscriber.entitlements[i] = { + "expires_date": null, + "grace_period_expires_date": null, + "product_identifier": product_id, + "purchase_date": "2020-01-01T00:00:00Z" + } + } + + response.body = body; + response.statusCode = 200; + response.statusPhrase = "OK"; + response.headers["Content-Type"] = "application/json"; + console.log(response.body); + break; + } + + console.log("INFO: Exiting..."); + return response; +} + + +var $request, $response; + +async function main() { + console.log("Starting..."); + if (isSurge || isQuanX) { + try { + console.log(JSON.stringify($request)); + if (typeof $request == 'undefined') $request = { + url: "", + headers: { + // "X-Client-Bundle-ID": "com.benricemccarthy.obscura-2" + }, + body: "{}" + } + console.log(JSON.stringify($request)); + + if (typeof $response == 'undefined') $response = { + url: "", + headers: {}, + body: "{}" + } + url = $request.url; + $request.body = typeof $request.body != "undefined" ? JSON.parse($request.body) : {}; + $response.body = typeof $response.body != "undefined" ? JSON.parse($response.body) : {}; + } catch (err) { + console.log(err); + } + + + console.log("starting onResponse"); + try { + response = await timeout(3000, onResponse(null, url, $request, $response)); + } catch (err) { + console.log(err); + } + + if (isQuanX) { + $request.status = "HTTP/1.1 " + $request.statusCode + " " + $request.statusPhrase; + $response.status = "HTTP/1.1 " + $response.statusCode + " " + $response.statusPhrase; + $request.body = JSON.stringify($request.body); + $response.body = JSON.stringify($response.body); + } + + $done({ + status: $response.status, + headers: $response.headers, + body: $response.body + }); + } +} + +main(); diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index a862f94..064af58 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -100,6 +100,30 @@ "new_non_subscriptions": [], "new_other_purchases": [] }, + { + "name": "APTV", + "isEnabled": true, + "bundle_id": "com.kimen.aptvpro", + "user_agent": null, + "new_entitlements": [ + "pro" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "com.kimen.aptvpro.lifetime" + ], + "new_other_purchases": [] + }, + { + "name": "", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [], + "new_subscriptions": [], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, { "name": "", "isEnabled": true, From 54764654a09d49c391b0305448f5c8d599c6c6a1 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Fri, 6 Oct 2023 19:47:44 +0800 Subject: [PATCH 14/16] JSON: fix: disable APTV --- rc_rewrite_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 064af58..2dff531 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -102,7 +102,7 @@ }, { "name": "APTV", - "isEnabled": true, + "isEnabled": false, "bundle_id": "com.kimen.aptvpro", "user_agent": null, "new_entitlements": [ From 217efd4fe4b5bd3aa13d74dd974bfcc41d09ae44 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Sun, 8 Oct 2023 04:13:50 +0800 Subject: [PATCH 15/16] feat: update JSON with Miidii apps --- rc_rewrite_data.json | 86 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index 2dff531..cda7682 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -114,6 +114,92 @@ ], "new_other_purchases": [] }, + { + "name": "MD Clock", + "isEnabled": true, + "bundle_id": "tech.miidii.MDClock", + "user_agent": null, + "new_entitlements": [ + "Entitlement.Pro" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "tech.miidii.MDClock.pro" + ], + "new_other_purchases": [] + }, + { + "name": "OffScreen", + "isEnabled": true, + "bundle_id": "tech.miidii.offscreen", + "user_agent": null, + "new_entitlements": [ + "Entitlement.Pro" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "tech.miidii.offscreen.pro" + ], + "new_other_purchases": [] + }, + { + "name": "MD Vinyl", + "isEnabled": true, + "bundle_id": "tech.miidii.MDVinyl", + "user_agent": null, + "new_entitlements": [ + "Entitlement.Pro" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "tech.miidii.MDVinyl.lifetime" + ], + "new_other_purchases": [] + }, + { + "name": "MD Fonts", + "isEnabled": true, + "bundle_id": "tech.miidii.UTC", + "user_agent": null, + "new_entitlements": [ + "Entitlement.Pro" + ], + "new_subscriptions": [], + "new_non_subscriptions": [ + "tech.miidii.UTC.unlock.pro" + ], + "new_other_purchases": [] + }, + { + "name": "", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [], + "new_subscriptions": [], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, + { + "name": "", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [], + "new_subscriptions": [], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, + { + "name": "", + "isEnabled": true, + "bundle_id": "", + "user_agent": null, + "new_entitlements": [], + "new_subscriptions": [], + "new_non_subscriptions": [], + "new_other_purchases": [] + }, { "name": "", "isEnabled": true, From 1c8dab18826cbc8ec8cf16adbfe6d73a2df6de92 Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Sun, 8 Oct 2023 21:46:18 +0800 Subject: [PATCH 16/16] JSON: feat: add StressWatch --- rc_rewrite_data.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/rc_rewrite_data.json b/rc_rewrite_data.json index cda7682..15f72a7 100644 --- a/rc_rewrite_data.json +++ b/rc_rewrite_data.json @@ -171,12 +171,16 @@ "new_other_purchases": [] }, { - "name": "", + "name": "StressWatch", "isEnabled": true, - "bundle_id": "", + "bundle_id": "com.ideation.Stress", "user_agent": null, - "new_entitlements": [], - "new_subscriptions": [], + "new_entitlements": [ + "StressWatch Pro" + ], + "new_subscriptions": [ + "stress_membership_lifetime" + ], "new_non_subscriptions": [], "new_other_purchases": [] },