diff --git a/src/main.js b/src/main.js index 200a706a..e374e46a 100644 --- a/src/main.js +++ b/src/main.js @@ -151,7 +151,7 @@ ${typeof x[1] === 'string' ? x[1] : JSON.stringify(x[1], null, 4)}` FrankerFaceZ.Logger = Logger; const VER = FrankerFaceZ.version_info = { - major: 4, minor: 2, revision: 0, + major: 4, minor: 2, revision: 1, commit: __git_commit__, build: __webpack_hash__, toString: () => diff --git a/src/sites/twitch-twilight/modules/chat/index.js b/src/sites/twitch-twilight/modules/chat/index.js index f70b4b5a..15b8ce1f 100644 --- a/src/sites/twitch-twilight/modules/chat/index.js +++ b/src/sites/twitch-twilight/modules/chat/index.js @@ -905,6 +905,10 @@ export default class ChatHook extends Module { if ( ! inst.props.isBackground ) inst.notifySubscribers(); } + + inst.getMessages = function() { + return inst.buffer.slice(0, inst.slidingWindowEnd + (inst.ffz_extra || 0)); + } } cls.prototype.componentDidMount = function() { @@ -927,6 +931,7 @@ export default class ChatHook extends Module { count = max_size; if ( count <= 0 ) { + this.ffz_extra = 0; this.buffer = []; this.delayedMessageBuffer = []; this.paused = false; @@ -944,10 +949,15 @@ export default class ChatHook extends Module { last = i; } - this.buffer = buffer.slice(removed % 2 === 0 ? target : Math.max(target - 4, last)); + // When we remove less then expected, we want to keep track + // of that so we can return the extra messages from getMessages. + this.ffz_extra = target - last; + this.buffer = buffer.slice(removed % 2 !== 0 ? Math.max(target - 4, last) : target); - } else + } else { + this.ffz_extra = 0; this.buffer = this.buffer.slice(0); + } if ( this.paused && this.buffer.length >= 900 ) this.setPaused(false);