v1.6.5/version bump

- fix HBO
This commit is contained in:
2020-08-29 12:14:49 -04:00
parent e6728d0909
commit 04d5277e33
7 changed files with 144 additions and 115 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "watch-party-admin", "name": "watch-party-admin",
"version": "1.6.4", "version": "1.6.5",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@ant-design/icons": "^4.2.2", "@ant-design/icons": "^4.2.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "watch-party-crx", "name": "watch-party-crx",
"version": "1.6.4", "version": "1.6.5",
"private": true, "private": true,
"dependencies": {}, "dependencies": {},
"scripts": { "scripts": {
+53 -51
View File
@@ -12,18 +12,18 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
/* global chrome */ /* global chrome */
/* global firebase */ /* global firebase */
const APP_VERSION = '1.6.4'; const APP_VERSION = "1.6.5";
const APP_VERSION_STRING = APP_VERSION.replace(/\./g, ''); const APP_VERSION_STRING = APP_VERSION.replace(/\./g, "");
const firebaseConfig = { const firebaseConfig = {
apiKey: 'AIzaSyCJLuYpzXLDRmu2ttzFuSGmYcpFxqToWFU', apiKey: "AIzaSyCJLuYpzXLDRmu2ttzFuSGmYcpFxqToWFU",
authDomain: 'watch-party-crx.firebaseapp.com', authDomain: "watch-party-crx.firebaseapp.com",
databaseURL: 'https://watch-party-crx.firebaseio.com', databaseURL: "https://watch-party-crx.firebaseio.com",
projectId: 'watch-party-crx', projectId: "watch-party-crx",
storageBucket: 'watch-party-crx.appspot.com', storageBucket: "watch-party-crx.appspot.com",
messagingSenderId: '712242707190', messagingSenderId: "712242707190",
appId: '1:712242707190:web:65fa7f772e30da364b0ad7', appId: "1:712242707190:web:65fa7f772e30da364b0ad7",
measurementId: 'G-EZS4PEVG4T', measurementId: "G-EZS4PEVG4T",
}; };
firebase.initializeApp(firebaseConfig); firebase.initializeApp(firebaseConfig);
@@ -44,8 +44,8 @@ const fetcher = async (request, sendResponse) => {
method, method,
headers: { headers: {
Authorization: `Token ${idToken}:${firebase.auth().currentUser.uid}`, Authorization: `Token ${idToken}:${firebase.auth().currentUser.uid}`,
'Access-Control-Allow-Origin': '*', "Access-Control-Allow-Origin": "*",
'Keep-Alive': true, "Keep-Alive": true,
}, },
...request, ...request,
}) })
@@ -73,37 +73,37 @@ const sendAuth = async (sendResponse) => {
chrome.runtime.onInstalled.addListener((details) => { chrome.runtime.onInstalled.addListener((details) => {
if (details.reason) { if (details.reason) {
if (details.reason === 'install') { if (details.reason === "install") {
if (window.localStorage.getItem('watchPartyVersion')) { if (window.localStorage.getItem("watchPartyVersion")) {
if (window.localStorage.getItem('watchPartyVersion') !== APP_VERSION) { if (window.localStorage.getItem("watchPartyVersion") !== APP_VERSION) {
chrome.tabs.create({ chrome.tabs.create({
url: `http://www.chromewatchparty.com/changes/v${APP_VERSION}`, url: `http://www.chromewatchparty.com/changes/v${APP_VERSION}`,
active: true, active: true,
}); });
window.localStorage.setItem('watchPartyVersion', APP_VERSION); window.localStorage.setItem("watchPartyVersion", APP_VERSION);
} }
} else { } else {
chrome.tabs.create({ chrome.tabs.create({
url: 'https://www.chromewatchparty.com/welcome', url: "https://www.chromewatchparty.com/welcome",
active: true, active: true,
}); });
window.localStorage.setItem('watchPartyVersion', APP_VERSION); window.localStorage.setItem("watchPartyVersion", APP_VERSION);
} }
} else if (details.reason === 'update') { } else if (details.reason === "update") {
if (window.localStorage.getItem('watchPartyVersion')) { if (window.localStorage.getItem("watchPartyVersion")) {
if (window.localStorage.getItem('watchPartyVersion') !== APP_VERSION) { if (window.localStorage.getItem("watchPartyVersion") !== APP_VERSION) {
chrome.tabs.create({ chrome.tabs.create({
url: `http://www.chromewatchparty.com/changes/v${APP_VERSION}`, url: `http://www.chromewatchparty.com/changes/v${APP_VERSION}`,
active: true, active: true,
}); });
window.localStorage.setItem('watchPartyVersion', APP_VERSION); window.localStorage.setItem("watchPartyVersion", APP_VERSION);
} }
} else { } else {
chrome.tabs.create({ chrome.tabs.create({
url: `http://www.chromewatchparty.com/changes/v${APP_VERSION}`, url: `http://www.chromewatchparty.com/changes/v${APP_VERSION}`,
active: true, active: true,
}); });
window.localStorage.setItem('watchPartyVersion', APP_VERSION); window.localStorage.setItem("watchPartyVersion", APP_VERSION);
} }
} }
} }
@@ -112,41 +112,41 @@ chrome.runtime.onInstalled.addListener((details) => {
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
const { type } = request; const { type } = request;
switch (type) { switch (type) {
case 'API_CALL': case "API_CALL":
fetcher(request, sendResponse); fetcher(request, sendResponse);
break; break;
case 'GET_AUTH': case "GET_AUTH":
sendAuth(sendResponse); sendAuth(sendResponse);
break; break;
case 'GET_PARTIES': case "GET_PARTIES":
sendResponse( sendResponse(
window.localStorage.getItem('parties') window.localStorage.getItem("parties")
? JSON.parse(window.localStorage.getItem('parties')) ? JSON.parse(window.localStorage.getItem("parties"))
: [] : []
); );
break; break;
case 'EMPTY_PARTIES': case "EMPTY_PARTIES":
window.localStorage.removeItem('parties'); window.localStorage.removeItem("parties");
break; break;
case 'IS_HIDDEN': case "IS_HIDDEN":
sendResponse( sendResponse(
window.localStorage.getItem('showWPButton') window.localStorage.getItem("showWPButton")
? JSON.parse(window.localStorage.getItem('showWPButton')) ? JSON.parse(window.localStorage.getItem("showWPButton"))
: true : true
); );
break; break;
case 'GET_TUTORIAL': case "GET_TUTORIAL":
sendResponse( sendResponse(
window.localStorage.getItem('tutorialComplete') window.localStorage.getItem("tutorialComplete")
? JSON.parse(window.localStorage.getItem('tutorialComplete')) ? JSON.parse(window.localStorage.getItem("tutorialComplete"))
: false : false
); );
break; break;
case 'SET_TUTORIAL': case "SET_TUTORIAL":
window.localStorage.setItem('tutorialComplete', request.status); window.localStorage.setItem("tutorialComplete", request.status);
break; break;
default: default:
console.warn('Unknown message type: <', type, '>'); console.warn("Unknown message type: <", type, ">");
break; break;
} }
return true; return true;
@@ -160,10 +160,10 @@ chrome.runtime.onConnect.addListener((port) => {
}); });
port.onMessage.addListener((request) => { port.onMessage.addListener((request) => {
const { type, roomId, roomPin } = request; const { type, roomId, roomPin } = request;
if (type === 'INIT') { if (type === "INIT") {
port.roomListener = firebase port.roomListener = firebase
.firestore() .firestore()
.collection('rooms') .collection("rooms")
.doc(roomId) .doc(roomId)
.onSnapshot( .onSnapshot(
(snap) => { (snap) => {
@@ -177,14 +177,16 @@ chrome.runtime.onConnect.addListener((port) => {
); );
port.userListener = firebase port.userListener = firebase
.firestore() .firestore()
.collection('rooms') .collection("rooms")
.doc(roomId) .doc(roomId)
.collection('users') .collection("users")
.onSnapshot( .onSnapshot(
(snap) => { (snap) => {
if (snap) { if (snap) {
const isAdmin = snap.docs const isAdmin = snap.docs
.filter((user) => user.id === firebase.auth().currentUser.uid)[0] .filter(
(user) => user.id === firebase.auth().currentUser.uid
)[0]
.data().admin; .data().admin;
const users = snap.docs.map((userSnap) => userSnap.data().name); const users = snap.docs.map((userSnap) => userSnap.data().name);
port.postMessage({ admin: isAdmin, users }); port.postMessage({ admin: isAdmin, users });
@@ -196,10 +198,10 @@ chrome.runtime.onConnect.addListener((port) => {
); );
port.messageListener = firebase port.messageListener = firebase
.firestore() .firestore()
.collection('rooms') .collection("rooms")
.doc(roomId) .doc(roomId)
.collection('messages') .collection("messages")
.orderBy('time') .orderBy("time")
.onSnapshot( .onSnapshot(
(snap) => { (snap) => {
if (snap) { if (snap) {
@@ -213,18 +215,18 @@ chrome.runtime.onConnect.addListener((port) => {
port.postMessage({ isError: true, ...err }); port.postMessage({ isError: true, ...err });
} }
); );
if (window.localStorage.getItem('parties')) { if (window.localStorage.getItem("parties")) {
var existing = JSON.parse(window.localStorage.getItem('parties')); var existing = JSON.parse(window.localStorage.getItem("parties"));
if (!(existing.filter((i) => i.name === roomId).length > 0)) { if (!(existing.filter((i) => i.name === roomId).length > 0)) {
existing.push({ existing.push({
name: roomId, name: roomId,
pin: roomPin, pin: roomPin,
}); });
window.localStorage.setItem('parties', JSON.stringify(existing)); window.localStorage.setItem("parties", JSON.stringify(existing));
} }
} else { } else {
window.localStorage.setItem( window.localStorage.setItem(
'parties', "parties",
JSON.stringify([ JSON.stringify([
{ {
name: roomId, name: roomId,
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "Watch Party", "name": "Watch Party",
"short_name": "WP", "short_name": "WP",
"version": "1.6.4", "version": "1.6.5",
"description": "Watch streamed content together.", "description": "Watch streamed content together.",
"background": { "background": {
"page": "background.html" "page": "background.html"
+86 -59
View File
@@ -9,34 +9,40 @@ ALL CONTENT ON WATCH PARTY'S WEBSITE OR IN WATCH PARTY'S CHROME EXTENSION APP, U
CITED ARE THE SOLE INTELECTUAL PROPERTY OF AYUSHYA AMITABH, AND MAY NOT BE CITED ARE THE SOLE INTELECTUAL PROPERTY OF AYUSHYA AMITABH, AND MAY NOT BE
COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION. COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
************************************************************************/ ************************************************************************/
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from "react";
import Router from 'route-lite'; import Router from "route-lite";
import { Fab, createMuiTheme, ThemeProvider, Snackbar, Tooltip } from '@material-ui/core'; import {
import Create from './Create'; Fab,
import Loading from './Loading'; createMuiTheme,
import firebase from 'firebase/app'; ThemeProvider,
import 'firebase/firestore'; Snackbar,
import Inactive from './Inactive'; Tooltip,
} from "@material-ui/core";
import Create from "./Create";
import Loading from "./Loading";
import firebase from "firebase/app";
import "firebase/firestore";
import Inactive from "./Inactive";
import { import {
getUserUid, getUserUid,
getPlayerSource, getPlayerSource,
PLAYER_SOURCE, PLAYER_SOURCE,
getShowWPButton, getShowWPButton,
getTutorialStatus, getTutorialStatus,
} from './Api'; } from "./Api";
import Tutorial from './Tutorial'; import Tutorial from "./Tutorial";
const APP_VERSION = '1.6.4'; const APP_VERSION = "1.6.5";
const APP_VERSION_STRING = APP_VERSION.replace(/\./g, ''); const APP_VERSION_STRING = APP_VERSION.replace(/\./g, "");
const darkTheme = createMuiTheme({ const darkTheme = createMuiTheme({
palette: { palette: {
type: 'dark', type: "dark",
primary: { primary: {
main: '#FF0000', main: "#FF0000",
}, },
secondary: { secondary: {
main: '#c0f300', main: "#c0f300",
}, },
}, },
}); });
@@ -49,35 +55,44 @@ const Routes = (props) => (
const resetResize = () => { const resetResize = () => {
const checkedX = 425; const checkedX = 425;
document.documentElement.style.setProperty('--party-width', `${checkedX}px`); document.documentElement.style.setProperty("--party-width", `${checkedX}px`);
document.documentElement.style.setProperty('--neg-party-width', `-${checkedX}px`); document.documentElement.style.setProperty(
"--neg-party-width",
`-${checkedX}px`
);
}; };
const doResize = (ev) => { const doResize = (ev) => {
const checkedX = const checkedX =
window.innerWidth - window.innerWidth -
Math.min(window.innerWidth - 300, Math.max(window.innerWidth * 0.5, ev.clientX)); Math.min(
document.documentElement.style.setProperty('--party-width', `${checkedX}px`); window.innerWidth - 300,
document.documentElement.style.setProperty('--neg-party-width', `-${checkedX}px`); Math.max(window.innerWidth * 0.5, ev.clientX)
);
document.documentElement.style.setProperty("--party-width", `${checkedX}px`);
document.documentElement.style.setProperty(
"--neg-party-width",
`-${checkedX}px`
);
}; };
const stopResize = (ev) => { const stopResize = (ev) => {
document.documentElement.removeEventListener('mousemove', doResize, false); document.documentElement.removeEventListener("mousemove", doResize, false);
document.documentElement.removeEventListener('mouseup', stopResize, false); document.documentElement.removeEventListener("mouseup", stopResize, false);
}; };
const startResize = (ev) => { const startResize = (ev) => {
document.documentElement.addEventListener('mousemove', doResize, false); document.documentElement.addEventListener("mousemove", doResize, false);
document.documentElement.addEventListener('mouseup', stopResize, false); document.documentElement.addEventListener("mouseup", stopResize, false);
}; };
const App = () => { const App = () => {
const closedNotification = { open: false, message: '' }; const closedNotification = { open: false, message: "" };
const [tutorialComponent, setTutorialComponent] = useState(null); const [tutorialComponent, setTutorialComponent] = useState(null);
const [showFab, setShowFab] = useState(false); const [showFab, setShowFab] = useState(false);
const [tutorialComplete, setTutorialComplete] = useState(false); const [tutorialComplete, setTutorialComplete] = useState(false);
const [status, setStatus] = useState({ active: false, message: '' }); const [status, setStatus] = useState({ active: false, message: "" });
const [visible, setVisible] = useState(false); const [visible, setVisible] = useState(false);
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
const [notification, setNotification] = useState(closedNotification); const [notification, setNotification] = useState(closedNotification);
@@ -89,8 +104,8 @@ const App = () => {
getUserUid(); getUserUid();
firebase firebase
.firestore() .firestore()
.collection('server') .collection("server")
.doc('status') .doc("status")
.onSnapshot((statusSnap) => { .onSnapshot((statusSnap) => {
setStatus(statusSnap.data()); setStatus(statusSnap.data());
setLoading(false); setLoading(false);
@@ -98,7 +113,9 @@ const App = () => {
getShowWPButton().then((showWPButton) => { getShowWPButton().then((showWPButton) => {
setShowFab(showWPButton); setShowFab(showWPButton);
if (showWPButton === true) { if (showWPButton === true) {
document.querySelector('.watch-party-fab').classList.remove('watch-party-fab-hidden'); document
.querySelector(".watch-party-fab")
.classList.remove("watch-party-fab-hidden");
} }
}); });
}, []); }, []);
@@ -106,40 +123,45 @@ const App = () => {
getTutorialStatus().then((v) => setTutorialComplete(v)); getTutorialStatus().then((v) => setTutorialComplete(v));
// HANDLE VISIBILITY STYLING // HANDLE VISIBILITY STYLING
const PartyRoutesWrapper = document.getElementById('party-routes-wrapper'); const PartyRoutesWrapper = document.getElementById("party-routes-wrapper");
if (visible) { if (visible) {
document.body.classList.add('visible'); document.body.classList.add("visible");
PartyRoutesWrapper && PartyRoutesWrapper.classList.add('visible'); PartyRoutesWrapper && PartyRoutesWrapper.classList.add("visible");
if (getPlayerSource() === PLAYER_SOURCE.HBOMAX || getPlayerSource() === PLAYER_SOURCE.HBONOW) { if (
setTutorialComplete(true); getPlayerSource() === PLAYER_SOURCE.HBOMAX ||
if (!hasAttached) { (getPlayerSource() === PLAYER_SOURCE.HBONOW && !hasAttached)
document.addEventListener( ) {
'mousedown', document.addEventListener(
function (ev) { "mousedown",
if (document.body.querySelector('body.visible')) { function (ev) {
ev.preventDefault(); if (document.body.querySelector("body.visible")) {
ev.stopPropagation(); ev.preventDefault();
ev.stopImmediatePropagation(); ev.stopPropagation();
} ev.stopImmediatePropagation();
}, }
{ capture: true } },
); { capture: true }
hasAttached = true; );
} hasAttached = true;
} }
if (getPlayerSource() === PLAYER_SOURCE.APPLE) { if (getPlayerSource() === PLAYER_SOURCE.APPLE) {
const appleTvPlayer = document.querySelector('apple-tv-plus-player'); const appleTvPlayer = document.querySelector("apple-tv-plus-player");
const takeoverContainer = appleTvPlayer.shadowRoot.querySelector('.takeover.container.show'); const takeoverContainer = appleTvPlayer.shadowRoot.querySelector(
if (takeoverContainer) takeoverContainer.style.maxWidth = 'var(--body-width)'; ".takeover.container.show"
);
if (takeoverContainer)
takeoverContainer.style.maxWidth = "var(--body-width)";
} }
} else { } else {
if (getPlayerSource() === PLAYER_SOURCE.APPLE) { if (getPlayerSource() === PLAYER_SOURCE.APPLE) {
const appleTvPlayer = document.querySelector('apple-tv-plus-player'); const appleTvPlayer = document.querySelector("apple-tv-plus-player");
const takeoverContainer = appleTvPlayer.shadowRoot.querySelector('.takeover.container.show'); const takeoverContainer = appleTvPlayer.shadowRoot.querySelector(
if (takeoverContainer) takeoverContainer.style.maxWidth = 'none'; ".takeover.container.show"
);
if (takeoverContainer) takeoverContainer.style.maxWidth = "none";
} }
document.body.classList.remove('visible'); document.body.classList.remove("visible");
PartyRoutesWrapper && PartyRoutesWrapper.classList.remove('visible'); PartyRoutesWrapper && PartyRoutesWrapper.classList.remove("visible");
} }
// HANDLE FULLSCREEN EVENT // HANDLE FULLSCREEN EVENT
@@ -156,7 +178,7 @@ const App = () => {
<ThemeProvider theme={darkTheme}> <ThemeProvider theme={darkTheme}>
<Snackbar <Snackbar
className="party-notification-container" className="party-notification-container"
anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }} anchorOrigin={{ vertical: "bottom", horizontal: "right" }}
open={notification.open} open={notification.open}
onClose={() => setNotification(closedNotification)} onClose={() => setNotification(closedNotification)}
message={notification.message} message={notification.message}
@@ -176,12 +198,17 @@ const App = () => {
title="Resize Sidebar / Double Click To Reset" title="Resize Sidebar / Double Click To Reset"
aria-label="Resize Sidebar / Double Click To Reset" aria-label="Resize Sidebar / Double Click To Reset"
> >
<div onDoubleClick={resetResize} onMouseDown={startResize} id="party-width-dragger"> <div
onDoubleClick={resetResize}
onMouseDown={startResize}
id="party-width-dragger"
>
|| ||
</div> </div>
</Tooltip> </Tooltip>
{loading && <Loading />} {loading && <Loading />}
{status[APP_VERSION_STRING] && status[APP_VERSION_STRING].active === true ? ( {status[APP_VERSION_STRING] &&
status[APP_VERSION_STRING].active === true ? (
<Routes <Routes
showFab={showFab} showFab={showFab}
resetTutorial={resetTutorial} resetTutorial={resetTutorial}
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "watch-party-api", "name": "watch-party-api",
"version": "1.6.4", "version": "1.6.5",
"description": "Cloud Functions for Watch Party", "description": "Cloud Functions for Watch Party",
"scripts": { "scripts": {
"lint": "eslint .", "lint": "eslint .",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "watch-party", "name": "watch-party",
"version": "1.6.4", "version": "1.6.5",
"description": "Watch Party", "description": "Watch Party",
"scripts": { "scripts": {
"start": "firebase emulators:start", "start": "firebase emulators:start",