v1.7.6/auto leave and leave message
This commit is contained in:
@@ -41,10 +41,13 @@ const firebaseConfig = {
|
||||
};
|
||||
|
||||
firebase.initializeApp(firebaseConfig);
|
||||
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL);
|
||||
|
||||
const isAuthed = () => true && firebase.auth().currentUser;
|
||||
const doAuth = () => firebase.auth().signInAnonymously();
|
||||
const doAuth = () =>
|
||||
firebase
|
||||
.auth()
|
||||
.setPersistence(firebase.auth.Auth.Persistence.LOCAL)
|
||||
.then(() => firebase.auth().signInAnonymously());
|
||||
|
||||
if (!isAuthed()) doAuth();
|
||||
else currentUser = firebase.auth().currentUser;
|
||||
@@ -91,12 +94,44 @@ const fetcher = async (request, sendResponse) => {
|
||||
);
|
||||
};
|
||||
|
||||
const getActiveParties = () =>
|
||||
window.localStorage.getItem('activeParties')
|
||||
? JSON.parse(window.localStorage.getItem('activeParties'))
|
||||
: {};
|
||||
const updateActiveParties = (partyName, doDelete = false) => {
|
||||
var activeParties = getActiveParties();
|
||||
if (activeParties[partyName] && doDelete === true) {
|
||||
if (new Date().getTime() - activeParties[partyName].activeAt > 60000) {
|
||||
fetcher(
|
||||
{
|
||||
url: `https://api.chromewatchparty.com/leave/${partyName}/users/${activeParties[partyName].uid}`,
|
||||
method: 'DELETE',
|
||||
},
|
||||
(v) => console.info('[AUTO-LEAVE]', v)
|
||||
);
|
||||
delete activeParties[partyName];
|
||||
}
|
||||
} else {
|
||||
if (partyName) {
|
||||
activeParties[partyName] = {
|
||||
activeAt: new Date().getTime(),
|
||||
uid: currentUser.uid,
|
||||
};
|
||||
}
|
||||
}
|
||||
window.localStorage.setItem('activeParties', JSON.stringify(activeParties));
|
||||
};
|
||||
|
||||
const waitAndLeaveParty = (partyName) => {
|
||||
setTimeout(() => updateActiveParties(partyName, true), 90000);
|
||||
};
|
||||
|
||||
CHROME_OR_BROWSER.runtime.onInstalled.addListener((details) => {
|
||||
if (details.reason) {
|
||||
if (details.reason === 'install') {
|
||||
if (window.localStorage.getItem('watchPartyVersion')) {
|
||||
if (window.localStorage.getItem('watchPartyVersion') !== APP_VERSION) {
|
||||
if (window.localStorage.getItem('showChangelog') === true) {
|
||||
if (window.localStorage.getItem('showChangelog') === 'true') {
|
||||
CHROME_OR_BROWSER.tabs.create({
|
||||
url: `http://www.${BASE_URL}.com/changes/v${APP_VERSION}`,
|
||||
active: true,
|
||||
@@ -114,7 +149,7 @@ CHROME_OR_BROWSER.runtime.onInstalled.addListener((details) => {
|
||||
} else if (details.reason === 'update') {
|
||||
if (window.localStorage.getItem('watchPartyVersion')) {
|
||||
if (window.localStorage.getItem('watchPartyVersion') !== APP_VERSION) {
|
||||
if (window.localStorage.getItem('showChangelog') === true) {
|
||||
if (window.localStorage.getItem('showChangelog') === 'true') {
|
||||
CHROME_OR_BROWSER.tabs.create({
|
||||
url: `http://www.${BASE_URL}.com/changes/v${APP_VERSION}`,
|
||||
active: true,
|
||||
@@ -123,7 +158,7 @@ CHROME_OR_BROWSER.runtime.onInstalled.addListener((details) => {
|
||||
window.localStorage.setItem('watchPartyVersion', APP_VERSION);
|
||||
}
|
||||
} else {
|
||||
if (window.localStorage.getItem('showChangelog') === true) {
|
||||
if (window.localStorage.getItem('showChangelog') === 'true') {
|
||||
CHROME_OR_BROWSER.tabs.create({
|
||||
url: `http://www.${BASE_URL}.com/changes/v${APP_VERSION}`,
|
||||
active: true,
|
||||
@@ -184,10 +219,13 @@ CHROME_OR_BROWSER.runtime.onConnect.addListener((port) => {
|
||||
port.userListener && port.userListener();
|
||||
port.statusListener && port.statusListener();
|
||||
port.messageListener && port.messageListener();
|
||||
waitAndLeaveParty(port.partyName, port.uid);
|
||||
});
|
||||
port.onMessage.addListener((request) => {
|
||||
const { type, roomId, roomPin } = request;
|
||||
if (type === 'INIT') {
|
||||
port.partyName = roomId;
|
||||
updateActiveParties(roomId);
|
||||
port.roomListener = firebase
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
|
||||
@@ -2,6 +2,14 @@ const admin = require('firebase-admin');
|
||||
|
||||
module.exports = async (req, res) => {
|
||||
console.log('Requested Leave - UID - ', req.params.uid, '\n\tRoom - ', req.params.rid);
|
||||
const userName = await admin
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
.doc(req.params.rid)
|
||||
.collection('users')
|
||||
.doc(req.params.uid)
|
||||
.get()
|
||||
.then((userSnap) => userSnap.data().name);
|
||||
await admin
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
@@ -15,5 +23,16 @@ module.exports = async (req, res) => {
|
||||
err
|
||||
)
|
||||
);
|
||||
admin
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
.doc(req.params.rid)
|
||||
.collection('messages')
|
||||
.add({
|
||||
uid: '<system>',
|
||||
time: new Date(),
|
||||
name: '',
|
||||
text: `${userName} left the party.`,
|
||||
});
|
||||
res.status(200).send({ message: 'Left the party' });
|
||||
};
|
||||
|
||||
@@ -120,17 +120,6 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
||||
</a>
|
||||
</div>
|
||||
<div class="overlap">
|
||||
<div class="info">
|
||||
<div class="info-card" data-font="sans-bold">🌐</div>
|
||||
<div class="info-text">
|
||||
<h4 class="sub-title" data-font="sans-bold">FIREFOX</h4>
|
||||
<p class="body" data-font="sans">
|
||||
If you're here for the Firefox Add-On, it will be available soon. It's pending approval
|
||||
from Mozilla.
|
||||
</p>
|
||||
<a href="/" class="underlink" data-font="sans-bold">GO HOME</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="info-card" data-font="sans-bold">404</div>
|
||||
<div class="info-text">
|
||||
|
||||
+16
-16
@@ -179,22 +179,22 @@ COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
||||
</div>
|
||||
</div>
|
||||
<div class="versions card-grid">
|
||||
<a href="/changes//v1.5.2/" data-font="sans-bold" class="support-card">v1.5.2</a>
|
||||
<a href="/changes//v1.6.0/" data-font="sans-bold" class="support-card">v1.6.0</a>
|
||||
<a href="/changes//v1.6.1/" data-font="sans-bold" class="support-card">v1.6.1</a>
|
||||
<a href="/changes//v1.6.2/" data-font="sans-bold" class="support-card">v1.6.2</a>
|
||||
<a href="/changes//v1.6.3/" data-font="sans-bold" class="support-card">v1.6.3</a>
|
||||
<a href="/changes//v1.6.4/" data-font="sans-bold" class="support-card">v1.6.4</a>
|
||||
<a href="/changes//v1.6.5/" data-font="sans-bold" class="support-card">v1.6.5</a>
|
||||
<a href="/changes//v1.6.6/" data-font="sans-bold" class="support-card">v1.6.6</a>
|
||||
<a href="/changes//v1.6.7/" data-font="sans-bold" class="support-card">v1.6.7</a>
|
||||
<a href="/changes//v1.7.0/" data-font="sans-bold" class="support-card">v1.7.0</a>
|
||||
<a href="/changes//v1.7.1/" data-font="sans-bold" class="support-card">v1.7.1</a>
|
||||
<a href="/changes//v1.7.2/" data-font="sans-bold" class="support-card">v1.7.2</a>
|
||||
<a href="/changes//v1.7.3/" data-font="sans-bold" class="support-card">v1.7.3</a>
|
||||
<a href="/changes//v1.7.4/" data-font="sans-bold" class="support-card">v1.7.4</a>
|
||||
<a href="/changes//v1.7.5/" data-font="sans-bold" class="support-card">v1.7.5</a>
|
||||
<a href="/changes//v1.7.6/" data-font="sans-bold" class="support-card">v1.7.6</a>
|
||||
<a href="/changes/v1.5.2/" data-font="sans-bold" class="support-card">v1.5.2</a>
|
||||
<a href="/changes/v1.6.0/" data-font="sans-bold" class="support-card">v1.6.0</a>
|
||||
<a href="/changes/v1.6.1/" data-font="sans-bold" class="support-card">v1.6.1</a>
|
||||
<a href="/changes/v1.6.2/" data-font="sans-bold" class="support-card">v1.6.2</a>
|
||||
<a href="/changes/v1.6.3/" data-font="sans-bold" class="support-card">v1.6.3</a>
|
||||
<a href="/changes/v1.6.4/" data-font="sans-bold" class="support-card">v1.6.4</a>
|
||||
<a href="/changes/v1.6.5/" data-font="sans-bold" class="support-card">v1.6.5</a>
|
||||
<a href="/changes/v1.6.6/" data-font="sans-bold" class="support-card">v1.6.6</a>
|
||||
<a href="/changes/v1.6.7/" data-font="sans-bold" class="support-card">v1.6.7</a>
|
||||
<a href="/changes/v1.7.0/" data-font="sans-bold" class="support-card">v1.7.0</a>
|
||||
<a href="/changes/v1.7.1/" data-font="sans-bold" class="support-card">v1.7.1</a>
|
||||
<a href="/changes/v1.7.2/" data-font="sans-bold" class="support-card">v1.7.2</a>
|
||||
<a href="/changes/v1.7.3/" data-font="sans-bold" class="support-card">v1.7.3</a>
|
||||
<a href="/changes/v1.7.4/" data-font="sans-bold" class="support-card">v1.7.4</a>
|
||||
<a href="/changes/v1.7.5/" data-font="sans-bold" class="support-card">v1.7.5</a>
|
||||
<a href="/changes/v1.7.6/" data-font="sans-bold" class="support-card">v1.7.6</a>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
|
||||
Reference in New Issue
Block a user