v1.7.14/release
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "watch-party-admin",
|
"name": "watch-party-admin",
|
||||||
"version": "1.7.13",
|
"version": "1.7.14",
|
||||||
"private": true,
|
"private": true,
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ant-design/icons": "^4.2.2",
|
"@ant-design/icons": "^4.2.2",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "watch-party-crx",
|
"name": "watch-party-crx",
|
||||||
"version": "1.7.13",
|
"version": "1.7.14",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "watch-party-crx",
|
"name": "watch-party-crx",
|
||||||
"version": "1.7.13",
|
"version": "1.7.14",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ try {
|
|||||||
console.info("CHROME ENV");
|
console.info("CHROME ENV");
|
||||||
}
|
}
|
||||||
|
|
||||||
const APP_VERSION = "1.7.13";
|
const APP_VERSION = "1.7.14";
|
||||||
|
|
||||||
const firebaseConfig = {
|
const firebaseConfig = {
|
||||||
apiKey: "AIzaSyCJLuYpzXLDRmu2ttzFuSGmYcpFxqToWFU",
|
apiKey: "AIzaSyCJLuYpzXLDRmu2ttzFuSGmYcpFxqToWFU",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Watch Party",
|
"name": "Watch Party",
|
||||||
"short_name": "WP",
|
"short_name": "WP",
|
||||||
"version": "1.7.13",
|
"version": "1.7.14",
|
||||||
"description": "Watch streamed content together.",
|
"description": "Watch streamed content together.",
|
||||||
"background": {
|
"background": {
|
||||||
"page": "background.html"
|
"page": "background.html"
|
||||||
@@ -49,6 +49,7 @@
|
|||||||
"https://*.dailymotion.com/*",
|
"https://*.dailymotion.com/*",
|
||||||
"https://*.imdb.com/tv/*",
|
"https://*.imdb.com/tv/*",
|
||||||
"https://*.paramountplus.com/*",
|
"https://*.paramountplus.com/*",
|
||||||
|
"https://*.starz.com/*",
|
||||||
"https://api.giphy.com/*",
|
"https://api.giphy.com/*",
|
||||||
"https://*.voxeet.com/*"
|
"https://*.voxeet.com/*"
|
||||||
],
|
],
|
||||||
@@ -93,7 +94,8 @@
|
|||||||
"https://*.vimeo.com/*",
|
"https://*.vimeo.com/*",
|
||||||
"https://*.dailymotion.com/*",
|
"https://*.dailymotion.com/*",
|
||||||
"https://*.imdb.com/tv/*",
|
"https://*.imdb.com/tv/*",
|
||||||
"https://*.paramountplus.com/*"
|
"https://*.paramountplus.com/*",
|
||||||
|
"https://*.starz.com/*"
|
||||||
],
|
],
|
||||||
"run_at": "document_idle",
|
"run_at": "document_idle",
|
||||||
"js": ["/static/js/content.js"],
|
"js": ["/static/js/content.js"],
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export const PLAYER_SOURCE = {
|
|||||||
PRIMEVIDEO: "primevideo.",
|
PRIMEVIDEO: "primevideo.",
|
||||||
HULU: "hulu.",
|
HULU: "hulu.",
|
||||||
DISNEY: "disneyplus.",
|
DISNEY: "disneyplus.",
|
||||||
|
YOUTUBETV: "tv.youtube.",
|
||||||
YOUTUBE: "youtube.",
|
YOUTUBE: "youtube.",
|
||||||
HBONOW: "hbonow.",
|
HBONOW: "hbonow.",
|
||||||
HBOMAX: "hbomax.",
|
HBOMAX: "hbomax.",
|
||||||
@@ -45,6 +46,7 @@ export const PLAYER_SOURCE = {
|
|||||||
DAILYMOTION: "dailymotion.",
|
DAILYMOTION: "dailymotion.",
|
||||||
IMDB: "imdb.",
|
IMDB: "imdb.",
|
||||||
PARAMOUNTPLUS: "paramountplus.",
|
PARAMOUNTPLUS: "paramountplus.",
|
||||||
|
STARZ: "starz.",
|
||||||
LOCAL: "localhost",
|
LOCAL: "localhost",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -56,6 +58,7 @@ export const getPlayerSource = () => {
|
|||||||
if (HREF.includes(PLAYER_SOURCE.PRIMEVIDEO)) return PLAYER_SOURCE.AMAZON;
|
if (HREF.includes(PLAYER_SOURCE.PRIMEVIDEO)) return PLAYER_SOURCE.AMAZON;
|
||||||
if (HREF.includes(PLAYER_SOURCE.IMDB)) return PLAYER_SOURCE.AMAZON;
|
if (HREF.includes(PLAYER_SOURCE.IMDB)) return PLAYER_SOURCE.AMAZON;
|
||||||
if (HREF.includes(PLAYER_SOURCE.DISNEY)) return PLAYER_SOURCE.DISNEY;
|
if (HREF.includes(PLAYER_SOURCE.DISNEY)) return PLAYER_SOURCE.DISNEY;
|
||||||
|
if (HREF.includes(PLAYER_SOURCE.YOUTUBETV)) return PLAYER_SOURCE.YOUTUBETV;
|
||||||
if (HREF.includes(PLAYER_SOURCE.YOUTUBE)) return PLAYER_SOURCE.YOUTUBE;
|
if (HREF.includes(PLAYER_SOURCE.YOUTUBE)) return PLAYER_SOURCE.YOUTUBE;
|
||||||
if (HREF.includes(PLAYER_SOURCE.HBONOW)) return PLAYER_SOURCE.HBONOW;
|
if (HREF.includes(PLAYER_SOURCE.HBONOW)) return PLAYER_SOURCE.HBONOW;
|
||||||
if (HREF.includes(PLAYER_SOURCE.HBOMAX)) return PLAYER_SOURCE.HBOMAX;
|
if (HREF.includes(PLAYER_SOURCE.HBOMAX)) return PLAYER_SOURCE.HBOMAX;
|
||||||
@@ -75,6 +78,7 @@ export const getPlayerSource = () => {
|
|||||||
if (HREF.includes(PLAYER_SOURCE.DAILYMOTION))
|
if (HREF.includes(PLAYER_SOURCE.DAILYMOTION))
|
||||||
return PLAYER_SOURCE.DAILYMOTION;
|
return PLAYER_SOURCE.DAILYMOTION;
|
||||||
if (HREF.includes(PLAYER_SOURCE.PARAMOUNTPLUS)) return PLAYER_SOURCE.PARAMOUNTPLUS;
|
if (HREF.includes(PLAYER_SOURCE.PARAMOUNTPLUS)) return PLAYER_SOURCE.PARAMOUNTPLUS;
|
||||||
|
if (HREF.includes(PLAYER_SOURCE.STARZ)) return PLAYER_SOURCE.STARZ;
|
||||||
if (HREF.includes(PLAYER_SOURCE.LOCAL)) return PLAYER_SOURCE.LOCAL;
|
if (HREF.includes(PLAYER_SOURCE.LOCAL)) return PLAYER_SOURCE.LOCAL;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import {
|
|||||||
} from "./Api";
|
} from "./Api";
|
||||||
import Tutorial from "./Tutorial";
|
import Tutorial from "./Tutorial";
|
||||||
|
|
||||||
const APP_VERSION = "1.7.13";
|
const APP_VERSION = "1.7.14";
|
||||||
|
|
||||||
const darkTheme = createMuiTheme({
|
const darkTheme = createMuiTheme({
|
||||||
palette: {
|
palette: {
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ import {
|
|||||||
CancelRounded,
|
CancelRounded,
|
||||||
VideocamRounded,
|
VideocamRounded,
|
||||||
VideocamOffRounded,
|
VideocamOffRounded,
|
||||||
|
Remove,
|
||||||
|
Add,
|
||||||
} from "@material-ui/icons";
|
} from "@material-ui/icons";
|
||||||
import Create from "./Create";
|
import Create from "./Create";
|
||||||
import { goTo } from "route-lite";
|
import { goTo } from "route-lite";
|
||||||
@@ -120,6 +122,7 @@ export default class Chat extends Component {
|
|||||||
selectedAudioOutput: "",
|
selectedAudioOutput: "",
|
||||||
videoInputs: [],
|
videoInputs: [],
|
||||||
selectedVideoInput: "",
|
selectedVideoInput: "",
|
||||||
|
minimized: false,
|
||||||
};
|
};
|
||||||
this.port = null;
|
this.port = null;
|
||||||
this.gifClick = this.gifClick.bind(this);
|
this.gifClick = this.gifClick.bind(this);
|
||||||
@@ -143,9 +146,8 @@ export default class Chat extends Component {
|
|||||||
);
|
);
|
||||||
this.updateAllowAutoRejoin = this.updateAllowAutoRejoin.bind(this);
|
this.updateAllowAutoRejoin = this.updateAllowAutoRejoin.bind(this);
|
||||||
this.updateAllowAutoFollow = this.updateAllowAutoFollow.bind(this);
|
this.updateAllowAutoFollow = this.updateAllowAutoFollow.bind(this);
|
||||||
this.updateAllowChatNotification = this.updateAllowChatNotification.bind(
|
this.updateAllowChatNotification =
|
||||||
this
|
this.updateAllowChatNotification.bind(this);
|
||||||
);
|
|
||||||
this.mCallManager = new CallManager(
|
this.mCallManager = new CallManager(
|
||||||
this.callEventListener,
|
this.callEventListener,
|
||||||
this.props.notify
|
this.props.notify
|
||||||
@@ -602,6 +604,7 @@ export default class Chat extends Component {
|
|||||||
selectedAudioOutput,
|
selectedAudioOutput,
|
||||||
videoInputs,
|
videoInputs,
|
||||||
selectedVideoInput,
|
selectedVideoInput,
|
||||||
|
minimized,
|
||||||
} = this.state;
|
} = this.state;
|
||||||
const { status } = this.props;
|
const { status } = this.props;
|
||||||
const { callEnabled } = status;
|
const { callEnabled } = status;
|
||||||
@@ -654,6 +657,23 @@ export default class Chat extends Component {
|
|||||||
{name}
|
{name}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<Tooltip
|
||||||
|
title={
|
||||||
|
minimized ? "Expand Show Details" : "Minimize Show Details"
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<IconButton
|
||||||
|
onClickCapture={(ev) => {
|
||||||
|
this.setState({ minimized: !minimized });
|
||||||
|
ev.preventDefault();
|
||||||
|
ev.stopPropagation();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{minimized ? <Add /> : <Remove />}
|
||||||
|
</IconButton>
|
||||||
|
</Tooltip>
|
||||||
|
</div>
|
||||||
</ExpansionPanelSummary>
|
</ExpansionPanelSummary>
|
||||||
<ExpansionPanelDetails>
|
<ExpansionPanelDetails>
|
||||||
<TextField
|
<TextField
|
||||||
@@ -905,7 +925,7 @@ export default class Chat extends Component {
|
|||||||
)}
|
)}
|
||||||
</ExpansionPanelDetails>
|
</ExpansionPanelDetails>
|
||||||
</ExpansionPanel>
|
</ExpansionPanel>
|
||||||
{player ? (
|
{!minimized && player ? (
|
||||||
<Card elevation={0} className="media-info-card">
|
<Card elevation={0} className="media-info-card">
|
||||||
{player.showName &&
|
{player.showName &&
|
||||||
player.status !== PLAYER_STATUS.NOT_PLAYING ? (
|
player.status !== PLAYER_STATUS.NOT_PLAYING ? (
|
||||||
@@ -1047,9 +1067,15 @@ export default class Chat extends Component {
|
|||||||
? () => this.handleVideo()
|
? () => this.handleVideo()
|
||||||
: () => this.handlePhoneCall(true)
|
: () => this.handlePhoneCall(true)
|
||||||
}
|
}
|
||||||
color={((onCall && usingVideo) || !onCall) ? "secondary" : "primary"}
|
color={
|
||||||
|
(onCall && usingVideo) || !onCall ? "secondary" : "primary"
|
||||||
|
}
|
||||||
>
|
>
|
||||||
{((onCall && usingVideo) || !onCall)? <VideocamRounded /> : <VideocamOffRounded />}
|
{(onCall && usingVideo) || !onCall ? (
|
||||||
|
<VideocamRounded />
|
||||||
|
) : (
|
||||||
|
<VideocamOffRounded />
|
||||||
|
)}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -115,11 +115,12 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
font-weight: 100;
|
|
||||||
font-family: "Roboto";
|
font-family: "Roboto";
|
||||||
letter-spacing: 1.5px;
|
letter-spacing: 1.5px;
|
||||||
white-space: break-spaces;
|
white-space: break-spaces;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
color: white;
|
||||||
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
.thread-message img {
|
.thread-message img {
|
||||||
max-width: 55%;
|
max-width: 55%;
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ export default class VideoListener {
|
|||||||
switch (this.video.source) {
|
switch (this.video.source) {
|
||||||
case PLAYER_SOURCE.CRUNCHYROLL:
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
||||||
case PLAYER_SOURCE.FUNIMATION:
|
case PLAYER_SOURCE.FUNIMATION:
|
||||||
|
case PLAYER_SOURCE.STARZ:
|
||||||
window.removeEventListener("watchParty", this.crunchyRollListener);
|
window.removeEventListener("watchParty", this.crunchyRollListener);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -138,12 +139,14 @@ export default class VideoListener {
|
|||||||
case PLAYER_SOURCE.DAILYMOTION:
|
case PLAYER_SOURCE.DAILYMOTION:
|
||||||
case PLAYER_SOURCE.PARAMOUNTPLUS:
|
case PLAYER_SOURCE.PARAMOUNTPLUS:
|
||||||
case PLAYER_SOURCE.PEACOCK:
|
case PLAYER_SOURCE.PEACOCK:
|
||||||
|
case PLAYER_SOURCE.YOUTUBETV:
|
||||||
this.video.element.currentTime = serverPlayer.time;
|
this.video.element.currentTime = serverPlayer.time;
|
||||||
await this.timeout(500);
|
await this.timeout(500);
|
||||||
break;
|
break;
|
||||||
case PLAYER_SOURCE.CRUNCHYROLL:
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
||||||
case PLAYER_SOURCE.FUNIMATION:
|
case PLAYER_SOURCE.FUNIMATION:
|
||||||
case PLAYER_SOURCE.ROOSTERTEETH:
|
case PLAYER_SOURCE.ROOSTERTEETH:
|
||||||
|
case PLAYER_SOURCE.STARZ:
|
||||||
window.postMessage(
|
window.postMessage(
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
watchPartyDirection: "TO_SCRIPT",
|
watchPartyDirection: "TO_SCRIPT",
|
||||||
@@ -161,7 +164,8 @@ export default class VideoListener {
|
|||||||
if (
|
if (
|
||||||
PLAYER_SOURCE.CRUNCHYROLL === this.video.source ||
|
PLAYER_SOURCE.CRUNCHYROLL === this.video.source ||
|
||||||
PLAYER_SOURCE.FUNIMATION === this.video.source ||
|
PLAYER_SOURCE.FUNIMATION === this.video.source ||
|
||||||
PLAYER_SOURCE.ROOSTERTEETH === this.video.source
|
PLAYER_SOURCE.ROOSTERTEETH === this.video.source ||
|
||||||
|
PLAYER_SOURCE.STARZ === this.video.source
|
||||||
) {
|
) {
|
||||||
window.postMessage(
|
window.postMessage(
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
@@ -208,6 +212,7 @@ export default class VideoListener {
|
|||||||
switch (this.video.source) {
|
switch (this.video.source) {
|
||||||
case PLAYER_SOURCE.CRUNCHYROLL:
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
||||||
case PLAYER_SOURCE.FUNIMATION:
|
case PLAYER_SOURCE.FUNIMATION:
|
||||||
|
case PLAYER_SOURCE.STARZ:
|
||||||
window.addEventListener("watchParty", this.crunchyRollListener);
|
window.addEventListener("watchParty", this.crunchyRollListener);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -254,16 +259,14 @@ export default class VideoListener {
|
|||||||
"amp-video-player-internal"
|
"amp-video-player-internal"
|
||||||
);
|
);
|
||||||
if (appleTvInternal) {
|
if (appleTvInternal) {
|
||||||
const appleTvVideoContainer = appleTvInternal.shadowRoot.querySelector(
|
const appleTvVideoContainer =
|
||||||
"amp-video-player"
|
appleTvInternal.shadowRoot.querySelector("amp-video-player");
|
||||||
);
|
|
||||||
if (appleTvVideoContainer) {
|
if (appleTvVideoContainer) {
|
||||||
const appleTvShowContainer = appleTvVideoContainer.querySelector(
|
const appleTvShowContainer = appleTvVideoContainer.querySelector(
|
||||||
nS.show
|
nS.show
|
||||||
);
|
);
|
||||||
const appleTvEpisodeContainer = appleTvVideoContainer.querySelector(
|
const appleTvEpisodeContainer =
|
||||||
nS.episode
|
appleTvVideoContainer.querySelector(nS.episode);
|
||||||
);
|
|
||||||
const appleTvShow = appleTvShowContainer
|
const appleTvShow = appleTvShowContainer
|
||||||
? appleTvShowContainer.innerText
|
? appleTvShowContainer.innerText
|
||||||
: "";
|
: "";
|
||||||
@@ -344,6 +347,7 @@ export default class VideoListener {
|
|||||||
switch (this.video.source) {
|
switch (this.video.source) {
|
||||||
case PLAYER_SOURCE.CRUNCHYROLL:
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
||||||
case PLAYER_SOURCE.FUNIMATION:
|
case PLAYER_SOURCE.FUNIMATION:
|
||||||
|
case PLAYER_SOURCE.STARZ:
|
||||||
window.postMessage(
|
window.postMessage(
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
watchPartyDirection: "TO_SCRIPT",
|
watchPartyDirection: "TO_SCRIPT",
|
||||||
@@ -408,7 +412,7 @@ export default class VideoListener {
|
|||||||
hve !== undefined &&
|
hve !== undefined &&
|
||||||
(this.video.element !== hve || this.video.element === null)
|
(this.video.element !== hve || this.video.element === null)
|
||||||
) {
|
) {
|
||||||
hve.classList.add('hbo-player');
|
hve.classList.add("hbo-player");
|
||||||
this.firstTimeSync(hve);
|
this.firstTimeSync(hve);
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
@@ -438,6 +442,61 @@ export default class VideoListener {
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
break;
|
break;
|
||||||
case PLAYER_SOURCE.CRUNCHYROLL:
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
||||||
|
var sendToWatchPartyApp = function (pS, pT) {
|
||||||
|
var customWatchPartyEvent = new CustomEvent("watchParty", {
|
||||||
|
detail: {
|
||||||
|
watchPartyDirection: "TO_APP",
|
||||||
|
type: "WATCH_PARTY_PLAYER_UPDATE",
|
||||||
|
status: pS,
|
||||||
|
time: pT,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
window.dispatchEvent(customWatchPartyEvent);
|
||||||
|
},
|
||||||
|
watchPartyGetTimeAndSend = function (pS) {
|
||||||
|
if (window.VILOS_PLAYERJS) {
|
||||||
|
window.VILOS_PLAYERJS.getCurrentTime(function (pT) {
|
||||||
|
sendToWatchPartyApp(pS, pT);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watchPartySendPlaying = function () {
|
||||||
|
watchPartyGetTimeAndSend("PLAYING");
|
||||||
|
},
|
||||||
|
watchPartySendPaused = function () {
|
||||||
|
watchPartyGetTimeAndSend("PAUSED");
|
||||||
|
},
|
||||||
|
watchPartyInteraction = function (e) {
|
||||||
|
if (e.source === window) {
|
||||||
|
const data = JSON.parse(e.data);
|
||||||
|
if (data.watchPartyDirection === "TO_SCRIPT") {
|
||||||
|
if (data.type === "WATCH_PARTY_ADD_LISTENERS") {
|
||||||
|
if (window.VILOS_PLAYERJS) {
|
||||||
|
window.VILOS_PLAYERJS.on(
|
||||||
|
"play",
|
||||||
|
watchPartySendPlaying,
|
||||||
|
"player.js"
|
||||||
|
);
|
||||||
|
window.VILOS_PLAYERJS.on(
|
||||||
|
"pause",
|
||||||
|
watchPartySendPaused,
|
||||||
|
"player.js"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else if (data.type === "WATCH_PARTY_SEEK") {
|
||||||
|
if (window.VILOS_PLAYERJS) {
|
||||||
|
window.VILOS_PLAYERJS.setCurrentTime(data.time);
|
||||||
|
}
|
||||||
|
} else if (data.type === "WATCH_PARTY_STATUS") {
|
||||||
|
if (window.VILOS_PLAYERJS) {
|
||||||
|
if (data.status === "PAUSED") window.VILOS_PLAYERJS.pause();
|
||||||
|
if (data.status === "PLAYING") window.VILOS_PLAYERJS.play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
window.addEventListener("message", watchPartyInteraction);
|
||||||
const crunchyRollInject = `var sendToWatchPartyApp = function(pS, pT) { var customWatchPartyEvent = new CustomEvent('watchParty', { detail: { watchPartyDirection: 'TO_APP', type: 'WATCH_PARTY_PLAYER_UPDATE', status: pS, time: pT } }); window.dispatchEvent(customWatchPartyEvent); }, watchPartyGetTimeAndSend = function(pS) { if (window.VILOS_PLAYERJS) { window.VILOS_PLAYERJS.getCurrentTime(function(pT) { sendToWatchPartyApp(pS, pT); }); } }, watchPartySendPlaying = function() { watchPartyGetTimeAndSend('PLAYING'); }, watchPartySendPaused = function() { watchPartyGetTimeAndSend('PAUSED'); }, watchPartyInteraction = function(e) { if (e.source === window) { const data = JSON.parse(e.data); if (data.watchPartyDirection === 'TO_SCRIPT') { if (data.type === 'WATCH_PARTY_ADD_LISTENERS') { if (window.VILOS_PLAYERJS) { window.VILOS_PLAYERJS.on('play', watchPartySendPlaying, 'player.js'); window.VILOS_PLAYERJS.on('pause', watchPartySendPaused, 'player.js'); } } else if (data.type === 'WATCH_PARTY_SEEK') { if (window.VILOS_PLAYERJS) { window.VILOS_PLAYERJS.setCurrentTime(data.time); } } else if (data.type === 'WATCH_PARTY_STATUS') { if (window.VILOS_PLAYERJS) { if (data.status === 'PAUSED') window.VILOS_PLAYERJS.pause(); if (data.status === 'PLAYING') window.VILOS_PLAYERJS.play(); } } } } }; window.addEventListener("message", watchPartyInteraction);`;
|
const crunchyRollInject = `var sendToWatchPartyApp = function(pS, pT) { var customWatchPartyEvent = new CustomEvent('watchParty', { detail: { watchPartyDirection: 'TO_APP', type: 'WATCH_PARTY_PLAYER_UPDATE', status: pS, time: pT } }); window.dispatchEvent(customWatchPartyEvent); }, watchPartyGetTimeAndSend = function(pS) { if (window.VILOS_PLAYERJS) { window.VILOS_PLAYERJS.getCurrentTime(function(pT) { sendToWatchPartyApp(pS, pT); }); } }, watchPartySendPlaying = function() { watchPartyGetTimeAndSend('PLAYING'); }, watchPartySendPaused = function() { watchPartyGetTimeAndSend('PAUSED'); }, watchPartyInteraction = function(e) { if (e.source === window) { const data = JSON.parse(e.data); if (data.watchPartyDirection === 'TO_SCRIPT') { if (data.type === 'WATCH_PARTY_ADD_LISTENERS') { if (window.VILOS_PLAYERJS) { window.VILOS_PLAYERJS.on('play', watchPartySendPlaying, 'player.js'); window.VILOS_PLAYERJS.on('pause', watchPartySendPaused, 'player.js'); } } else if (data.type === 'WATCH_PARTY_SEEK') { if (window.VILOS_PLAYERJS) { window.VILOS_PLAYERJS.setCurrentTime(data.time); } } else if (data.type === 'WATCH_PARTY_STATUS') { if (window.VILOS_PLAYERJS) { if (data.status === 'PAUSED') window.VILOS_PLAYERJS.pause(); if (data.status === 'PLAYING') window.VILOS_PLAYERJS.play(); } } } } }; window.addEventListener("message", watchPartyInteraction);`;
|
||||||
const crunchyRollInjectScript = document.createElement("script");
|
const crunchyRollInjectScript = document.createElement("script");
|
||||||
crunchyRollInjectScript.text = crunchyRollInject;
|
crunchyRollInjectScript.text = crunchyRollInject;
|
||||||
@@ -518,6 +577,21 @@ export default class VideoListener {
|
|||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
break;
|
break;
|
||||||
|
case PLAYER_SOURCE.STARZ:
|
||||||
|
const starzInject = `var sendToWatchPartyApp=function(pS,pT){var customWatchPartyEvent=new CustomEvent("watchParty",{detail:{watchPartyDirection:"TO_APP",type:"WATCH_PARTY_PLAYER_UPDATE",status:pS,time:pT,},});window.dispatchEvent(customWatchPartyEvent)},watchPartyGetTimeAndSend=function(pS){const player=document.querySelector("${vS}");if(player){const playerNode=player.parentNode;if(playerNode){sendToWatchPartyApp(pS,playerNode.player.getCurrentTime())}}},watchPartySendPlaying=function(){watchPartyGetTimeAndSend("PLAYING")},watchPartySendPaused=function(){watchPartyGetTimeAndSend("PAUSED")},watchPartyInteraction=function(e){const data=JSON.parse(e.data);const player=document.querySelector("${vS}");if(player){const playerNode=player.parentNode;if(playerNode.player){if(data.watchPartyDirection==="TO_SCRIPT"){if(data.type==="WATCH_PARTY_SEEK"){playerNode.player.seek(data.time)}else if(data.type==="WATCH_PARTY_STATUS"){if(data.status==="PAUSED"){playerNode.player.pause()}if(data.status==="PLAYING"){playerNode.player.play()}}else if(data.type==="WATCH_PARTY_ADD_LISTENERS"){playerNode.player.on("playing",watchPartySendPlaying);playerNode.player.on("paused",watchPartySendPaused)}}}}};window.addEventListener("message",watchPartyInteraction);`;
|
||||||
|
const starzInjectScript = document.createElement("script");
|
||||||
|
starzInjectScript.text = starzInject;
|
||||||
|
document.head.appendChild(starzInjectScript);
|
||||||
|
setInterval(() => {
|
||||||
|
var sve = document.querySelector(vS);
|
||||||
|
if (
|
||||||
|
sve !== null &&
|
||||||
|
(this.video.element !== sve || this.video.element === null)
|
||||||
|
) {
|
||||||
|
this.firstTimeSync(sve);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
break;
|
||||||
case PLAYER_SOURCE.STAN:
|
case PLAYER_SOURCE.STAN:
|
||||||
case PLAYER_SOURCE.HOTSTAR:
|
case PLAYER_SOURCE.HOTSTAR:
|
||||||
case PLAYER_SOURCE.VIKI:
|
case PLAYER_SOURCE.VIKI:
|
||||||
@@ -528,6 +602,7 @@ export default class VideoListener {
|
|||||||
case PLAYER_SOURCE.VIMEO:
|
case PLAYER_SOURCE.VIMEO:
|
||||||
case PLAYER_SOURCE.DAILYMOTION:
|
case PLAYER_SOURCE.DAILYMOTION:
|
||||||
case PLAYER_SOURCE.PARAMOUNTPLUS:
|
case PLAYER_SOURCE.PARAMOUNTPLUS:
|
||||||
|
case PLAYER_SOURCE.YOUTUBETV:
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
var newVideoElement = document.querySelector(vS);
|
var newVideoElement = document.querySelector(vS);
|
||||||
if (
|
if (
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ body.visible {
|
|||||||
body.visible .watch-party-fab {
|
body.visible .watch-party-fab {
|
||||||
right: var(--party-width) !important;
|
right: var(--party-width) !important;
|
||||||
transform: translateX(0);
|
transform: translateX(0);
|
||||||
top: 22.5px !important;
|
top: 6.11px !important;
|
||||||
border-top-right-radius: 0;
|
border-top-right-radius: 0;
|
||||||
border-bottom-right-radius: 0;
|
border-bottom-right-radius: 0;
|
||||||
background-color: #424242 !important;
|
background-color: #424242 !important;
|
||||||
@@ -72,7 +72,9 @@ body.disney.visible #hudson-wrapper, /* DISNEY */
|
|||||||
body.youtube.visible #content.ytd-app, /* YOUTUBE */
|
body.youtube.visible #content.ytd-app, /* YOUTUBE */
|
||||||
body.youtube.visible #masthead-container, /* YOUTUBE HEADER */
|
body.youtube.visible #masthead-container, /* YOUTUBE HEADER */
|
||||||
body.googleplay.visible div.llhEMd.bYEzqc.LAhoGb.iWO5td, /* GOOGLE PLAY MOVIES */
|
body.googleplay.visible div.llhEMd.bYEzqc.LAhoGb.iWO5td, /* GOOGLE PLAY MOVIES */
|
||||||
body.viki.visible div.video-player /* VIKI */ {
|
body.viki.visible div.video-player, /* VIKI */
|
||||||
|
body.starz.visible starz-play,
|
||||||
|
body.youtubetv.visible ytu-app-vessel /* STARZ */ {
|
||||||
max-width: var(--body-width) !important;
|
max-width: var(--body-width) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,6 +133,10 @@ body.youtube.visible ytd-miniplayer {
|
|||||||
right: calc(var(--party-width) + 20px);
|
right: calc(var(--party-width) + 20px);
|
||||||
}
|
}
|
||||||
/* AMAZON STYLING FIX */
|
/* AMAZON STYLING FIX */
|
||||||
|
body.amazon-prime,
|
||||||
|
body.amazon-prime.visible {
|
||||||
|
background-color: initial !important;
|
||||||
|
}
|
||||||
body.amazon-prime #party-routes-wrapper input,
|
body.amazon-prime #party-routes-wrapper input,
|
||||||
body.amazon-prime #party-routes-wrapper textarea {
|
body.amazon-prime #party-routes-wrapper textarea {
|
||||||
border: initial !important;
|
border: initial !important;
|
||||||
@@ -154,6 +160,9 @@ body.amazon-prime textarea:focus {
|
|||||||
body.amazon-prime #pv-nav {
|
body.amazon-prime #pv-nav {
|
||||||
max-width: var(--body-width);
|
max-width: var(--body-width);
|
||||||
}
|
}
|
||||||
|
body.amazon-prime #party_wrapper input {
|
||||||
|
background: initial !important;
|
||||||
|
}
|
||||||
/* PEACOCK STYLING FIX */
|
/* PEACOCK STYLING FIX */
|
||||||
body.peacock.visible .header-buttons {
|
body.peacock.visible .header-buttons {
|
||||||
max-width: calc(100% - calc(var(--party-width) + 50px));
|
max-width: calc(100% - calc(var(--party-width) + 50px));
|
||||||
@@ -237,6 +246,10 @@ body.crunchyroll.visible #showmedia_video_player {
|
|||||||
body.crunchyroll.visible #vilos-player {
|
body.crunchyroll.visible #vilos-player {
|
||||||
max-height: 42vw !important;
|
max-height: 42vw !important;
|
||||||
}
|
}
|
||||||
|
body.crunchyroll,
|
||||||
|
body.crunchyroll.visible {
|
||||||
|
background-color: #f2f2f2 !important;
|
||||||
|
}
|
||||||
/* APPLE TV STYLING */
|
/* APPLE TV STYLING */
|
||||||
body.apple .thread-wrapper .ReactVirtualized__Grid__innerScrollContainer {
|
body.apple .thread-wrapper .ReactVirtualized__Grid__innerScrollContainer {
|
||||||
box-sizing: initial !important;
|
box-sizing: initial !important;
|
||||||
@@ -374,6 +387,27 @@ body.visible.imdb-tv .freedive-video-container .freedive-video-modal.modal__open
|
|||||||
body.visible.paramountplus header {
|
body.visible.paramountplus header {
|
||||||
max-width: var(--body-width);
|
max-width: var(--body-width);
|
||||||
}
|
}
|
||||||
|
/* STARZ FIXES */
|
||||||
|
body.visible.starz .overlay.overlay-open {
|
||||||
|
max-width: var(--body-width);
|
||||||
|
right: unset;
|
||||||
|
}
|
||||||
|
body.starz starz-player {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
body.visible.starz starz-player {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
body.visible.starz #party-routes-wrapper input,
|
||||||
|
body.visible.starz #party-routes-wrapper textarea {
|
||||||
|
border: initial !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
background: initial !important;
|
||||||
|
height: initial !important;
|
||||||
|
}
|
||||||
|
body.visible.youtubetv .content-container.ytu-browse-dialog {
|
||||||
|
max-width: var(--body-width);
|
||||||
|
}
|
||||||
|
|
||||||
#party-loading {
|
#party-loading {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ switch (getPlayerSource()) {
|
|||||||
case PLAYER_SOURCE.DISNEY:
|
case PLAYER_SOURCE.DISNEY:
|
||||||
document.body.classList.add("disney");
|
document.body.classList.add("disney");
|
||||||
break;
|
break;
|
||||||
|
case PLAYER_SOURCE.YOUTUBETV:
|
||||||
|
document.body.classList.add("youtubetv");
|
||||||
|
break;
|
||||||
case PLAYER_SOURCE.YOUTUBE:
|
case PLAYER_SOURCE.YOUTUBE:
|
||||||
document.body.classList.add("youtube");
|
document.body.classList.add("youtube");
|
||||||
break;
|
break;
|
||||||
@@ -179,6 +182,21 @@ switch (getPlayerSource()) {
|
|||||||
{ capture: true }
|
{ capture: true }
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
case PLAYER_SOURCE.STARZ:
|
||||||
|
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("starz");
|
||||||
|
break;
|
||||||
case PLAYER_SOURCE.LOCAL:
|
case PLAYER_SOURCE.LOCAL:
|
||||||
document.body.classList.add("local");
|
document.body.classList.add("local");
|
||||||
break;
|
break;
|
||||||
|
|||||||
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 292 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 261 KiB |
|
Before Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "watch-party-api",
|
"name": "watch-party-api",
|
||||||
"version": "1.7.13",
|
"version": "1.7.14",
|
||||||
"description": "Cloud Functions for Watch Party",
|
"description": "Cloud Functions for Watch Party",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "watch-party",
|
"name": "watch-party",
|
||||||
"version": "1.7.13",
|
"version": "1.7.14",
|
||||||
"description": "Watch Party",
|
"description": "Watch Party",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "firebase emulators:start",
|
"start": "firebase emulators:start",
|
||||||
"build": "cd ./app && node ./scripts/build.js"
|
"build": "cd ./app && node ./scripts/build.js"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {},
|
"dependencies": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -283,6 +283,9 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
<a href="/changes/v1.7.13/" data-font="sans-bold" class="support-card"
|
<a href="/changes/v1.7.13/" data-font="sans-bold" class="support-card"
|
||||||
>v1.7.13</a
|
>v1.7.13</a
|
||||||
>
|
>
|
||||||
|
<a href="/changes/v1.7.14/" data-font="sans-bold" class="support-card"
|
||||||
|
>v1.7.14</a
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
|
|||||||
@@ -0,0 +1,373 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-----------------------------------------------------------------------
|
||||||
|
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 - 2021
|
||||||
|
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 INTELLECTUAL PROPERTY OF AYUSHYA AMITABH, AND MAY NOT BE
|
||||||
|
COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
||||||
|
------------------------------------------------------------------------->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Watch Party syncs streamed content across devices. Watch your favorites, with your favorite people."
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="keywords"
|
||||||
|
content="watch party, sharing, video call, voice phone, free, chrome, firefox, netflix, hulu, disney plus, prime video, youtube, hbo, peacock tv, google play, crunchyroll, apple tv, viki, funimation, roosterteeth, stan, hotstar"
|
||||||
|
/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<link rel="icon" href="/icons/favicon.png" />
|
||||||
|
<link rel="manifest" href="/manifest.json" />
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
as="font"
|
||||||
|
href="/fonts/glacialindifference-bold-webfont.woff"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
as="font"
|
||||||
|
href="/fonts/glacialindifference-bold-webfont.woff2"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
as="font"
|
||||||
|
href="/fonts/glacialindifference-italic-webfont.woff"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
as="font"
|
||||||
|
href="/fonts/glacialindifference-italic-webfont.woff2"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
as="font"
|
||||||
|
href="/fonts/glacialindifference-regular-webfont.woff"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
as="font"
|
||||||
|
href="/fonts/glacialindifference-regular-webfont.woff2"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<style>
|
||||||
|
@import "/styles/variables.css";
|
||||||
|
@import "/styles/variables-dark.css" screen and
|
||||||
|
(prefers-color-scheme: dark);
|
||||||
|
|
||||||
|
@import "/styles/extrasmall.css";
|
||||||
|
@import "/styles/small.css" only screen and (min-width: 768px) and
|
||||||
|
(max-width: 1024px);
|
||||||
|
@import "/styles/medium.css" only screen and (min-width: 1024px);
|
||||||
|
@import "/styles/large.css" only screen and (min-width: 1366px);
|
||||||
|
@import "/styles/extralarge.css" only screen and (min-width: 1921px);
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "GlacialBold";
|
||||||
|
src: url("/fonts/glacialindifference-bold-webfont.woff2")
|
||||||
|
format("woff2"),
|
||||||
|
url("/fonts/glacialindifference-bold-webfont.woff") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "GlacialItalic";
|
||||||
|
src: url("/fonts/glacialindifference-italic-webfont.woff2")
|
||||||
|
format("woff2"),
|
||||||
|
url("/fonts/glacialindifference-italic-webfont.woff") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Glacial";
|
||||||
|
src: url("/fonts/glacialindifference-regular-webfont.woff2")
|
||||||
|
format("woff2"),
|
||||||
|
url("/fonts/glacialindifference-regular-webfont.woff") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
[data-font="sans"] {
|
||||||
|
font-family: "Glacial", sans-serif;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
[data-font="sans-bold"] {
|
||||||
|
font-family: "GlacialBold", sans-serif;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
[data-font="sans-italic"] {
|
||||||
|
font-family: "GlacialItalic", sans-serif;
|
||||||
|
font-style: italic;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<title>Watch Party | V1.7.14</title>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag() {
|
||||||
|
dataLayer.push(arguments);
|
||||||
|
}
|
||||||
|
gtag("js", new Date());
|
||||||
|
|
||||||
|
gtag("config", "UA-87498806-2");
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="heading bubble empty right">
|
||||||
|
<a href="/" class="title underlink" data-font="sans-bold">WATCH PARTY</a>
|
||||||
|
<h4 class="sub-title" data-font="sans">
|
||||||
|
WATCH YOUR FAVORITES,<br />WITH YOUR FAVORITE PEOPLE
|
||||||
|
</h4>
|
||||||
|
<a
|
||||||
|
href="https://get.firefoxwatchparty.com"
|
||||||
|
class="big-button"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
GET FIREFOX ADD-ON
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://get.edgewatchparty.com"
|
||||||
|
class="big-button"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
GET EDGE ADD-ON
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://get.chromewatchparty.com"
|
||||||
|
class="big-button"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
GET CHROME EXTENSION
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: 10rem" class="text-section">
|
||||||
|
<div class="info">
|
||||||
|
<div class="info-text">
|
||||||
|
<a href="/changes" class="title underlink" data-font="sans-bold"
|
||||||
|
>CHANGELOG</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<div class="info-text">
|
||||||
|
<div>
|
||||||
|
<h4 class="sub-title" data-font="sans-bold">V1.7.14</h4>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p data-font="sans" class="body">ADD STARZ SUPPORT</p>
|
||||||
|
<p data-font="sans" class="body">ADD YOUTUBE TV SUPPORT</p>
|
||||||
|
<p data-font="sans" class="body">ADD ABILITY TO HIDE SHOW DETAILS</p>
|
||||||
|
<p data-font="sans" class="body">PREPARE FOR MANIFEST V3 MIGRATION</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<div class="info-text">
|
||||||
|
<div></div>
|
||||||
|
<a
|
||||||
|
href="mailto:admin@chromewatchparty.com?subject=Changelog Questions"
|
||||||
|
class="underlink"
|
||||||
|
data-font="sans-bold"
|
||||||
|
>
|
||||||
|
ASK ABOUT CHANGES
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<div class="link-section">
|
||||||
|
<div class="link-list">
|
||||||
|
<h6 class="link-list-title" data-font="sans-bold">FOR USERS</h6>
|
||||||
|
<a class="underlink" href="/welcome#tips" data-font="sans">FAQ</a>
|
||||||
|
<a class="underlink" href="/changes" data-font="sans">Changelog</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="mailto:admin@chromewatchparty.com?subject=User Feedback"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
Give Feedback
|
||||||
|
</a>
|
||||||
|
<a class="underlink" href="/welcome" data-font="sans"
|
||||||
|
>Getting Started</a
|
||||||
|
>
|
||||||
|
<a class="underlink" href="/donate" data-font="sans">
|
||||||
|
Support Watch Party
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://get.firefoxwatchparty.com"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
Get Firefox Add-On
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://get.edgewatchparty.com"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
Get Edge Add-On
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://get.chromewatchparty.com"
|
||||||
|
data-font="sans"
|
||||||
|
>
|
||||||
|
Get Chrome Extension
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="link-list">
|
||||||
|
<h6 class="link-list-title" data-font="sans-bold">FOR DEVELOPERS</h6>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://firebase.google.com"
|
||||||
|
data-font="sans"
|
||||||
|
>Firebase</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://material-ui.com"
|
||||||
|
data-font="sans"
|
||||||
|
>Material UI</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://dolby.io"
|
||||||
|
data-font="sans"
|
||||||
|
>Dolby Voxeet</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://reactjs.org"
|
||||||
|
data-font="sans"
|
||||||
|
>React JS</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://nodejs.org"
|
||||||
|
data-font="sans"
|
||||||
|
>Node JS</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="http://developers.giphy.com"
|
||||||
|
data-font="sans"
|
||||||
|
>Giphy</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="link-list">
|
||||||
|
<h6 class="link-list-title" data-font="sans-bold">LEGAL & OTHER</h6>
|
||||||
|
<a class="underlink" data-font="sans">© 2020 - 2021, Ayushya Amitabh</a>
|
||||||
|
<a class="underlink" href="/copyright" data-font="sans">Copyright</a>
|
||||||
|
<a class="underlink" href="/privacy" data-font="sans"
|
||||||
|
>Privacy Policy</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://linkedin.com/in/ayushyamitabh"
|
||||||
|
data-font="sans"
|
||||||
|
>About Creator</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="end-line">
|
||||||
|
<a class="underlink" data-font="sans">
|
||||||
|
Built with ♥ for Google Chrome, Microsoft Edge & Mozilla Firefox by
|
||||||
|
Ayushya Amitabh
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://instagram.com/chromewatchparty"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
height="4rem"
|
||||||
|
viewBox="0 0 511 511.9"
|
||||||
|
width="4rem"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m510.949219 150.5c-1.199219-27.199219-5.597657-45.898438-11.898438-62.101562-6.5-17.199219-16.5-32.597657-29.601562-45.398438-12.800781-13-28.300781-23.101562-45.300781-29.5-16.296876-6.300781-34.898438-10.699219-62.097657-11.898438-27.402343-1.300781-36.101562-1.601562-105.601562-1.601562s-78.199219.300781-105.5 1.5c-27.199219 1.199219-45.898438 5.601562-62.097657 11.898438-17.203124 6.5-32.601562 16.5-45.402343 29.601562-13 12.800781-23.097657 28.300781-29.5 45.300781-6.300781 16.300781-10.699219 34.898438-11.898438 62.097657-1.300781 27.402343-1.601562 36.101562-1.601562 105.601562s.300781 78.199219 1.5 105.5c1.199219 27.199219 5.601562 45.898438 11.902343 62.101562 6.5 17.199219 16.597657 32.597657 29.597657 45.398438 12.800781 13 28.300781 23.101562 45.300781 29.5 16.300781 6.300781 34.898438 10.699219 62.101562 11.898438 27.296876 1.203124 36 1.5 105.5 1.5s78.199219-.296876 105.5-1.5c27.199219-1.199219 45.898438-5.597657 62.097657-11.898438 34.402343-13.300781 61.601562-40.5 74.902343-74.898438 6.296876-16.300781 10.699219-34.902343 11.898438-62.101562 1.199219-27.300781 1.5-36 1.5-105.5s-.101562-78.199219-1.300781-105.5zm-46.097657 209c-1.101562 25-5.300781 38.5-8.800781 47.5-8.601562 22.300781-26.300781 40-48.601562 48.601562-9 3.5-22.597657 7.699219-47.5 8.796876-27 1.203124-35.097657 1.5-103.398438 1.5s-76.5-.296876-103.402343-1.5c-25-1.097657-38.5-5.296876-47.5-8.796876-11.097657-4.101562-21.199219-10.601562-29.398438-19.101562-8.5-8.300781-15-18.300781-19.101562-29.398438-3.5-9-7.699219-22.601562-8.796876-47.5-1.203124-27-1.5-35.101562-1.5-103.402343s.296876-76.5 1.5-103.398438c1.097657-25 5.296876-38.5 8.796876-47.5 4.101562-11.101562 10.601562-21.199219 19.203124-29.402343 8.296876-8.5 18.296876-15 29.398438-19.097657 9-3.5 22.601562-7.699219 47.5-8.800781 27-1.199219 35.101562-1.5 103.398438-1.5 68.402343 0 76.5.300781 103.402343 1.5 25 1.101562 38.5 5.300781 47.5 8.800781 11.097657 4.097657 21.199219 10.597657 29.398438 19.097657 8.5 8.300781 15 18.300781 19.101562 29.402343 3.5 9 7.699219 22.597657 8.800781 47.5 1.199219 27 1.5 35.097657 1.5 103.398438s-.300781 76.300781-1.5 103.300781zm0 0"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m256.449219 124.5c-72.597657 0-131.5 58.898438-131.5 131.5s58.902343 131.5 131.5 131.5c72.601562 0 131.5-58.898438 131.5-131.5s-58.898438-131.5-131.5-131.5zm0 216.800781c-47.097657 0-85.300781-38.199219-85.300781-85.300781s38.203124-85.300781 85.300781-85.300781c47.101562 0 85.300781 38.199219 85.300781 85.300781s-38.199219 85.300781-85.300781 85.300781zm0 0"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m423.851562 119.300781c0 16.953125-13.746093 30.699219-30.703124 30.699219-16.953126 0-30.699219-13.746094-30.699219-30.699219 0-16.957031 13.746093-30.699219 30.699219-30.699219 16.957031 0 30.703124 13.742188 30.703124 30.699219zm0 0"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="https://www.reddit.com/r/ChromeWatchParty/"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
id="Bold"
|
||||||
|
enable-background="new 0 0 24 24"
|
||||||
|
height="4rem"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
width="4rem"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m21.325 9.308c-.758 0-1.425.319-1.916.816-1.805-1.268-4.239-2.084-6.936-2.171l1.401-6.406 4.461 1.016c0 1.108.89 2.013 1.982 2.013 1.113 0 2.008-.929 2.008-2.038s-.889-2.038-2.007-2.038c-.779 0-1.451.477-1.786 1.129l-4.927-1.108c-.248-.067-.491.113-.557.365l-1.538 7.062c-2.676.113-5.084.928-6.895 2.197-.491-.518-1.184-.837-1.942-.837-2.812 0-3.733 3.829-1.158 5.138-.091.405-.132.837-.132 1.268 0 4.301 4.775 7.786 10.638 7.786 5.888 0 10.663-3.485 10.663-7.786 0-.431-.045-.883-.156-1.289 2.523-1.314 1.594-5.115-1.203-5.117zm-15.724 5.41c0-1.129.89-2.038 2.008-2.038 1.092 0 1.983.903 1.983 2.038 0 1.109-.89 2.013-1.983 2.013-1.113.005-2.008-.904-2.008-2.013zm10.839 4.798c-1.841 1.868-7.036 1.868-8.878 0-.203-.18-.203-.498 0-.703.177-.18.491-.18.668 0 1.406 1.463 6.07 1.488 7.537 0 .177-.18.491-.18.668 0 .207.206.207.524.005.703zm-.041-2.781c-1.092 0-1.982-.903-1.982-2.011 0-1.129.89-2.038 1.982-2.038 1.113 0 2.008.903 2.008 2.038-.005 1.103-.895 2.011-2.008 2.011z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="underlink"
|
||||||
|
target="_blank"
|
||||||
|
href="mailto:admin@chromewatchparty.com"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
id="Capa_1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
x="0px"
|
||||||
|
y="0px"
|
||||||
|
width="4rem"
|
||||||
|
height="4rem"
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
style="enable-background: new 0 0 512 512"
|
||||||
|
xml:space="preserve"
|
||||||
|
>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path
|
||||||
|
d="M467,61H45C20.218,61,0,81.196,0,106v300c0,24.72,20.128,45,45,45h422c24.72,0,45-20.128,45-45V106
|
||||||
|
C512,81.28,491.872,61,467,61z M460.786,91L256.954,294.833L51.359,91H460.786z M30,399.788V112.069l144.479,143.24L30,399.788z
|
||||||
|
M51.213,421l144.57-144.57l50.657,50.222c5.864,5.814,15.327,5.795,21.167-0.046L317,277.213L460.787,421H51.213z M482,399.787
|
||||||
|
L338.213,256L482,112.212V399.787z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -196,24 +196,20 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
Inc.
|
Inc.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Youtube logo is a trademark and intellectual property of Google,
|
Youtube, Youtube TV, and Google Play Movies & TV logos are a
|
||||||
Inc.
|
trademark and intellectual property of Google, Inc.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Hulu logo is a trademark and intellectual property of Hulu, LLC.
|
Hulu logo is a trademark and intellectual property of Hulu, LLC.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Hbo now and hbo max logos are trademark and intellectual property
|
HBO MAX logo is trademark and intellectual property of WarnerMedia
|
||||||
of WarnerMedia Direct, LLC.
|
Direct, LLC.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Peacock TV logo is a trademark and intellectual property of
|
Peacock TV logo is a trademark and intellectual property of
|
||||||
Peacock TV & NBC Universal.
|
Peacock TV & NBC Universal.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
|
||||||
Google Play Movies & TV logo is a trademark and intellectual
|
|
||||||
property of Google, Inc.
|
|
||||||
</p>
|
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Crunchyroll logo is a trademark and intellectual property of
|
Crunchyroll logo is a trademark and intellectual property of
|
||||||
Crunchyroll and Ellation, Inc.
|
Crunchyroll and Ellation, Inc.
|
||||||
@@ -253,11 +249,16 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
Dailymotion.
|
Dailymotion.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
IMDB TV logo is a trademark and intellectual property of
|
IMDB TV logo is a trademark and intellectual property of IMDb.com,
|
||||||
IMDb.com, Inc.
|
Inc.
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Paramount + logo is a trademark and intellectual property of ViacomCBS.
|
Paramount + logo is a trademark and intellectual property of
|
||||||
|
ViacomCBS.
|
||||||
|
</p>
|
||||||
|
<p data-font="sans" class="body">
|
||||||
|
Starz logo is a trademark and intellectual property of Starz, a
|
||||||
|
Lionsgate company
|
||||||
</p>
|
</p>
|
||||||
<p data-font="sans" class="body">
|
<p data-font="sans" class="body">
|
||||||
Google Chrome logo is a trademark and intellectual property of
|
Google Chrome logo is a trademark and intellectual property of
|
||||||
@@ -367,7 +368,9 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
</div>
|
</div>
|
||||||
<div class="link-list">
|
<div class="link-list">
|
||||||
<h6 class="link-list-title" data-font="sans-bold">LEGAL & OTHER</h6>
|
<h6 class="link-list-title" data-font="sans-bold">LEGAL & OTHER</h6>
|
||||||
<a class="underlink" data-font="sans">© 2020 - 2021, Ayushya Amitabh</a>
|
<a class="underlink" data-font="sans"
|
||||||
|
>© 2020 - 2021, Ayushya Amitabh</a
|
||||||
|
>
|
||||||
<a class="underlink" href="/copyright" data-font="sans">Copyright</a>
|
<a class="underlink" href="/copyright" data-font="sans">Copyright</a>
|
||||||
<a class="underlink" href="/privacy" data-font="sans"
|
<a class="underlink" href="/privacy" data-font="sans"
|
||||||
>Privacy Policy</a
|
>Privacy Policy</a
|
||||||
|
|||||||
@@ -246,6 +246,8 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
<div id="dailymotion" class="support-card"></div>
|
<div id="dailymotion" class="support-card"></div>
|
||||||
<div id="imdb" class="support-card"></div>
|
<div id="imdb" class="support-card"></div>
|
||||||
<div id="paramount" class="support-card"></div>
|
<div id="paramount" class="support-card"></div>
|
||||||
|
<div id="starz" class="support-card"></div>
|
||||||
|
<div id="youtubetv" class="support-card"></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="features" class="features bubble left">
|
<div id="features" class="features bubble left">
|
||||||
<div class="text-section">
|
<div class="text-section">
|
||||||
|
|||||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
@@ -2,6 +2,9 @@ body.amazon-prime,
|
|||||||
body.amazon-prime.visible {
|
body.amazon-prime.visible {
|
||||||
background-color: initial !important;
|
background-color: initial !important;
|
||||||
}
|
}
|
||||||
|
body.amazon-prime #party_wrapper input {
|
||||||
|
background: initial !important;
|
||||||
|
}
|
||||||
body.crunchyroll,
|
body.crunchyroll,
|
||||||
body.crunchyroll.visible {
|
body.crunchyroll.visible {
|
||||||
background-color: #f2f2f2 !important;
|
background-color: #f2f2f2 !important;
|
||||||
|
|||||||
@@ -75,3 +75,9 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
.card-grid .support-card#paramount {
|
.card-grid .support-card#paramount {
|
||||||
background-image: url('/media/logos/ParamountPlusWhite.webp');
|
background-image: url('/media/logos/ParamountPlusWhite.webp');
|
||||||
}
|
}
|
||||||
|
.card-grid .support-card#starz {
|
||||||
|
background-image: url('/media/logos/StarzWhite.webp');
|
||||||
|
}
|
||||||
|
.card-grid .support-card#youtubetv {
|
||||||
|
background-image: url('/media/logos/YouTubeTvWhite.webp');
|
||||||
|
}
|
||||||
|
|||||||
@@ -80,3 +80,9 @@ AMITABH, AND MAY NOT BE COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
.card-grid .support-card#paramount {
|
.card-grid .support-card#paramount {
|
||||||
background-image: url('/media/logos/ParamountPlusColor.webp');
|
background-image: url('/media/logos/ParamountPlusColor.webp');
|
||||||
}
|
}
|
||||||
|
.card-grid .support-card#starz {
|
||||||
|
background-image: url('/media/logos/StarzBlack.webp');
|
||||||
|
}
|
||||||
|
.card-grid .support-card#youtubetv {
|
||||||
|
background-image: url('/media/logos/YouTubeTvBlack.webp');
|
||||||
|
}
|
||||||
|
|||||||
@@ -305,6 +305,8 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|||||||
></a>
|
></a>
|
||||||
<a href="https://www.imdb.com/tv/" id="imdb" class="support-card"></a>
|
<a href="https://www.imdb.com/tv/" id="imdb" class="support-card"></a>
|
||||||
<a href="https://www.paramountplus.com" id="paramount" class="support-card"></a>
|
<a href="https://www.paramountplus.com" id="paramount" class="support-card"></a>
|
||||||
|
<a href="https://www.starz.com" id="starz" class="support-card"></a>
|
||||||
|
<a href="https://tv.youtube.com" id="youtubetv" class="support-card"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="tips" class="text-section">
|
<div id="tips" class="text-section">
|
||||||
<div class="info">
|
<div class="info">
|
||||||
|
|||||||