Brazen Framework - Subscriptions Loader

Account subscriptions manager for the Brazen user scripts framework

Tento skript by neměl být instalován přímo. Jedná se o knihovnu, kterou by měly jiné skripty využívat pomocí meta příkazu // @require https://update.greasyfork.org/scripts/424516/1847310/Brazen%20Framework%20-%20Subscriptions%20Loader.js

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

Autor
brazenvoid
Verze
1.0.3
Vytvořeno
05. 04. 2021
Aktualizováno
09. 06. 2026
velikost
4,2 KB
Licence
GPL-3.0-only

Brazen Framework — Subscriptions Loader (developer guide)

Optional. Crawl logged-in subscription listing pages and cache channel names for a hide subscribed filter.

Greasy Fork: Subscriptions Loader · @require before Framework core


When to use

Sites where users subscribe to creators and you want to hide their content without maintaining a manual list. Requires the user to be logged in (isUserLoggedIn: true in framework config).


Setup

1. Framework wiring

// constructor
this._setupSubscriptionLoader()

// after loader exists — register one or more sources
this._subscriptionsLoader.addConfig({
  url: 'https://example.com/my/subscriptions',
  getPageCount: (sandbox) => /* int from first page DOM */,
  getPageUrl: (baseUrl, pageNo) => /* paginated URL */,
  subscriptionNameSelector: '.sub-name',
  subscriptionsCountSelector: '.sub-count',  // element whose page contains total count
})

2. Filter

this._addSubscriptionsFilter(
  () => true,  // exclusionsCallback — return false to skip filter on this page
  (item) => item.find('.uploader').text() || false,  // username or false to skip item
)

Registers:

  • FILTER_SUBSCRIBED_VIDEOS — flag Hide Subscribed Videos
  • STORE_SUBSCRIPTIONS — text field Account Subscriptions (cached names)

3. UI trigger

Framework _setupSubscriptionLoader creates button #subscriptions-loader (Load Subscriptions). Mount via _createSubscriptionLoaderControls() in your settings panel.

run() is invoked from that button when isUserLoggedIn() is true; otherwise an alert is shown.


addConfig shape (SubscriptionLoaderConfig)

Key Type Role
url string First page / index URL
getPageCount (sandbox: JQuery) => number Total pages (from count probe)
getPageUrl (baseUrl, pageNo) => string URL for page pageNo
subscriptionNameSelector string Selector for name text on each listing page
subscriptionsCountSelector string Selector loaded with url to read page count

Multiple configs: processed sequentially; names accumulate in one array.


run() behaviour

  1. Progress: Gathering subscriptions - 0% Complete
  2. Creates #brazen-subscriptions-loader-sandbox (hidden).
  3. For each config:
    • Load url + ' ' + subscriptionsCountSelector to probe page count.
    • getPageCount(sandbox)maxPage (ceiled).
    • For pageNo 1..maxPage: load full page, extract subscriptionNameSelector text (trimmed), push to array.
    • Progress: Gathering subscriptions - {percent}% Complete
  4. When all configs done: sandbox removed; callback with full string array.
  5. Framework handler formats names as quoted CSV in STORE_SUBSCRIPTIONS, calls save(), re-enables button.

Storage format in config field: "name1""name2""name3" (double-quote wrapped, concatenated). Filter matches via regex on username substring.

Included in normal config backup when persisted as the text field value.


Public API

Method Role
constructor(onProgressUpdate, onSubscriptionsGathered) Progress (status: string) => void; done (subscriptions: string[]) => void
addConfig(config) Append SubscriptionLoaderConfig; fluent
run() Start crawl (async via jQuery .load)

Grants

No grants on this module. jQuery .load() requires same-origin or CORS-permitted responses for subscription pages.

Requires: Framework core for _setupSubscriptionLoader and _addSubscriptionsFilter.