]> git.r.bdr.sh - rbdr/junction/commitdiff
Merge branch 'main' into rbdr-content-script
authorRuben Beltran del Rio <redacted>
Sun, 27 Sep 2020 19:00:40 +0000 (21:00 +0200)
committerRuben Beltran del Rio <redacted>
Sun, 27 Sep 2020 19:00:40 +0000 (21:00 +0200)
1  2 
extension/content_script.js
extension/manifest.json

index 4a6c7e65315e19b2aa761aec95deb0dd6bf82585,0000000000000000000000000000000000000000..a9d713d74150aa9208533f8c24beaab4e1bb4e56
mode 100644,000000..100644
--- /dev/null
@@@ -1,47 -1,0 +1,84 @@@
 +(() => {
 +
++  const io = require('socket.io-client');
++
 +  const internals = {
++
++    kSocketUrl: 'http://unlimited.pizza:8000/',
++
 +    port: null,
++    socket: null,
++    peers: 0,
 +
 +    onMessage(message) {
 +      internals[message.action](message.data);
 +    },
 +
 +    async joinAudioCall(data) {
 +
 +      try {
 +        const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true });
++
++        internals.socket = io(socketUrl);
++
++        internals.socket.on('connect', function() {
++
++          console.log("Connected to signaling server");
++          internals.socket.emit('join', {
++            'url': currentUrl,
++          });
++        });
++
++        internals.socket.on('disconnect', function() {
++
++          console.log("disconnected from signaling server");
++        });
++
++        internals.socket.on('addPeer', function(data) {
++
++          console.log(data);
++          internals.peers++;
++          console.log(`There are now ${internals.peers} participants`);
++        });
++
++        internals.socket.on('removePeer', function() {
++
++          internals.peers--;
++          console.log(`There are now ${internals.peers} participants`);
++        });
++
 +        internals.createAudioElement(data.tada);
 +      }
 +      catch (err) {
 +
 +        internals.port.postMessage({
 +          action: 'error'
 +        });
 +        internals.port.disconnect();
 +        internals.createAudioElement(data.tada);
 +      }
 +    },
 +
 +    hangUp() {
 +      document.querySelectorAll('.junction-call-audio').forEach((audioElement) => audioElement.remove());
++      internals.socket.close();
 +      internals.port.disconnect();
 +    },
 +
 +    createAudioElement(source, type = 'audio/wav') {
 +
 +      const audioElement = document.createElement('audio');
 +      audioElement.setAttribute('class', 'junction-call-audio');
 +      audioElement.src = source;
 +      audioElement.autoplay = 'autoplay';
 +      audioElement.type = type;
 +      document.querySelector('body').appendChild(audioElement);
 +    }
 +  };
 +
 +  internals.port = chrome.runtime.connect({ name:"content" });
 +  internals.port.onMessage.addListener(internals.onMessage);
 +})();
 +
 +// Indicates to the background script that we executed correctly
 +true;
diff --combined extension/manifest.json
index 2a5723a98800ec1d37a7e9f8d2157aca6bc24a27,6ab87f43ab3e2e09f793dd3f5cbe903c823fbd82..3274b0058678d5692f3c7d59ce36491ec64b44cb
@@@ -13,7 -13,7 +13,7 @@@
    },
  
    "background": {
-     "scripts": ["junction.js"]
+     "scripts": ["build/junction.js"]
    },
  
    "browser_action": {
@@@ -21,9 -21,5 +21,9 @@@
        "16": "icons/action-16.png",
        "32": "icons/action-32.png"
      }
 -  }
 +  },
 +
 +  "web_accessible_resources": [
 +    "sounds/tada.wav"
 +  ]
  }