diff --git a/admin/package.json b/admin/package.json index 0521277..f65c6e0 100644 --- a/admin/package.json +++ b/admin/package.json @@ -1,6 +1,6 @@ { "name": "watch-party-admin", - "version": "1.7.5", + "version": "1.7.6", "private": true, "dependencies": { "@ant-design/icons": "^4.2.2", diff --git a/app/package.json b/app/package.json index ffe3492..ba1d37b 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "watch-party-crx", - "version": "1.7.5", + "version": "1.7.6", "private": true, "dependencies": {}, "scripts": { diff --git a/app/public/background.js b/app/public/background.js index 0ed06f3..abd3f59 100644 --- a/app/public/background.js +++ b/app/public/background.js @@ -26,7 +26,7 @@ try { console.info('CHROME ENV'); } -const APP_VERSION = '1.7.5'; +const APP_VERSION = '1.7.6'; const APP_VERSION_STRING = APP_VERSION.replace(/\./g, ''); const firebaseConfig = { diff --git a/app/public/manifest.json b/app/public/manifest.json index 3aa8d41..9a21c2e 100644 --- a/app/public/manifest.json +++ b/app/public/manifest.json @@ -1,7 +1,7 @@ { "name": "Watch Party", "short_name": "WP", - "version": "1.7.5", + "version": "1.7.6", "description": "Watch streamed content together.", "background": { "page": "background.html" @@ -42,6 +42,7 @@ "https://*.funimation.com/*", "https://*.roosterteeth.com/*", "https://*.stan.com.au/*", + "https://*.hotstar.com/*", "https://api.giphy.com/*", "https://*.voxeet.com/*" ], @@ -79,7 +80,8 @@ "https://*.viki.com/*", "https://*.funimation.com/*", "https://*.roosterteeth.com/*", - "https://*.stan.com.au/*" + "https://*.stan.com.au/*", + "https://*.hotstar.com/*" ], "run_at": "document_idle", "js": ["/static/js/content.js"], diff --git a/app/src/Api.js b/app/src/Api.js index a443064..e91fc02 100644 --- a/app/src/Api.js +++ b/app/src/Api.js @@ -39,6 +39,7 @@ export const PLAYER_SOURCE = { FUNIMATION: 'funimation.', ROOSTERTEETH: 'roosterteeth.', STAN: 'stan.', + HOTSTAR: 'hotstar.', LOCAL: 'localhost', }; @@ -60,6 +61,7 @@ export const getPlayerSource = () => { if (HREF.includes(PLAYER_SOURCE.FUNIMATION)) return PLAYER_SOURCE.FUNIMATION; if (HREF.includes(PLAYER_SOURCE.ROOSTERTEETH)) return PLAYER_SOURCE.ROOSTERTEETH; if (HREF.includes(PLAYER_SOURCE.STAN)) return PLAYER_SOURCE.STAN; + if (HREF.includes(PLAYER_SOURCE.HOTSTAR)) return PLAYER_SOURCE.HOTSTAR; if (HREF.includes(PLAYER_SOURCE.LOCAL)) return PLAYER_SOURCE.LOCAL; }; diff --git a/app/src/App.js b/app/src/App.js index 65611bc..095c891 100644 --- a/app/src/App.js +++ b/app/src/App.js @@ -27,7 +27,7 @@ import { } from './Api'; import Tutorial from './Tutorial'; -const APP_VERSION = '1.7.5'; +const APP_VERSION = '1.7.6'; const APP_VERSION_STRING = APP_VERSION.replace(/\./g, ''); const darkTheme = createMuiTheme({ diff --git a/app/src/VideoListener.js b/app/src/VideoListener.js index d0274a1..f026375 100644 --- a/app/src/VideoListener.js +++ b/app/src/VideoListener.js @@ -174,6 +174,9 @@ export default class VideoListener { case PLAYER_SOURCE.STAN: this.video.element.currentTime = serverPlayer.time; break; + case PLAYER_SOURCE.HOTSTAR: + this.video.element.currentTime = serverPlayer.time; + break; default: break; } @@ -364,6 +367,14 @@ export default class VideoListener { const stanShow = stanShowContainer ? stanShowContainer.innerHTML : ''; const stanEpisode = stanEpisodeContainer ? stanEpisodeContainer.innerHTML : ''; return stanShow === '' && stanEpisode === '' ? null : stanShow + '\n' + stanEpisode; + case PLAYER_SOURCE.HOTSTAR: + const hotstarShowContainer = document.querySelector(nS.show); + const hotstarEpisodeContainer = document.querySelector(nS.episode); + const hotstarShow = hotstarShowContainer ? hotstarShowContainer.innerText : ''; + const hotstarEpisode = hotstarEpisodeContainer ? hotstarEpisodeContainer.innerText : ''; + return hotstarShow === '' && hotstarEpisode === '' + ? null + : hotstarShow + '\n' + hotstarEpisode; default: break; } @@ -781,6 +792,19 @@ export default class VideoListener { }, 1000); } break; + case PLAYER_SOURCE.HOTSTAR: + const hotstarVideoElement = document.querySelector(this.selectors[PLAYER_SOURCE.HOTSTAR]); + if (hotstarVideoElement) { + this.firstTimeSync(hotstarVideoElement); + } else { + setInterval(() => { + var hsve = document.querySelector(this.selectors[PLAYER_SOURCE.HOTSTAR]); + if (hsve && !this.video.element && this.video.element !== hsve) { + this.firstTimeSync(hsve); + } + }, 1000); + } + break; default: break; } diff --git a/app/src/index.css b/app/src/index.css index 74805ba..1836a5c 100644 --- a/app/src/index.css +++ b/app/src/index.css @@ -81,7 +81,8 @@ body.hulu #party_wrapper *, body.peacock #party_wrapper *, body.disney #party_wrapper *, body.apple #party_wrapper *, -body.funimation #party_wrapper * { +body.funimation #party_wrapper *, +body.hotstar #party_wrapper * { box-sizing: inherit; } @@ -314,6 +315,16 @@ body.stan .party-content-wrapper input { padding-bottom: 10.5px; height: initial; } +/* HOTSTAR */ +body.hotstar.visible .header { + max-width: var(--body-width); + z-index: 9999 !important; +} +body.hotstar .party-content-wrapper input, +body.hotstar .party-content-wrapper textarea { + background: transparent !important; + height: initial !important; +} #party-loading { position: absolute; diff --git a/app/src/index.js b/app/src/index.js index b2f312f..2b85c58 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -120,6 +120,9 @@ switch (getPlayerSource()) { case PLAYER_SOURCE.STAN: document.body.classList.add('stan'); break; + case PLAYER_SOURCE.HOTSTAR: + document.body.classList.add('hotstar'); + break; case PLAYER_SOURCE.LOCAL: document.body.classList.add('local'); break; diff --git a/functions/modules/createRoom.js b/functions/modules/createRoom.js index 193f0f0..36a6ff1 100644 --- a/functions/modules/createRoom.js +++ b/functions/modules/createRoom.js @@ -8,14 +8,20 @@ const isValidPin = (pin) => /^.*[0-9].{2}$/.test(pin); module.exports = async (req, res) => { const bodydata = JSON.parse(req.body); console.log('Requested Create - UID - ', bodydata.uid); - if (!bodydata.userName) res.status(400).send({ message: 'Missing user name' }); - if (!bodydata.partyName) res.status(400).send({ message: 'Missing party name' }); - if (!bodydata.partyPin) res.status(400).send({ message: 'Missing party pin' }); + if (!bodydata.userName) { + return res.status(400).send({ message: 'Missing user name' }); + } + if (!bodydata.partyName) { + return res.status(400).send({ message: 'Missing party name' }); + } + if (!bodydata.partyPin) { + return res.status(400).send({ message: 'Missing party pin' }); + } if (partyNameHasInvalidChar(bodydata.partyName)) { res.status(400).send({ message: 'Party name can not have "\\" or "/" or "."' }); } if (!isValidPin(bodydata.partyPin)) { - res + return res .status(400) .send({ message: 'Party pin can only have digits and must be atleast 3 digits' }); } diff --git a/functions/package.json b/functions/package.json index 3f34c04..0a0cea5 100644 --- a/functions/package.json +++ b/functions/package.json @@ -1,6 +1,6 @@ { "name": "watch-party-api", - "version": "1.7.5", + "version": "1.7.6", "description": "Cloud Functions for Watch Party", "scripts": { "lint": "eslint .", diff --git a/package.json b/package.json index 9bf8c2a..679bbf2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "watch-party", - "version": "1.7.5", + "version": "1.7.6", "description": "Watch Party", "scripts": { "start": "firebase emulators:start", diff --git a/website/changes/v1.7.6/index.html b/website/changes/v1.7.6/index.html new file mode 100644 index 0000000..8a3d944 --- /dev/null +++ b/website/changes/v1.7.6/index.html @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + Watch Party | V1.7.6 + + + +
+ WATCH PARTY +

+ WATCH YOUR FAVORITES,
WITH YOUR FAVORITE PEOPLE +

+ + GET FIREFOX ADD-ON + + + GET CHROME EXTENSION + +
+
+
+
+ CHANGELOG +
+
+
+
+
+

V1.7.6

+
+
+

ADD HOTSTAR SUPPORT

+

ADD TOGGLE TO FLIP CALL COLORS

+

ADD AUTO LEAVE ON CLOSE

+

ADD LEAVE MESSAGES

+

SHOW WHO PAUSED / PLAYED

+
+
+
+
+ +
+
+ + + diff --git a/website/copyright/index.html b/website/copyright/index.html index b5d97b4..d0846b3 100644 --- a/website/copyright/index.html +++ b/website/copyright/index.html @@ -187,6 +187,15 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.

Stan logo is a trademark and intellectual property of Stan Group.

+

+ Hotstar logo is a trademark and intellectual property of Home Box Office, Inc. +

+

+ Google Chrome logo is a trademark and intellectual property of Google, Inc. +

+

+ Firefox logo is a trademark and intellectual property of Mozilla, Inc. +

diff --git a/website/index.html b/website/index.html index 42edb58..902ea52 100644 --- a/website/index.html +++ b/website/index.html @@ -189,6 +189,7 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
+
diff --git a/website/media/logos/HotstarBlack.webp b/website/media/logos/HotstarBlack.webp new file mode 100644 index 0000000..c42bd42 Binary files /dev/null and b/website/media/logos/HotstarBlack.webp differ diff --git a/website/media/logos/HotstarWhite.webp b/website/media/logos/HotstarWhite.webp new file mode 100644 index 0000000..5ca9276 Binary files /dev/null and b/website/media/logos/HotstarWhite.webp differ diff --git a/website/styles/large.css b/website/styles/large.css index d319ddd..18cf878 100644 --- a/website/styles/large.css +++ b/website/styles/large.css @@ -80,7 +80,7 @@ body { } .donate.card-grid .support-card button.big-button:hover { - height: 25% !important; + height: 35% !important; padding-left: 10rem; } diff --git a/website/styles/variables-dark.css b/website/styles/variables-dark.css index 8829beb..3f2d61a 100644 --- a/website/styles/variables-dark.css +++ b/website/styles/variables-dark.css @@ -63,3 +63,6 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION. .card-grid .support-card#stan { background-image: url('/media/logos/StanWhite.webp'); } +.card-grid .support-card#hotstar { + background-image: url('/media/logos/HotstarWhite.webp'); +} diff --git a/website/styles/variables.css b/website/styles/variables.css index 66fcf68..1544e21 100644 --- a/website/styles/variables.css +++ b/website/styles/variables.css @@ -62,3 +62,6 @@ AMITABH, AND MAY NOT BE COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION. .card-grid .support-card#stan { background-image: url('/media/logos/StanBlack.webp'); } +.card-grid .support-card#hotstar { + background-image: url('/media/logos/HotstarBlack.webp'); +} diff --git a/website/welcome/index.html b/website/welcome/index.html index d01ded0..1931fd8 100644 --- a/website/welcome/index.html +++ b/website/welcome/index.html @@ -227,6 +227,7 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION. +