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

View File

@@ -5457,12 +5457,15 @@ speechSynthesis.getVoices();
) {
playOverlayNotification = true;
}
var message = '';
if (noty.message) {
message = noty.message;
}
var messageList = [
'inviteMessage',
'requestMessage',
'responseMessage'
];
let message = '';
for (var k = 0; k < messageList.length; k++) {
if (
typeof noty.details !== 'undefined' &&
@@ -5522,6 +5525,8 @@ speechSynthesis.getVoices();
imageUrl = noty.thumbnailImageUrl;
} else if (noty.details && noty.details.imageUrl) {
imageUrl = noty.details.imageURL;
} else if (noty.imageUrl) {
imageUrl = noty.imageUrl;
} else if (userId) {
imageUrl = await API.getCachedUser({
userId
@@ -5671,6 +5676,18 @@ speechSynthesis.getVoices();
`${noty.previousDisplayName} changed their name to ${noty.displayName}`
);
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':
if (noty.displayName) {
this.speak(
@@ -5872,6 +5889,18 @@ speechSynthesis.getVoices();
image
);
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':
if (noty.displayName) {
AppApi.XSNotification(
@@ -6111,6 +6140,30 @@ speechSynthesis.getVoices();
image
);
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':
if (noty.displayName) {
AppApi.DesktopNotification(
@@ -12835,6 +12888,10 @@ speechSynthesis.getVoices();
Unfriend: 'On',
DisplayName: 'VIP',
TrustLevel: 'VIP',
'group.announcement': 'On',
'group.informative': 'On',
'group.invite': 'On',
'group.joinRequest': 'Off',
PortalSpawn: 'Everyone',
Event: 'On',
VideoPlay: 'Off',
@@ -12867,6 +12924,10 @@ speechSynthesis.getVoices();
Unfriend: 'On',
DisplayName: 'Friends',
TrustLevel: 'Friends',
'group.announcement': 'On',
'group.informative': 'On',
'group.invite': 'On',
'group.joinRequest': 'On',
PortalSpawn: 'Everyone',
Event: 'On',
VideoPlay: 'On',
@@ -12900,6 +12961,16 @@ speechSynthesis.getVoices();
$app.data.sharedFeedFilters.wrist.Muted = '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')) {
configRepository.setString(

View File

@@ -2792,10 +2792,28 @@ html
el-radio-button(label="Off")
el-radio-button(label="VIP")
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
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-button(label="Off")
el-radio-button(label="VIP")
@@ -2986,10 +3004,28 @@ html
el-radio-button(label="Off")
el-radio-button(label="VIP")
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
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-button(label="Off")
el-radio-button(label="VIP")

View File

@@ -464,6 +464,18 @@ Vue.component('marquee-text', MarqueeText);
case 'DisplayName':
text = `<strong>${noty.previousDisplayName}</strong> changed their name to ${noty.displayName}`;
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':
if (noty.displayName) {
text = `<strong>${

View File

@@ -119,6 +119,26 @@ html
span.extra
span.time {{ feed.created_at | formatDate }}
| 🤝 #[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 }")
.detail
span.extra
@@ -297,6 +317,26 @@ html
span.extra
span.time {{ feed.created_at | formatDate }}
| #[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 }")
.detail
span.extra