@@ -4,7 +4,23 @@ const FIVE_SECONDS = 5 * 1000;
44
55const maxClickAttempts = 5 ;
66let isEnabled ;
7- let intervalId ;
7+ let timeout ;
8+
9+ const IntervalOperator = ( ) => {
10+ let intervalId ;
11+
12+ return {
13+ set : ( handler , interval ) => {
14+ clearInterval ( intervalId ) ;
15+ intervalId = setInterval ( handler , interval ) ;
16+ } ,
17+ clear : ( ) => {
18+ clearInterval ( intervalId ) ;
19+ }
20+ } ;
21+ } ;
22+
23+ const interval = IntervalOperator ( ) ;
824
925function isLive ( ) {
1026 return ! ! document . getElementsByClassName ( 'live-indicator' ) [ 0 ] ;
@@ -23,7 +39,7 @@ function attemptToClick() {
2339function waitForBonusButton ( ) {
2440 let clickAttempts = 0 ;
2541 console . log ( 'looking for button' ) ;
26- intervalId = setInterval ( ( ) => {
42+ interval . set ( ( ) => {
2743 const clicked = attemptToClick ( ) ;
2844 console . log ( 'click' , clicked ) ;
2945 if ( clicked ) {
@@ -40,8 +56,8 @@ function waitForBonusButton() {
4056
4157function pauseFor ( duration ) {
4258 console . log ( 'pausing for' , duration ) ;
43- clearInterval ( intervalId ) ;
44- setTimeout ( ( ) => {
59+ interval . clear ( ) ;
60+ timeout = setTimeout ( ( ) => {
4561 if ( isLive ( ) ) {
4662 waitForBonusButton ( ) ;
4763 } else {
@@ -52,9 +68,9 @@ function pauseFor(duration) {
5268
5369function waitForWhenLive ( ) {
5470 console . log ( 'waiting when live' ) ;
55- clearInterval ( intervalId ) ;
71+ interval . clear ( ) ;
5672 // reusing the same interval
57- intervalId = setInterval ( ( ) => {
73+ interval . set ( ( ) => {
5874 if ( isLive ( ) ) {
5975 clearInterval ( intervalId ) ;
6076 waitForBonusButton ( ) ;
@@ -64,13 +80,8 @@ function waitForWhenLive() {
6480
6581
6682function initialize ( ) {
67- console . log ( 'INTERVAL' , intervalId ) ;
68- if ( intervalId ) {
69- console . log ( 'CLEARING' ) ;
70- clearInterval ( intervalId ) ;
71- }
72-
7383 console . log ( 'initializing' ) ;
84+ clearTimeout ( timeout ) ;
7485
7586 // initial check for the button
7687 attemptToClick ( ) ;
@@ -86,10 +97,10 @@ const onMessage = (message, sender) => {
8697 if ( sender . id === browser . runtime . id ) {
8798 isEnabled = message . isEnabled ;
8899 if ( isEnabled ) {
89- clearInterval ( intervalId ) ;
90100 initialize ( ) ;
91101 } else {
92- clearInterval ( intervalId ) ;
102+ interval . clear ( ) ;
103+ clearTimeout ( timeout ) ;
93104 }
94105 }
95106}
0 commit comments