mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-27 18:34:09 +01:00
Added utility function containsBingWord and hook up some css to it.
This commit is contained in:
parent
a402e0c5e6
commit
b36a0c71d1
3 changed files with 46 additions and 31 deletions
webclient
|
@ -538,6 +538,10 @@ a:active { color: #000; }
|
|||
color: #F00;
|
||||
}
|
||||
|
||||
.messageBing {
|
||||
color: #00F;
|
||||
}
|
||||
|
||||
#room-fullscreen-image {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
|
|
|
@ -45,6 +45,46 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
|
|||
var eventMap = {};
|
||||
|
||||
$rootScope.presence = {};
|
||||
|
||||
// TODO: This is attached to the rootScope so .html can just go containsBingWord
|
||||
// for determining classes so it is easy to highlight bing messages. It seems a
|
||||
// bit strange to put the impl in this service though, but I can't think of a better
|
||||
// file to put it in.
|
||||
$rootScope.containsBingWord = function(content) {
|
||||
if (!content) {
|
||||
return false;
|
||||
}
|
||||
var bingWords = matrixService.config().bingWords;
|
||||
var shouldBing = false;
|
||||
|
||||
// case-insensitive name check for user_id OR display_name if they exist
|
||||
var myUserId = matrixService.config().user_id;
|
||||
if (myUserId) {
|
||||
myUserId = myUserId.toLocaleLowerCase();
|
||||
}
|
||||
var myDisplayName = matrixService.config().display_name;
|
||||
if (myDisplayName) {
|
||||
myDisplayName = myDisplayName.toLocaleLowerCase();
|
||||
}
|
||||
if ( (myDisplayName && content.toLocaleLowerCase().indexOf(myDisplayName) != -1) ||
|
||||
(myUserId && content.toLocaleLowerCase().indexOf(myUserId) != -1) ) {
|
||||
shouldBing = true;
|
||||
}
|
||||
|
||||
// bing word list check
|
||||
if (bingWords && !shouldBing) {
|
||||
for (var i=0; i<bingWords.length; i++) {
|
||||
// TODO: Should really be a word check, not a string of characters check.
|
||||
// E.g. bing word is "coffee", "I have coffee" = bing, "I am a coffeepot" = no bing
|
||||
// Currently it will bing for both.
|
||||
if (content.indexOf(bingWords[i]) != -1) {
|
||||
shouldBing = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return shouldBing;
|
||||
};
|
||||
|
||||
var initialSyncDeferred;
|
||||
|
||||
|
@ -140,36 +180,7 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
|
|||
}
|
||||
|
||||
if (window.Notification) {
|
||||
var bingWords = matrixService.config().bingWords;
|
||||
var content = event.content.body;
|
||||
var shouldBing = false;
|
||||
|
||||
// case-insensitive name check for user_id OR display_name if they exist
|
||||
var myUserId = matrixService.config().user_id;
|
||||
if (myUserId) {
|
||||
myUserId = myUserId.toLocaleLowerCase();
|
||||
}
|
||||
var myDisplayName = matrixService.config().display_name;
|
||||
if (myDisplayName) {
|
||||
myDisplayName = myDisplayName.toLocaleLowerCase();
|
||||
}
|
||||
if ( (myDisplayName && content.toLocaleLowerCase().indexOf(myDisplayName) != -1) ||
|
||||
(myUserId && content.toLocaleLowerCase().indexOf(myUserId) != -1) ) {
|
||||
shouldBing = true;
|
||||
}
|
||||
|
||||
// bing word list check
|
||||
if (bingWords && !shouldBing) {
|
||||
for (var i=0; i<bingWords.length; i++) {
|
||||
// TODO: Should really be a word check, not a string of characters check.
|
||||
// E.g. bing word is "coffee", "I have coffee" = bing, "I am a coffeepot" = no bing
|
||||
// Currently it will bing for both.
|
||||
if (content.indexOf(bingWords[i]) != -1) {
|
||||
shouldBing = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
var shouldBing = $rootScope.containsBingWord(event.content.body);
|
||||
|
||||
// TODO: Binging every message when idle doesn't make much sense. Can we use this more sensibly?
|
||||
var isIdle = (document.hidden || matrixService.presence.unavailable === mPresence.getState());
|
||||
|
|
|
@ -105,7 +105,7 @@
|
|||
|
||||
<span ng-show='msg.content.msgtype === "m.text"'
|
||||
class="message"
|
||||
ng-class="msg.echo_msg_state"
|
||||
ng-class="containsBingWord(msg.content.body) ? msg.echo_msg_state + ' messageBing' : msg.echo_msg_state"
|
||||
ng-bind-html="((msg.content.msgtype === 'm.text') ? msg.content.body : '') | linky:'_blank'"/>
|
||||
|
||||
<span ng-show='msg.type === "m.call.invite" && msg.user_id == state.user_id'>Outgoing Call</span>
|
||||
|
|
Loading…
Reference in a new issue