Skip to content
Merged

v5.62.0 #2479

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
042cc56
chore: refactor viewer roles
zunderscore Feb 20, 2024
06ff29d
fix(roles): better migration logic
zunderscore Feb 20, 2024
f7c8fb1
feat(roles): show separate username for non-English display names in …
zunderscore Feb 20, 2024
d961987
fix(roles): check user login name for role check before falling back …
zunderscore Feb 20, 2024
a17d79a
fix(variables): textPadStart and textPadEnd usages (#2416)
dennisrijsdijk Feb 20, 2024
572dba0
Merge pull request #2417 from dennisrijsdijk/v5-textpad-usages
zunderscore Feb 20, 2024
c81ea20
feat: show Unicode display name separately in most instances
zunderscore Feb 20, 2024
4dc76b8
feat: Unicode username support in chatter list/autocomplete
zunderscore Feb 20, 2024
2f79769
chore(vars): wrap role vars in try-catch to account for user lookup f…
zunderscore Feb 20, 2024
eeff65d
feat(rewards): backend, partial frontend of reward redemption mgmt
zunderscore Feb 20, 2024
f743c0a
fix(chat): fix autocomplete
zunderscore Feb 21, 2024
5e0f33d
fix(quick actions): Fix renaming quick actions showing a UI error and…
dennisrijsdijk Feb 21, 2024
50f3903
fix(chat): more better autocomplete handling
zunderscore Feb 21, 2024
d3f565c
fix(roles): use channel search to migrate Unicode display name
zunderscore Feb 21, 2024
55b3745
fix(roles): fix legacy role import
zunderscore Feb 21, 2024
ecf5347
fix: fix Stream Preview window destroy
zunderscore Feb 21, 2024
3f7c7d6
Merge branch 'v5' into v5-role-refactor
zunderscore Feb 21, 2024
b06fc60
Merge branch 'v5' into v5-fix-quick-action-rename
zunderscore Feb 21, 2024
4fae2ea
Merge pull request #2420 from dennisrijsdijk/v5-fix-quick-action-rename
zunderscore Feb 21, 2024
3066093
Merge branch 'v5' into v5-role-refactor
zunderscore Feb 21, 2024
e15f2b7
Merge branch 'v5' into v5-channel-reward-queue
zunderscore Feb 21, 2024
7b52faa
fix:missing autodisconnect #2423
CKY- Feb 21, 2024
293db5a
fix typo
CKY- Feb 21, 2024
41d11ed
Merge branch 'v5' into v5-update-disconnect-alert
zunderscore Feb 22, 2024
1dd5290
Merge pull request #2424 from CKY-/v5-update-disconnect-alert
zunderscore Feb 22, 2024
4d3d49a
chore(chat): send chat messages over REST
zunderscore Feb 22, 2024
25c4d01
Merge branch 'v5' into v5-role-refactor
zunderscore Feb 22, 2024
64927e3
fix: cleanup fronendCommunicator errors when renderWindow destroyed
zunderscore Feb 23, 2024
8ea2c97
Merge branch 'v5' into v5-role-refactor
zunderscore Feb 23, 2024
b20dad7
fix: renderWindow destroyed issue in HttpServerManager
zunderscore Feb 23, 2024
6d2d066
Merge branch 'v5' into v5-role-refactor
zunderscore Feb 23, 2024
b4c61d6
feat(vars): add pretty print option to $convertToJSON (#2422)
zunderscore Feb 23, 2024
fb185b3
fix: try catch batch user requests from Twitch
zunderscore Feb 23, 2024
2e9dfeb
Merge pull request #2427 from crowbartools/v5-role-refactor
zunderscore Feb 23, 2024
e6a1311
chore(chat): update chat settings UI
zunderscore Feb 24, 2024
26975bb
fix(effects): fix parsing error with Create Clip customVariable tooltip
zunderscore Feb 25, 2024
5967d6a
fix(auth): immediately logout on most instances of token refresh fail
zunderscore Feb 25, 2024
bd0d92e
fix(overlays): URI encode overlay instance names to account for speci…
zunderscore Feb 25, 2024
a1ae3b2
fix(effects): allows vars in Update Channel Reward cost (#2410)
zunderscore Feb 26, 2024
2f770a9
fix(roles): get all chat roles when doing role filter/permission chec…
zunderscore Feb 26, 2024
9f627fa
fix(effects): fix Create Clip URL effect output, better wait handlng …
zunderscore Feb 28, 2024
a86ae0d
fix: always fully destroy main window on close
zunderscore Feb 28, 2024
360a3dd
feat(scripts): stop all custom scripts on app close (#2431)
zunderscore Feb 28, 2024
1613669
5.62.0-beta1
zunderscore Mar 1, 2024
3bde673
chore: username refactor (#2432)
zunderscore Mar 1, 2024
a3c6e83
fix(roles): better resiliency/user feedback when custom role migratio…
zunderscore Mar 1, 2024
a6eb4f4
fix(commands): allow subcommand required args to be reset to 0
zunderscore Mar 1, 2024
631365b
chore: update release template with Linux instructions
zunderscore Mar 3, 2024
776769c
fix(vars): continue having custom role user vars return display name
zunderscore Mar 3, 2024
d9fcaa9
fix(roles): fix triggerUiRefresh in custom roles manager
zunderscore Mar 3, 2024
4d5a29a
fix: global check for renderWindow in HttpServerManager
zunderscore Mar 3, 2024
3317f1e
fix(roles): get full list when fetching moderators for chat roles
zunderscore Mar 3, 2024
128d43d
chore: remove unnecessary EventSub delete call
zunderscore Mar 3, 2024
70d0169
fix(roles): cache mods, attempt to load mod/VIP cache at startup
zunderscore Mar 3, 2024
be8af08
fix(roles): only fetch live chat roles for tier-specific/known bot roles
zunderscore Mar 3, 2024
f3700d3
5.62.0-beta2
zunderscore Mar 3, 2024
e4083ec
feat(vars): add rawRandomCustomRoleUser
zunderscore Mar 3, 2024
2dbab93
feat: chatUserColor Var (#2439)
CKY- Mar 4, 2024
3613100
fix: force HTTP server to bind to IPV4
zunderscore Mar 4, 2024
cce45a7
chore: update outdated GitHub links
zunderscore Mar 4, 2024
e513f19
fix: beta updates now launch GitHub release page
zunderscore Mar 5, 2024
6b6f650
feat: add FLAC support to to play sound random
CKY- Mar 6, 2024
11a8ace
Merge pull request #2449 from CKY-/v5-feat-add-flac-support-random
zunderscore Mar 6, 2024
2058480
fix(commands): newly created custom commands don't increment count (#…
zunderscore Mar 7, 2024
2bbf8c9
feat: Implement UI for reward request queues
ebiggz Mar 8, 2024
c97452f
Merge branch 'v5' into v5-channel-reward-queue
ebiggz Mar 8, 2024
79366df
Merge pull request #2451 from crowbartools/v5-channel-reward-queue
zunderscore Mar 8, 2024
ced9323
feat: support Restrictions for Channel Rewards #2452
ebiggz Mar 8, 2024
4c5a52b
fix: internal web server startup race condition
zunderscore Mar 8, 2024
f17d402
chore: future OAuth scopes
zunderscore Mar 8, 2024
30ba2f9
fix:userChatColor string issue. (#2447)
CKY- Mar 8, 2024
4b6bc89
fix(chat): autocomplete search matching
zunderscore Mar 8, 2024
df89474
feat(events): add $arg/$target to channel rewards (#1612)
zunderscore Mar 8, 2024
81dd958
feat: Add "current" convenience option for Approve/Reject Reward Rede…
ebiggz Mar 8, 2024
9d33cbc
Merge branch 'v5' of https://github.com/crowbartools/Firebot into v5
ebiggz Mar 8, 2024
4a89bf5
fix: effect dropdowns moving behind modal footers on hover #1804
ebiggz Mar 8, 2024
4652118
fix: only pull user info for role checks if ID not in metadata
zunderscore Mar 8, 2024
63522ec
fix(dashboard): fix blank Activity Feed on resize
zunderscore Mar 8, 2024
8a666b7
fix: change Save All effects dropdown to a dropup #1804
ebiggz Mar 8, 2024
a11e5ba
Merge branch 'v5' of https://github.com/crowbartools/Firebot into v5
ebiggz Mar 8, 2024
9ebda05
fix: force child windows to close when main window closes
zunderscore Mar 8, 2024
ff656fc
fix(vars): fix $objectWalkPath with mutiple nodes in path
zunderscore Mar 8, 2024
2ed311b
5.62.0-beta3
zunderscore Mar 8, 2024
fef1ff3
feat: /me Chat Effect Option (#2440)
heyaapl Mar 9, 2024
a816d54
Follow Restriction Improvements (#2456)
dennisrijsdijk Mar 9, 2024
5cbc786
feat: implement sortable columns for firebot-item-table, refactor com…
ebiggz Mar 9, 2024
6f8d59d
Merge branch 'v5' of https://github.com/crowbartools/Firebot into v5
ebiggz Mar 9, 2024
2ccd73b
fix: firebot-item-table column widths changing after dragging to reorder
ebiggz Mar 10, 2024
aa4a11e
feat: overhaul how sort tags are displayed and managed in firebot-ite…
ebiggz Mar 11, 2024
5c226ec
fix: right-align sort tag dropdown menu to more gracefully handle lon…
ebiggz Mar 11, 2024
cf49d27
fix(commands): better fallback subcommand UX (#2459)
zunderscore Mar 12, 2024
2273808
fix(commands): remove duplicate prompt, add name when deleting subcom…
zunderscore Mar 12, 2024
0676e9a
fix: add message to tag dropdown when no sort tags created
zunderscore Mar 12, 2024
646ded3
fix(effects): hide subcommand opts in Cooldown Command when tag optio…
zunderscore Mar 12, 2024
4af867c
fix: update some displayName uses
zunderscore Mar 12, 2024
c2bbce6
fix(commands/events): extension messages now trigger commands/events …
zunderscore Mar 12, 2024
6f54426
chore: remove unused utilityService ref
zunderscore Mar 12, 2024
f0f72f2
fix(commands): fix subcommand symbol/tooltip after deleting another s…
zunderscore Mar 12, 2024
3924428
feat(effects): add fallback subcommand to Cooldown Command effect (#2…
zunderscore Mar 12, 2024
03acbc9
feat(effects): overlay refresh/Clear Effects forces video/sound effec…
zunderscore Mar 12, 2024
4c498ac
feat(effects): add option for continue on overlay refresh (#2116)
zunderscore Mar 12, 2024
e01e2bf
feat: "magic" variable category listing potentially relevant custom v…
ebiggz Mar 13, 2024
2ca9473
Merge branch 'v5' of https://github.com/crowbartools/Firebot into v5
ebiggz Mar 13, 2024
148e932
fix: tweaks to hopefully ensure variable menu never clips the top of …
ebiggz Mar 14, 2024
5c9ea4a
fix: absolutely position the "what are these" tooltip for magic vars
ebiggz Mar 14, 2024
c3b3578
Fix: toggle connection effect
CKY- Mar 16, 2024
ea271d6
feat: Command menu hide item
CKY- Mar 16, 2024
baeb37b
chore: Twurple 7.1.0
zunderscore Mar 17, 2024
22c6d0d
fix: unterminated quote in follow-check
dennisrijsdijk Mar 17, 2024
0a1de6b
feat(events/vars): Ad Break Start/End, $adBreakDuration, $isAdBreakSc…
zunderscore Mar 17, 2024
747d264
chore: future OAuth scopes
zunderscore Mar 17, 2024
db78688
Merge branch 'v5' into patch-follow-restriction
zunderscore Mar 17, 2024
d779561
Merge pull request #2474 from dennisrijsdijk/patch-follow-restriction
zunderscore Mar 17, 2024
d28ccfd
Merge branch 'v5' into v5
zunderscore Mar 17, 2024
a4220d7
Merge pull request #2472 from CKY-/v5
zunderscore Mar 17, 2024
b552008
Merge branch 'v5' into v5-fix-toggle-connection
zunderscore Mar 17, 2024
ae29e69
Merge pull request #2470 from CKY-/v5-fix-toggle-connection
zunderscore Mar 17, 2024
05cde85
fix(chat): separate raid message object for raid message check (#2468)
zunderscore Mar 17, 2024
0b38328
fix: more accurate ad break end time
zunderscore Mar 17, 2024
5afc541
fix: typo with Show/Hide Command menu option
zunderscore Mar 17, 2024
8bae753
5.62.0-beta4
zunderscore Mar 17, 2024
50b69b6
fix(chat): use Twurple paginated endpoint to get chatters list
zunderscore Mar 18, 2024
5085a3b
chore(chat): update sendChatMessage to use new Twurple method
zunderscore Mar 18, 2024
72e6c91
feat(effects): add Unique mode to Set Chat Mode effect
zunderscore Mar 18, 2024
ffb9f7a
feat(effects): add Snooze Next Ad Break effect
zunderscore Mar 18, 2024
d459eac
fix(events): fix ad break Activity Feed data
zunderscore Mar 18, 2024
1f7a191
feat: Ad Break panel on stream info bar
zunderscore Mar 20, 2024
a13b73c
feat(events/vars): Scheduled Ad Break Starting Soon, $minutesUntilNex…
zunderscore Mar 20, 2024
fa94b89
feat(events/vars): OBS Input events/vars (#2473)
zunderscore Mar 21, 2024
6076f3d
fix: hide ad break timer when no upcoming scheduled ads
zunderscore Mar 21, 2024
fc2d1c9
fix(vars): round off minutes until next ad break
zunderscore Mar 22, 2024
43816e1
fix: update shorthand validation regex for magic variables
ebiggz Mar 22, 2024
dc6c185
Merge branch 'v5' of https://github.com/crowbartools/Firebot into v5
ebiggz Mar 22, 2024
682bf20
fix: internal web server now forced to listen on both IPv4 and IPv6
zunderscore Mar 22, 2024
e000fea
fix(events): more precision to upcoming ad break event
zunderscore Mar 22, 2024
8fcc37f
chore: change to secondsUntilNextAdBreak, cache next ad break time
zunderscore Mar 22, 2024
db740b3
fix(events): minor display text change
zunderscore Mar 22, 2024
ba0d830
fix(events): fix upcoming ad break event timing
zunderscore Mar 22, 2024
08dc0e2
5.62.0
zunderscore Mar 23, 2024
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
5 changes: 4 additions & 1 deletion .github/release-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@

## Linux Install
- Download Firebot-v{0}-linux-x64.tar.gz
- ?? will need further instructions
- Unpack Firebot-v{0}-linux-x64.tar.gz
- Change into the directory where you unpacked the archive
- Run the `Firebot v5` executable.
- This must either be done via a terminal window, or you will need to create a shortcut that includes the correct path for the unpacked archived as the "working directory".

**Note**: Linux does not receive auto-updates
246 changes: 130 additions & 116 deletions package-lock.json

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "firebotv5",
"version": "5.61.2",
"version": "5.62.0",
"description": "Powerful all-in-one bot for Twitch streamers.",
"main": "build/main.js",
"scripts": {
Expand Down Expand Up @@ -46,11 +46,11 @@
"@crowbartools/firebot-custom-scripts-types": "^5.53.2-6",
"@nut-tree/nut-js": "^3.1.1",
"@seald-io/nedb": "^4.0.4",
"@twurple/api": "^7.0.6",
"@twurple/auth": "^7.0.6",
"@twurple/chat": "^7.0.6",
"@twurple/eventsub-ws": "^7.0.6",
"@twurple/pubsub": "^7.0.6",
"@twurple/api": "^7.1.0",
"@twurple/auth": "^7.1.0",
"@twurple/chat": "^7.1.0",
"@twurple/eventsub-ws": "^7.1.0",
"@twurple/pubsub": "^7.1.0",
"@zunderscore/elgato-light-control": "^1.1.2",
"angular": "^1.8.0",
"angular-animate": "^1.7.8",
Expand Down Expand Up @@ -112,7 +112,7 @@
"node-hue-api": "^4.0.11",
"node-json-db": "^1.4.1",
"node-xlsx": "^0.20.0",
"obs-websocket-js": "^5.0.3",
"obs-websocket-js": "^5.0.5",
"request": "^2.85.0",
"roll": "^1.2.0",
"sanitize-filename": "^1.6.3",
Expand Down
11 changes: 9 additions & 2 deletions src/backend/app-management/electron/events/when-ready.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,12 +123,19 @@ exports.whenReady = async () => {

windowManagement.updateSplashScreenStatus("Loading custom roles...");
const customRolesManager = require("../../../roles/custom-roles-manager");
customRolesManager.loadCustomRoles();
await customRolesManager.loadCustomRoles();

windowManagement.updateSplashScreenStatus("Loading known bot list...");
const chatRolesManager = require("../../../roles/chat-roles-manager");

windowManagement.updateSplashScreenStatus("Loading known bot list...");
await chatRolesManager.cacheViewerListBots();

windowManagement.updateSplashScreenStatus("Loading channel moderators...");
await chatRolesManager.loadModerators();

windowManagement.updateSplashScreenStatus("Loading channel VIPs...");
await chatRolesManager.loadVips();

windowManagement.updateSplashScreenStatus("Loading effect queues...");
const effectQueueManager = require("../../../effects/queues/effect-queue-manager");
effectQueueManager.loadItems();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ exports.windowsAllClosed = async () => {
const scheduledTaskManager = require("../../../timers/scheduled-task-manager");
scheduledTaskManager.stop();

// Stop all custom scripts so they can clean up
const customScriptRunner = require("../../../common/handlers/custom-scripts/custom-script-runner");
await customScriptRunner.stopAllScripts();

// Unregister all shortcuts.
const hotkeyManager = require("../../../hotkeys/hotkey-manager");
hotkeyManager.unregisterAllHotkeys();
Expand Down
37 changes: 27 additions & 10 deletions src/backend/app-management/electron/window-management.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ const { settings } = require("../../common/settings-access");

setupTitlebar();


/**
* The variable inspector window.
*@type {Electron.BrowserWindow}
*/
let variableInspectorWindow = null;

/**
* The stream preview popout window.
* Keeps a global reference of the window object, if you don't, the window will
Expand Down Expand Up @@ -83,8 +90,8 @@ function createStreamPreviewWindow() {
streamPreviewWindowState.manage(streamPreview);

streamPreview.on("close", () => {
if (!view.isDestroyed()) {
view.destroy();
if (!view.webContents.isDestroyed()) {
view.webContents.destroy();
}
});
}
Expand Down Expand Up @@ -428,7 +435,7 @@ async function createMainWindow() {
);

// wait for the main window's content to load, then show it
mainWindow.webContents.on("did-finish-load", () => {
mainWindow.webContents.on("did-finish-load", async () => {


createTray(mainWindow);
Expand All @@ -442,7 +449,7 @@ async function createMainWindow() {
}

const startupScriptsManager = require("../../common/handlers/custom-scripts/startup-scripts-manager");
startupScriptsManager.runStartupScripts();
await startupScriptsManager.runStartupScripts();

const eventManager = require("../../events/EventManager");
eventManager.triggerEvent("firebot", "firebot-started", {
Expand Down Expand Up @@ -470,8 +477,24 @@ async function createMainWindow() {
}).then(({response}) => {
if (response === 0) {
mainWindow.destroy();
global.renderWindow = null;
}
}).catch(() => console.log("Error with close app confirmation"));
} else {
mainWindow.destroy();
global.renderWindow = null;
}
});

mainWindow.on("closed", () => {
if (variableInspectorWindow?.isDestroyed() === false) {
logger.debug("Closing variable inspector window");
variableInspectorWindow.destroy();
}

if (streamPreview?.isDestroyed() === false) {
logger.debug("Closing stream preview window");
streamPreview.destroy();
}
});
}
Expand Down Expand Up @@ -525,12 +548,6 @@ function updateSplashScreenStatus(newStatus) {
splashscreenWindow.webContents.send("update-splash-screen-status", newStatus);
}

/**
* The variable inspector window.
*@type {Electron.BrowserWindow}
*/
let variableInspectorWindow = null;

async function createVariableInspectorWindow() {

if (variableInspectorWindow != null && !variableInspectorWindow.isDestroyed()) {
Expand Down
10 changes: 9 additions & 1 deletion src/backend/auth/twitch-auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,21 +66,27 @@ class TwitchAuthProviders {
'moderator:manage:chat_settings',
'moderator:manage:shield_mode',
'moderator:manage:shoutouts',
'moderator:manage:unban_requests',
'moderator:read:automod_settings',
'moderator:read:blocked_terms',
'moderator:read:chat_settings',
'moderator:read:chatters',
'moderator:read:followers',
'moderator:read:moderators',
'moderator:read:shield_mode',
'moderator:read:shoutouts',
'moderator:read:unban_requests',
'moderator:read:vips',
'user:edit:broadcast',
'user:manage:blocked_users',
'user:manage:whispers',
'user:read:blocked_users',
'user:read:broadcast',
'user:read:chat',
'user:read:emotes',
'user:read:follows',
'user:read:subscriptions',
'user:write:chat',
'whispers:edit',
'whispers:read'
]
Expand All @@ -105,6 +111,8 @@ class TwitchAuthProviders {
'moderator:manage:announcements',
'user:manage:whispers',
'user:read:chat',
'user:read:emotes',
'user:write:chat',
'whispers:edit',
'whispers:read'
]
Expand Down Expand Up @@ -141,7 +149,7 @@ async function getUserCurrent(accessToken: string) {
return null;
}

authManager.on("auth-success", async authData => {
authManager.on("auth-success", async (authData) => {
const { providerId, tokenData } = authData;

if (providerId === twitchAuthProviders.streamerAccountProviderId
Expand Down
Loading