Skip to content

Commit 7f97c76

Browse files
committed
fix(adblock): set exp features differently
1 parent 9ae7591 commit 7f97c76

File tree

2 files changed

+22
-39
lines changed

2 files changed

+22
-39
lines changed

adblock/adblock.js

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,8 @@ const retryCounter = (slotId, action) => {
5858
// @ts-expect-error: Events are not defined in types
5959
await new Promise(res => Spicetify.Events.webpackLoaded.on(res));
6060
const webpackCache = loadWebpack();
61-
// @ts-expect-error: expFeatureOverride is not defined in types
62-
const { CosmosAsync, Platform, expFeatureOverride, Locale } = Spicetify;
63-
const { LocalStorageAPI } = Platform;
61+
// @ts-expect-error: createInternalMap, RemoteConfigResolver is not defined in types
62+
const { CosmosAsync, Platform, createInternalMap, Locale, RemoteConfigResolver } = Spicetify;
6463
const { AdManagers } = Platform;
6564
const { audio } = AdManagers;
6665
const { UserAPI } = Platform;
@@ -194,29 +193,19 @@ const retryCounter = (slotId, action) => {
194193
const enableExperimentalFeatures = async () => {
195194
try {
196195
const expFeatures = JSON.parse(localStorage.getItem("spicetify-exp-features") || "{}");
197-
const hptoEsperanto = expFeatures.enableEsperantoMigration?.value;
198-
const inAppMessages = expFeatures.enableInAppMessaging?.value;
199-
const upgradeCTA = expFeatures.hideUpgradeCTA?.value;
200-
const smartShuffle = expFeatures.enableSmartShuffle?.value;
201-
if (!hptoEsperanto)
202-
expFeatureOverride({ type: "bool", name: "enableEsperantoMigration", default: true });
203-
if (inAppMessages)
204-
expFeatureOverride({ type: "bool", name: "enableInAppMessaging", default: false });
205-
if (!upgradeCTA)
206-
expFeatureOverride({ type: "bool", name: "hideUpgradeCTA", default: true });
207-
if (smartShuffle)
208-
expFeatureOverride({ type: "bool", name: "enableSmartShuffle", default: false });
209-
const expFeaturesOverride = LocalStorageAPI.getItem("remote-config-overrides");
210-
if (!expFeaturesOverride)
211-
return;
196+
expFeatures.enableEsperantoMigration.value = true;
197+
expFeatures.enableInAppMessaging.value = false;
198+
expFeatures.hideUpgradeCTA.value = true;
199+
expFeatures.enableSmartShuffle.value = false;
200+
localStorage.setItem("spicetify-exp-features", JSON.stringify(expFeatures));
212201
const overrides = {
213-
...expFeaturesOverride,
214202
enableEsperantoMigration: true,
215203
enableInAppMessaging: false,
216204
hideUpgradeCTA: true,
217205
enableSmartShuffle: false,
218206
};
219-
LocalStorageAPI.setItem("remote-config-overrides", overrides);
207+
const map = createInternalMap(overrides);
208+
RemoteConfigResolver.value.setOverrides(map);
220209
}
221210
catch (error) {
222211
console.error("adblockify: Failed inside `enableExperimentalFeatures` function\n", error);
@@ -227,7 +216,8 @@ const retryCounter = (slotId, action) => {
227216
// to enable one day if disabling `enableInAppMessages` exp feature doesn't work
228217
//runObserver();
229218
productState.subValues({ keys: ["ads", "catalogue", "product", "type"] }, () => configureAdManagers());
230-
setTimeout(enableExperimentalFeatures, 1 * 1500);
219+
enableExperimentalFeatures();
220+
setTimeout(enableExperimentalFeatures, 3 * 1000);
231221
// Update slot settings after 5 seconds... idk why, don't ask me why, it just works
232222
setTimeout(intervalUpdateSlotSettings, 5 * 1000);
233223
})();

adblock/adblock.ts

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,8 @@ const retryCounter = (slotId: string, action: "increment" | "clear" | "get") =>
111111
await new Promise(res => Spicetify.Events.webpackLoaded.on(res));
112112
const webpackCache = loadWebpack();
113113

114-
// @ts-expect-error: expFeatureOverride is not defined in types
115-
const { CosmosAsync, Platform, expFeatureOverride, Locale } = Spicetify;
116-
const { LocalStorageAPI } = Platform;
114+
// @ts-expect-error: createInternalMap, RemoteConfigResolver is not defined in types
115+
const { CosmosAsync, Platform, createInternalMap, Locale, RemoteConfigResolver } = Spicetify;
117116
const { AdManagers } = Platform;
118117
const { audio }: AdManagers = AdManagers;
119118
const { UserAPI } = Platform;
@@ -251,27 +250,20 @@ const retryCounter = (slotId: string, action: "increment" | "clear" | "get") =>
251250
const enableExperimentalFeatures = async () => {
252251
try {
253252
const expFeatures = JSON.parse(localStorage.getItem("spicetify-exp-features") || "{}");
254-
const hptoEsperanto = expFeatures.enableEsperantoMigration?.value;
255-
const inAppMessages = expFeatures.enableInAppMessaging?.value;
256-
const upgradeCTA = expFeatures.hideUpgradeCTA?.value;
257-
const smartShuffle = expFeatures.enableSmartShuffle?.value;
258-
259-
if (!hptoEsperanto) expFeatureOverride({ type: "bool", name: "enableEsperantoMigration", default: true });
260-
if (inAppMessages) expFeatureOverride({ type: "bool", name: "enableInAppMessaging", default: false });
261-
if (!upgradeCTA) expFeatureOverride({ type: "bool", name: "hideUpgradeCTA", default: true });
262-
if (smartShuffle) expFeatureOverride({ type: "bool", name: "enableSmartShuffle", default: false });
263-
264-
const expFeaturesOverride = LocalStorageAPI.getItem("remote-config-overrides");
265-
if (!expFeaturesOverride) return;
253+
expFeatures.enableEsperantoMigration.value = true;
254+
expFeatures.enableInAppMessaging.value = false;
255+
expFeatures.hideUpgradeCTA.value = true;
256+
expFeatures.enableSmartShuffle.value = false;
257+
localStorage.setItem("spicetify-exp-features", JSON.stringify(expFeatures));
266258

267259
const overrides = {
268-
...expFeaturesOverride,
269260
enableEsperantoMigration: true,
270261
enableInAppMessaging: false,
271262
hideUpgradeCTA: true,
272263
enableSmartShuffle: false,
273264
};
274-
LocalStorageAPI.setItem("remote-config-overrides", overrides);
265+
const map = createInternalMap(overrides);
266+
RemoteConfigResolver.value.setOverrides(map);
275267
} catch (error: unknown) {
276268
console.error("adblockify: Failed inside `enableExperimentalFeatures` function\n", error);
277269
}
@@ -282,7 +274,8 @@ const retryCounter = (slotId: string, action: "increment" | "clear" | "get") =>
282274
// to enable one day if disabling `enableInAppMessages` exp feature doesn't work
283275
//runObserver();
284276
productState.subValues({ keys: ["ads", "catalogue", "product", "type"] }, () => configureAdManagers());
285-
setTimeout(enableExperimentalFeatures, 1 * 1500);
277+
enableExperimentalFeatures();
278+
setTimeout(enableExperimentalFeatures, 3 * 1000);
286279

287280
// Update slot settings after 5 seconds... idk why, don't ask me why, it just works
288281
setTimeout(intervalUpdateSlotSettings, 5 * 1000);

0 commit comments

Comments
 (0)