Group notifications

This commit is contained in:
Natsumi
2022-12-10 23:12:37 +13:00
parent e31ec71d09
commit 8e83c626d2
4 changed files with 164 additions and 5 deletions
+72 -1
View File
@@ -5457,12 +5457,15 @@ speechSynthesis.getVoices();
) { ) {
playOverlayNotification = true; playOverlayNotification = true;
} }
var message = '';
if (noty.message) {
message = noty.message;
}
var messageList = [ var messageList = [
'inviteMessage', 'inviteMessage',
'requestMessage', 'requestMessage',
'responseMessage' 'responseMessage'
]; ];
let message = '';
for (var k = 0; k < messageList.length; k++) { for (var k = 0; k < messageList.length; k++) {
if ( if (
typeof noty.details !== 'undefined' && typeof noty.details !== 'undefined' &&
@@ -5522,6 +5525,8 @@ speechSynthesis.getVoices();
imageUrl = noty.thumbnailImageUrl; imageUrl = noty.thumbnailImageUrl;
} else if (noty.details && noty.details.imageUrl) { } else if (noty.details && noty.details.imageUrl) {
imageUrl = noty.details.imageURL; imageUrl = noty.details.imageURL;
} else if (noty.imageUrl) {
imageUrl = noty.imageUrl;
} else if (userId) { } else if (userId) {
imageUrl = await API.getCachedUser({ imageUrl = await API.getCachedUser({
userId userId
@@ -5671,6 +5676,18 @@ speechSynthesis.getVoices();
`${noty.previousDisplayName} changed their name to ${noty.displayName}` `${noty.previousDisplayName} changed their name to ${noty.displayName}`
); );
break; break;
case 'group.announcement':
this.speak(noty.message);
break;
case 'group.informative':
this.speak(noty.message);
break;
case 'group.invite':
this.speak(noty.message);
break;
case 'group.joinRequest':
this.speak(noty.message);
break;
case 'PortalSpawn': case 'PortalSpawn':
if (noty.displayName) { if (noty.displayName) {
this.speak( this.speak(
@@ -5872,6 +5889,18 @@ speechSynthesis.getVoices();
image image
); );
break; break;
case 'group.announcement':
AppApi.XSNotification('VRCX', noty.message, timeout, image);
break;
case 'group.informative':
AppApi.XSNotification('VRCX', noty.message, timeout, image);
break;
case 'group.invite':
AppApi.XSNotification('VRCX', noty.message, timeout, image);
break;
case 'group.joinRequest':
AppApi.XSNotification('VRCX', noty.message, timeout, image);
break;
case 'PortalSpawn': case 'PortalSpawn':
if (noty.displayName) { if (noty.displayName) {
AppApi.XSNotification( AppApi.XSNotification(
@@ -6111,6 +6140,30 @@ speechSynthesis.getVoices();
image image
); );
break; break;
case 'group.announcement':
AppApi.DesktopNotification(
'Group Announcement',
noty.message,
image
);
break;
case 'group.informative':
AppApi.DesktopNotification(
'Group Informative',
noty.message,
image
);
break;
case 'group.invite':
AppApi.DesktopNotification('Group Invite', noty.message, image);
break;
case 'group.joinRequest':
AppApi.DesktopNotification(
'Group Join Request',
noty.message,
image
);
break;
case 'PortalSpawn': case 'PortalSpawn':
if (noty.displayName) { if (noty.displayName) {
AppApi.DesktopNotification( AppApi.DesktopNotification(
@@ -12835,6 +12888,10 @@ speechSynthesis.getVoices();
Unfriend: 'On', Unfriend: 'On',
DisplayName: 'VIP', DisplayName: 'VIP',
TrustLevel: 'VIP', TrustLevel: 'VIP',
'group.announcement': 'On',
'group.informative': 'On',
'group.invite': 'On',
'group.joinRequest': 'Off',
PortalSpawn: 'Everyone', PortalSpawn: 'Everyone',
Event: 'On', Event: 'On',
VideoPlay: 'Off', VideoPlay: 'Off',
@@ -12867,6 +12924,10 @@ speechSynthesis.getVoices();
Unfriend: 'On', Unfriend: 'On',
DisplayName: 'Friends', DisplayName: 'Friends',
TrustLevel: 'Friends', TrustLevel: 'Friends',
'group.announcement': 'On',
'group.informative': 'On',
'group.invite': 'On',
'group.joinRequest': 'On',
PortalSpawn: 'Everyone', PortalSpawn: 'Everyone',
Event: 'On', Event: 'On',
VideoPlay: 'On', VideoPlay: 'On',
@@ -12900,6 +12961,16 @@ speechSynthesis.getVoices();
$app.data.sharedFeedFilters.wrist.Muted = 'On'; $app.data.sharedFeedFilters.wrist.Muted = 'On';
$app.data.sharedFeedFilters.wrist.Unmuted = 'On'; $app.data.sharedFeedFilters.wrist.Unmuted = 'On';
} }
if (!$app.data.sharedFeedFilters.noty['group.announcement']) {
$app.data.sharedFeedFilters.noty['group.announcement'] = 'On';
$app.data.sharedFeedFilters.noty['group.informative'] = 'On';
$app.data.sharedFeedFilters.noty['group.invite'] = 'On';
$app.data.sharedFeedFilters.noty['group.joinRequest'] = 'Off';
$app.data.sharedFeedFilters.wrist['group.announcement'] = 'On';
$app.data.sharedFeedFilters.wrist['group.informative'] = 'On';
$app.data.sharedFeedFilters.wrist['group.invite'] = 'On';
$app.data.sharedFeedFilters.wrist['group.joinRequest'] = 'On';
}
if (!configRepository.getString('VRCX_trustColor')) { if (!configRepository.getString('VRCX_trustColor')) {
configRepository.setString( configRepository.setString(
+40 -4
View File
@@ -2792,10 +2792,28 @@ html
el-radio-button(label="Off") el-radio-button(label="Off")
el-radio-button(label="VIP") el-radio-button(label="VIP")
el-radio-button(label="Friends") el-radio-button(label="Friends")
.toggle-item
span.toggle-name Group Announcement
el-radio-group(v-model="sharedFeedFilters.noty['group.announcement']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item
span.toggle-name Group Join/Leave
el-radio-group(v-model="sharedFeedFilters.noty['group.informative']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item
span.toggle-name Group Invite
el-radio-group(v-model="sharedFeedFilters.noty['group.invite']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item
span.toggle-name Group Join Request
el-radio-group(v-model="sharedFeedFilters.noty['group.joinRequest']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item .toggle-item
span.toggle-name Portal Spawn span.toggle-name Portal Spawn
el-tooltip(placement="top" style="margin-left:5px" content="Requires '--enable-sdk-log-levels' steam launch option (click for more info)")
i.el-icon-warning(style="cursor:pointer" @click="openExternalLink(recommendedSteamParams)")
el-radio-group(v-model="sharedFeedFilters.noty.PortalSpawn" size="mini") el-radio-group(v-model="sharedFeedFilters.noty.PortalSpawn" size="mini")
el-radio-button(label="Off") el-radio-button(label="Off")
el-radio-button(label="VIP") el-radio-button(label="VIP")
@@ -2986,10 +3004,28 @@ html
el-radio-button(label="Off") el-radio-button(label="Off")
el-radio-button(label="VIP") el-radio-button(label="VIP")
el-radio-button(label="Friends") el-radio-button(label="Friends")
.toggle-item
span.toggle-name Group Announcement
el-radio-group(v-model="sharedFeedFilters.wrist['group.announcement']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item
span.toggle-name Group Join/Leave
el-radio-group(v-model="sharedFeedFilters.wrist['group.informative']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item
span.toggle-name Group Invite
el-radio-group(v-model="sharedFeedFilters.wrist['group.invite']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item
span.toggle-name Group Join Request
el-radio-group(v-model="sharedFeedFilters.wrist['group.joinRequest']" size="mini")
el-radio-button(label="Off")
el-radio-button(label="On")
.toggle-item .toggle-item
span.toggle-name Portal Spawn span.toggle-name Portal Spawn
el-tooltip(placement="top" style="margin-left:5px" content="Requires '--enable-sdk-log-levels' steam launch option (click for more info)")
i.el-icon-warning(style="cursor:pointer" @click="openExternalLink(recommendedSteamParams)")
el-radio-group(v-model="sharedFeedFilters.wrist.PortalSpawn" size="mini") el-radio-group(v-model="sharedFeedFilters.wrist.PortalSpawn" size="mini")
el-radio-button(label="Off") el-radio-button(label="Off")
el-radio-button(label="VIP") el-radio-button(label="VIP")
+12
View File
@@ -464,6 +464,18 @@ Vue.component('marquee-text', MarqueeText);
case 'DisplayName': case 'DisplayName':
text = `<strong>${noty.previousDisplayName}</strong> changed their name to ${noty.displayName}`; text = `<strong>${noty.previousDisplayName}</strong> changed their name to ${noty.displayName}`;
break; break;
case 'group.announcement':
text = noty.message;
break;
case 'group.informative':
text = noty.message;
break;
case 'group.invite':
text = noty.message;
break;
case 'group.joinRequest':
text = noty.message;
break;
case 'PortalSpawn': case 'PortalSpawn':
if (noty.displayName) { if (noty.displayName) {
text = `<strong>${ text = `<strong>${
+40
View File
@@ -119,6 +119,26 @@ html
span.extra span.extra
span.time {{ feed.created_at | formatDate }} span.time {{ feed.created_at | formatDate }}
| 🤝 #[span.name(v-text="feed.displayName")] {{ feed.previousTrustLevel }} #[i.el-icon-right] {{ feed.trustLevel }} | 🤝 #[span.name(v-text="feed.displayName")] {{ feed.previousTrustLevel }} #[i.el-icon-right] {{ feed.trustLevel }}
div(v-else-if="feed.type === 'group.announcement'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| 🏷️ #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'group.informative'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| 🏷️ #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'group.invite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| 🏷️ #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'group.joinRequest'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| 🏷️ #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'PortalSpawn'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") div(v-else-if="feed.type === 'PortalSpawn'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail .detail
span.extra span.extra
@@ -297,6 +317,26 @@ html
span.extra span.extra
span.time {{ feed.created_at | formatDate }} span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.displayName")] trust level is now {{ feed.trustLevel }} | #[span.name(v-text="feed.displayName")] trust level is now {{ feed.trustLevel }}
div(v-else-if="feed.type === 'group.announcement'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'group.informative'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'group.invite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'group.joinRequest'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.message")]
div(v-else-if="feed.type === 'PortalSpawn'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") div(v-else-if="feed.type === 'PortalSpawn'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail .detail
span.extra span.extra