Brazen Framework - Subscriptions Loader

Account subscriptions manager for the Brazen user scripts framework

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greatest.deepsurf.us/scripts/424516/1847310/Brazen%20Framework%20-%20Subscriptions%20Loader.js

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
brazenvoid
版本
1.0.3
创建于
2021-04-05
更新于
2026-06-09
大小
4.2 KB
许可证
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.