Skip to content

Instantly share code, notes, and snippets.

@jithatsonei
Last active September 27, 2025 23:15
Show Gist options
  • Select an option

  • Save jithatsonei/22592380dc1a721649eaa0fc8041891b to your computer and use it in GitHub Desktop.

Select an option

Save jithatsonei/22592380dc1a721649eaa0fc8041891b to your computer and use it in GitHub Desktop.
The Business Journal paywall bypass userscript
// ==UserScript==
// @name BizJournals Auto-Unblock
// @namespace https://bizjournals.com/
// @version 20250927-2
// @icon https://www.bizjournals.com/favicon.ico
// @description Attempts to utilize a hidden nuxt function to bypass Business Journal paywalls
// @author ji~
// @updateURL https://gist.githubusercontent.com/jithatsonei/22592380dc1a721649eaa0fc8041891b/raw
// @downloadURL https://gist.githubusercontent.com/jithatsonei/22592380dc1a721649eaa0fc8041891b/raw
// @match *://*.bizjournals.com/*
// @run-at document-end
// @grant none
// ==/UserScript==
(function() {
'use strict';
function tryUnblock() {
const root = document.getElementById('__nuxt');
if (!root) return false;
const app = root.__vue_app__ || root.__vueParentComponent?.appContext?.app;
if (!app) return false;
const pinia = app.config?.globalProperties?.$pinia || app._context?.provides?.pinia;
if (!pinia || !pinia._s) return false;
let store = pinia._s.get('content') || pinia._s.get('Content');
if (!store) {
for (const [id, s] of pinia._s) {
if (typeof s?.unblock === 'function') {
store = s;
console.log(`[BizJournals Auto-Unblock] Found unblock() on store "${id}"`);
break;
}
}
}
if (!store) return false;
try {
const result = store.unblock();
console.log(`[BizJournals Auto-Unblock] unblock() called`, { result, state: { ...store.$state } });
} catch (err) { console.warn(`[BizJournals Auto-Unblock] Error calling unblock():`, err); }
return true;
}
let attempts = 0;
const maxAttempts = 5;
const interval = setInterval(() => {
attempts++;
if (tryUnblock() || attempts >= maxAttempts) {
clearInterval(interval);
}
}, 500);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment