Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/jsLinters/eslint.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions .idea/rantstats-extension.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v22.0.0
v22.12.0
934 changes: 934 additions & 0 deletions .yarn/releases/yarn-4.6.0.cjs

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
compressionLevel: mixed

enableGlobalCache: false

nodeLinker: node-modules

yarnPath: .yarn/releases/yarn-4.6.0.cjs
60 changes: 34 additions & 26 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,75 @@
# RantStats Extension for Rumble.com

## 1.5.0

- Fix context menu showing up on all pages instead of only Rumble video pages
- Add about page
- Add subscription gift tracking
- Add raid tracking
- Change default to not alternate colors

## 1.4.6

- Fix context menu showing up on all pages instead of only Rumble video pages
- Add About page
- Fix context menu showing up on all pages instead of only Rumble video pages
- Add About page

## 1.4.5

- Open options page when clicking icon instead of popup
- Options page design, re-work logging, general cleanup
- Add option to disable alternate colors in chat
- Only enable save button when option changed
- Fix open chat button due to Rumble change
- Add context menu to open sidebar when button is missing due to Rumble changes
- Open options page when clicking icon instead of popup
- Options page design, re-work logging, general cleanup
- Add option to disable alternate colors in chat
- Only enable save button when option changed
- Fix open chat button due to Rumble change
- Add context menu to open sidebar when button is missing due to Rumble changes

Resolved:

- [Issue #16](https://github.com/rantstats/rantstats-extension/issues/16)
- [Issue #16](https://github.com/rantstats/rantstats-extension/issues/16)

## 1.4.4

- Hide console messages for release build
- Hide console messages for release build

## 1.4.3

- Update message sending in order to handle errors
- Change open tabs to map and use tab id as key
- If message fails to send to tab, remove tab from cache map
- Fix button to show cached rants not showing for livestream playback
- Fix options not receiving updates
- Update message sending in order to handle errors
- Change open tabs to map and use tab id as key
- If message fails to send to tab, remove tab from cache map
- Fix button to show cached rants not showing for livestream playback
- Fix options not receiving updates

## 1.4.2

Detect new class name used for chat list

Resolved:

- [Issue #11](https://github.com/rantstats/rantstats-extension/issues/11)
- [Issue #11](https://github.com/rantstats/rantstats-extension/issues/11)

## 1.4.1

Fix color theme detection

Resolved:

- [Issue #9](https://github.com/rantstats/rantstats-extension/issues/9)
- [Issue #9](https://github.com/rantstats/rantstats-extension/issues/9)

## 1.4.0

Add support for showing user's badges and channel subscribers

- Store possible badges to cache
- Stores badges active for user during rant in cache
- Show badges active for user next to the username
- Stores the "notification" information in cache
- New entry for "notifications"
- Show placeholder for users without image
- Swap colors to match how Rumble uses them
- Store possible badges to cache
- Stores badges active for user during rant in cache
- Show badges active for user next to the username
- Stores the "notification" information in cache
- New entry for "notifications"
- Show placeholder for users without image
- Swap colors to match how Rumble uses them

Resolves:

- [Issue #6](https://github.com/rantstats/rantstats-extension/issues/6)
- [Issue #7](https://github.com/rantstats/rantstats-extension/issues/7)
- [Issue #6](https://github.com/rantstats/rantstats-extension/issues/6)
- [Issue #7](https://github.com/rantstats/rantstats-extension/issues/7)

## 1.3.0

Expand Down
48 changes: 24 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ Additionally, all cached data can be viewed and managed from the Cached Rants pa

To add to your browser, download the extension from:

- [Chrome](https://chrome.google.com/webstore/detail/rantstats-extension-for-r/liahjgfmodjgeakahommamnmbjgicpmh)
- [Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/dfhpfnfhllhmfmkcambimnafeklpgkdm)
- [Chrome](https://chrome.google.com/webstore/detail/rantstats-extension-for-r/liahjgfmodjgeakahommamnmbjgicpmh)
- [Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/dfhpfnfhllhmfmkcambimnafeklpgkdm)

**Permissions**

Extensions require the following permissions:

- `storage`: save options and stream data to local browser storage
- `unlimitedStorage`: removes storage limit (see current usage in options page)
- `tabs`: used to sync options and other data between pages running extension and to open the Cached Rants page
- `contextMenus`: adds option to context menu to open Rant Stats sidebar (or popup). Useful when Rumble changes layout and breaks button in page.
- `storage`: save options and stream data to local browser storage
- `unlimitedStorage`: removes storage limit (see current usage in options page)
- `tabs`: used to sync options and other data between pages running extension and to open the Cached Rants page
- `contextMenus`: adds option to context menu to open Rant Stats sidebar (or popup). Useful when Rumble changes layout and breaks button in page.

## Sidebar

Expand Down Expand Up @@ -79,10 +79,10 @@ Change the order Rants are displayed. Synced across all opened sidebars/popups a

Options:

- `Oldest To Newest`: Sort Rants by the post date from oldest to newest (Default)
- `Newest To Oldest`: Sort Rants by the post date from newest to oldest
- `Highest To Lowest`: Sort Rants by the price from high to low
- `Lowest To Highest`: Sort Rants by the price from low to high
- `Oldest To Newest`: Sort Rants by the post date from oldest to newest (Default)
- `Newest To Oldest`: Sort Rants by the post date from newest to oldest
- `Highest To Lowest`: Sort Rants by the price from high to low
- `Lowest To Highest`: Sort Rants by the price from low to high

**Sync History**

Expand All @@ -94,20 +94,20 @@ To manually remove items, open the stream in the Cached Rants page and click "De

Options:

- Minimum 1 day
- No maximum
- Default: 30 days
- Minimum 1 day
- No maximum
- Default: 30 days

**Theme**

Specify the color theme to use for the extension sidebar and pages.

Options:

- `Follow Rumble.com`: Follow the theme of Rumble.com (Default)
- `System`: Follow the system's theme settings regardless of Rumble's settings
- `Dark`: Always use dark mode regardless of Rumble's settings
- `Light`: Always use light mode regardless of Rumble's settings
- `Follow Rumble.com`: Follow the theme of Rumble.com (Default)
- `System`: Follow the system's theme settings regardless of Rumble's settings
- `Dark`: Always use dark mode regardless of Rumble's settings
- `Light`: Always use light mode regardless of Rumble's settings

**Alternate Colors**

Expand All @@ -121,8 +121,8 @@ Note: the sidebar can always be moved to a popup even if this isn't checked.

Options:

- Unchecked: display as sidebar (Default)
- Checked: open as popup
- Unchecked: display as sidebar (Default)
- Checked: open as popup

### Page Links

Expand Down Expand Up @@ -188,8 +188,8 @@ See [CHANGELOG](CHANGELOG.md)

If you want to support me:

- [PayPal](https://www.paypal.me/stevencrader)
- [$craders](https://www.cash.app/$craders)
- [Venmo](https://venmo.com/code?user_id=467277291978752568&created=1654152122)
- [X (Rant Stats)](https://x.com/stevencrader)
- [X (Me)](https://x.com/rantstats_com)
- [PayPal](https://www.paypal.me/stevencrader)
- [$craders](https://www.cash.app/$craders)
- [Venmo](https://venmo.com/code?user_id=467277291978752568&created=1654152122)
- [X (Rant Stats)](https://x.com/stevencrader)
- [X (Me)](https://x.com/rantstats_com)
116 changes: 116 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
const js = require("@eslint/js")
const tseslint = require("@typescript-eslint/eslint-plugin")
const tsparser = require("@typescript-eslint/parser")
const importPlugin = require("eslint-plugin-import")
const prettier = require("eslint-plugin-prettier")
const sonarjs = require("eslint-plugin-sonarjs")
const jsdoc = require("eslint-plugin-jsdoc")

module.exports = [
{
files: ["**/*.ts"],
languageOptions: {
parser: tsparser,
parserOptions: {
project: "./tsconfig-eslint.json",
},
globals: {
console: "readonly",
setTimeout: "readonly",
setInterval: "readonly",
clearTimeout: "readonly",
clearInterval: "readonly",
Promise: "readonly",
Object: "readonly",
Array: "readonly",
String: "readonly",
Number: "readonly",
Boolean: "readonly",
Map: "readonly",
Set: "readonly",
JSON: "readonly",
Error: "readonly",
Date: "readonly",
document: "readonly",
window: "readonly",
chrome: "readonly",
MutationObserver: "readonly",
Node: "readonly",
HTMLElement: "readonly",
Element: "readonly",
NodeList: "readonly",
Event: "readonly",
MessageEvent: "readonly",
XMLHttpRequest: "readonly",
Headers: "readonly",
Request: "readonly",
Response: "readonly",
fetch: "readonly",
FormData: "readonly",
DEBUG: "readonly",
},
},
plugins: {
"@typescript-eslint": tseslint,
import: importPlugin,
prettier,
sonarjs,
jsdoc,
},
rules: {
...js.configs.recommended.rules,
...tseslint.configs["recommended"].rules,
...sonarjs.configs.recommended.rules,
...jsdoc.configs.recommended.rules,
"prettier/prettier": "error",
"sonarjs/todo-tag": "warn",
"import/no-extraneous-dependencies": ["error", { devDependencies: true }],
"no-underscore-dangle": "off",
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
"@typescript-eslint/explicit-function-return-type": "error",
"no-plusplus": "off",
"import/prefer-default-export": "off",
"import/newline-after-import": "error",
"import/order": ["error", { "newlines-between": "always" }],
"no-return-await": "off",
"no-await-in-loop": "off",
"no-console": ["error", { allow: ["debug", "warn", "error"] }],
"@typescript-eslint/no-use-before-define": "warn",
"@typescript-eslint/return-await": ["error", "in-try-catch"],
"jsdoc/require-param-type": 0,
"jsdoc/require-returns-type": 0,
"jsdoc/require-jsdoc": [
"error",
{
contexts: ["TSInterfaceDeclaration", "TSTypeAliasDeclaration", "TSEnumDeclaration"],
require: {
ArrowFunctionExpression: true,
ClassDeclaration: true,
ClassExpression: true,
FunctionDeclaration: true,
FunctionExpression: true,
MethodDefinition: true,
},
},
],
semi: ["error", "never"],
},
settings: {
"import/parsers": {
"@typescript-eslint/parser": [".ts"],
},
"import/resolver": {
typescript: {
alwaysTryTypes: true,
project: "./",
},
},
},
},
{
files: ["**/*.test.ts", "test/*.ts", "test/**/*.ts"],
rules: {
"sonarjs/no-duplicate-string": "off",
},
},
]
Loading
Loading