116 lines
4.2 KiB
JavaScript
116 lines
4.2 KiB
JavaScript
/************************************************************************
|
|
Copyright (C) Ayushya Amitabh - All Rights Reserved
|
|
Unauthorized copying of this file, via any medium is strictly prohibited
|
|
Proprietary and confidential
|
|
Written by Ayushya Amitabh <admin@chromewatchparty.com>, 2020
|
|
https://www.chromewatchparty.com/copyright
|
|
=========================================================================
|
|
ALL CONTENT ON WATCH PARTY'S WEBSITE OR IN WATCH PARTY'S CHROME EXTENSION APP, UNLESS OTHERWISE
|
|
CITED ARE THE SOLE INTELECTUAL PROPERTY OF AYUSHYA AMITABH, AND MAY NOT BE
|
|
COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|
************************************************************************/
|
|
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import firebase from 'firebase/app';
|
|
import App from './App';
|
|
import './index.css';
|
|
import { PLAYER_SOURCE, getPlayerSource } from './Api';
|
|
|
|
const firebaseConfig = {
|
|
apiKey: 'AIzaSyCJLuYpzXLDRmu2ttzFuSGmYcpFxqToWFU',
|
|
authDomain: 'watch-party-crx.firebaseapp.com',
|
|
databaseURL: 'https://watch-party-crx.firebaseio.com',
|
|
projectId: 'watch-party-crx',
|
|
storageBucket: 'watch-party-crx.appspot.com',
|
|
messagingSenderId: '712242707190',
|
|
appId: '1:712242707190:web:65fa7f772e30da364b0ad7',
|
|
measurementId: 'G-EZS4PEVG4T',
|
|
};
|
|
|
|
firebase.initializeApp(firebaseConfig);
|
|
|
|
const PartyWrapper = document.createElement('div');
|
|
PartyWrapper.id = 'party_wrapper';
|
|
document.body.appendChild(PartyWrapper);
|
|
|
|
document.addEventListener(
|
|
'keydown',
|
|
(ev) => {
|
|
if (ev.code === 'KeyF') {
|
|
if (ev.target.tagName !== 'INPUT' && ev.target.tagName !== 'TEXTAREA') {
|
|
ev.stopImmediatePropagation();
|
|
ev.stopPropagation();
|
|
}
|
|
}
|
|
},
|
|
{ capture: true }
|
|
);
|
|
|
|
switch (getPlayerSource()) {
|
|
case PLAYER_SOURCE.NETFLIX:
|
|
document.body.classList.add('netflix');
|
|
break;
|
|
case PLAYER_SOURCE.HULU:
|
|
document.addEventListener(
|
|
'keydown',
|
|
(ev) => {
|
|
if (ev.target.tagName !== 'INPUT' || ev.target.tagName !== 'TEXTAREA') {
|
|
ev.stopImmediatePropagation();
|
|
ev.stopPropagation();
|
|
} else {
|
|
ev.target.focus();
|
|
}
|
|
},
|
|
{ capture: true }
|
|
);
|
|
document.body.classList.add('hulu');
|
|
const ds = document.createElement('script');
|
|
ds.text = `window.doquery=function(){window.huluPlayer=window.queryObjects(window.HuluMediaPlayer);}`;
|
|
document.head.appendChild(ds);
|
|
break;
|
|
case PLAYER_SOURCE.AMAZON:
|
|
document.body.classList.add('amazon-prime');
|
|
break;
|
|
case PLAYER_SOURCE.DISNEY:
|
|
document.body.classList.add('disney');
|
|
break;
|
|
case PLAYER_SOURCE.YOUTUBE:
|
|
document.body.classList.add('youtube');
|
|
break;
|
|
case PLAYER_SOURCE.HBONOW:
|
|
case PLAYER_SOURCE.HBOMAX:
|
|
const hboClickInject = `var hboInputFix=function(ev){if(ev.target.tagName==='INPUT'||ev.target.tagName==='TEXTAREA'){ev.target.focus();}ev.stopImmediatePropagation();ev.stopPropagation();};document.addEventListener('keydown',hboInputFix,{capture:true});var hboClickFix=function(ev){if(document.querySelector('body.visible')){if(ev.clientX > window.innerWidth - (parseInt(document.documentElement.style.getPropertyValue('--party-width').slice(0,-2)) + 50) ){if(ev.target.tagName==='INPUT'||ev.target.tagName==='TEXTAREA'){ev.target.focus();}ev.preventDefault();ev.stopPropagation();ev.stopImmediatePropagation();}}};document.addEventListener("mousedown",hboClickFix,{capture:true});`;
|
|
const hboClickInjectScript = document.createElement('script');
|
|
hboClickInjectScript.text = hboClickInject;
|
|
document.head.appendChild(hboClickInjectScript);
|
|
document.body.classList.add('hbo');
|
|
break;
|
|
case PLAYER_SOURCE.PEACOCK:
|
|
document.body.classList.add('peacock');
|
|
break;
|
|
case PLAYER_SOURCE.GOOGLEPLAY:
|
|
document.body.classList.add('googleplay');
|
|
break;
|
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
|
document.body.classList.add('crunchyroll');
|
|
break;
|
|
case PLAYER_SOURCE.APPLE:
|
|
document.body.classList.add('apple');
|
|
break;
|
|
case PLAYER_SOURCE.VIKI:
|
|
document.body.classList.add('viki');
|
|
break;
|
|
case PLAYER_SOURCE.LOCAL:
|
|
document.body.classList.add('local');
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
ReactDOM.render(
|
|
<React.StrictMode>
|
|
<App />
|
|
</React.StrictMode>,
|
|
PartyWrapper
|
|
);
|