1- chrome . storage . local . set ( { inMeeting : false , attendeeUUID : null } , function ( ) {
2- console . log ( "-------------NEW MEETING-------------" )
3- console . log ( "inMeeting set to false" )
4- console . log ( "Attendee UUID set to null" )
5- } )
6-
71checkExtensionStatus ( ) . then ( ( ) => {
82 // Read the status JSON
93 chrome . storage . local . get ( [ "extensionStatusJSON" ] , function ( result ) {
@@ -16,7 +10,8 @@ checkExtensionStatus().then(() => {
1610 } ) ;
1711
1812 // disabling camera or microphone
19- checkElement ( ".oTVIqe" ) . then ( ( selector ) => {
13+ checkElement ( ".oTVIqe" ) . then ( ( ) => {
14+ console . log ( "Mic and camera visible" )
2015 let buttons = document . querySelectorAll ( ".oTVIqe" ) ;
2116 if ( buttons ) {
2217 setTimeout ( ( ) => {
@@ -40,6 +35,20 @@ checkExtensionStatus().then(() => {
4035 console . log ( response ) ;
4136 } ) ;
4237 } )
38+
39+ checkElement ( ".google-material-icons" , "call_end" ) . then ( ( ) => {
40+ console . log ( "Meeting started, setting Slack status" )
41+ chrome . runtime . sendMessage ( { message : "Set status" } , function ( response ) {
42+ console . log ( response ) ;
43+ } ) ;
44+
45+ contains ( ".google-material-icons" , "call_end" ) [ 0 ] . parentElement . addEventListener ( "click" , ( ) => {
46+ console . log ( "Meeting ended, clearing Slack status" )
47+ chrome . runtime . sendMessage ( { message : "Clear status" } , function ( response ) {
48+ console . log ( response ) ;
49+ } ) ;
50+ } )
51+ } )
4352 }
4453 else {
4554 showNotification ( 400 , extensionStatusJSON ) ;
@@ -68,29 +77,22 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
6877
6978function joinKeyBoardShortcutListener ( ) {
7079 document . addEventListener ( "keydown" , function ( event ) {
71- if ( ( event . ctrlKey || event . metaKey ) && ( event . key . toLowerCase ( ) === "v" ) ) {
72- chrome . storage . local . get ( [ "extensionStatusJSON" ] , function ( result ) {
73- let extensionStatusJSON = result . extensionStatusJSON ;
74- if ( extensionStatusJSON . status == 200 ) {
75- let askToJoin = contains ( "div" , "Ask to join" )
76- let joinNow = contains ( "div" , "Join now" )
77- if ( askToJoin . length > 0 )
78- askToJoin [ askToJoin . length - 1 ] . firstChild . click ( ) ;
79- else joinNow [ joinNow . length - 1 ] . firstChild . click ( ) ;
80- }
81- } ) ;
80+ if ( ( event . ctrlKey || event . metaKey ) && ! ( event . shiftKey ) && ( event . key . toLowerCase ( ) === "v" ) ) {
81+ let askToJoin = contains ( "div" , "Ask to join" )
82+ let joinNow = contains ( "div" , "Join now" )
83+ if ( askToJoin . length > 0 )
84+ askToJoin [ askToJoin . length - 1 ] . firstChild . click ( ) ;
85+ else if ( joinNow . length > 0 )
86+ joinNow [ joinNow . length - 1 ] . firstChild . click ( ) ;
8287 }
8388 } ) ;
8489}
8590
8691function exitKeyBoardShortcutListener ( ) {
8792 document . addEventListener ( "keydown" , function ( event ) {
8893 if ( ( event . ctrlKey || event . metaKey ) && ( event . shiftKey ) && ( event . key . toLowerCase ( ) === "v" ) ) {
89- chrome . storage . local . get ( [ "extensionStatusJSON" ] , function ( result ) {
90- let extensionStatusJSON = result . extensionStatusJSON ;
91- if ( extensionStatusJSON . status == 200 && contains ( "i" , "call_end" ) [ 0 ] )
92- contains ( "i" , "call_end" ) [ 0 ] . parentElement . click ( ) ;
93- } ) ;
94+ if ( contains ( "i" , "call_end" ) [ 0 ] )
95+ contains ( "i" , "call_end" ) [ 0 ] . parentElement . click ( ) ;
9496 }
9597 } ) ;
9698}
@@ -102,12 +104,19 @@ function contains(selector, text) {
102104 } ) ;
103105}
104106
105- const checkElement = async ( selector ) => {
106- while ( document . querySelector ( selector ) === null ) {
107- await new Promise ( ( resolve ) => requestAnimationFrame ( resolve ) ) ;
107+ const checkElement = async ( selector , text ) => {
108+ if ( text ) {
109+ while ( ! Array . from ( document . querySelectorAll ( selector ) ) . find ( element => element . textContent === text ) ) {
110+ await new Promise ( ( resolve ) => requestAnimationFrame ( resolve ) ) ;
111+ }
112+ }
113+ else {
114+ while ( ! document . querySelector ( selector ) ) {
115+ await new Promise ( ( resolve ) => requestAnimationFrame ( resolve ) ) ;
116+ }
108117 }
109118 return document . querySelector ( selector ) ;
110- } ;
119+ }
111120
112121function showNotification ( type , extensionStatusJSON ) {
113122 // Banner CSS
0 commit comments