Browse Source

Temp notifications

master
Eduard Kuzmenko 4 years ago
parent
commit
d87dedc48d
  1. 158
      src/lib/appManagers/appMessagesManager.ts
  2. 5
      src/lib/appManagers/appNotificationsManager.ts

158
src/lib/appManagers/appMessagesManager.ts

@ -2476,7 +2476,7 @@ export class AppMessagesManager {
} }
} }
public getRichReplyText(message: any, text: string = message.message, usingMids?: number[]) { public getRichReplyText(message: any, text: string = message.message, usingMids?: number[], plain = false) {
let messageText = ''; let messageText = '';
if(message.media) { if(message.media) {
@ -2511,13 +2511,13 @@ export class AppMessagesManager {
messageText += '<i>Photo' + (message.message ? ', ' : '') + '</i>'; messageText += '<i>Photo' + (message.message ? ', ' : '') + '</i>';
break; break;
case 'messageMediaDice': case 'messageMediaDice':
messageText += RichTextProcessor.wrapEmojiText(media.emoticon); messageText += plain ? media.emoticon : RichTextProcessor.wrapEmojiText(media.emoticon);
break; break;
case 'messageMediaGeo': case 'messageMediaGeo':
messageText += '<i>Geolocation</i>'; messageText += '<i>Geolocation</i>';
break; break;
case 'messageMediaPoll': case 'messageMediaPoll':
messageText += '<i>' + media.poll.rReply + '</i>'; messageText += '<i>' + (plain ? '📊' + ' ' + media.poll.question || 'poll' : media.poll.rReply) + '</i>';
break; break;
case 'messageMediaContact': case 'messageMediaContact':
messageText += '<i>Contact</i>'; messageText += '<i>Contact</i>';
@ -2562,7 +2562,7 @@ export class AppMessagesManager {
const entities = RichTextProcessor.parseEntities(text.replace(/\n/g, ' ')); const entities = RichTextProcessor.parseEntities(text.replace(/\n/g, ' '));
messageWrapped = RichTextProcessor.wrapRichText(text, { messageWrapped = plain ? text : RichTextProcessor.wrapRichText(text, {
noLinebreaks: true, noLinebreaks: true,
entities, entities,
noLinks: true, noLinks: true,
@ -2570,6 +2570,10 @@ export class AppMessagesManager {
}); });
} }
if(plain) {
messageText = messageText.replace(/<i>/g, '').replace(/<\/i>/g, '');
}
return messageText + messageWrapped; return messageText + messageWrapped;
} }
@ -4626,152 +4630,10 @@ export class AppMessagesManager {
const localSettings = appNotificationsManager.getLocalSettings(); const localSettings = appNotificationsManager.getLocalSettings();
if(options.peerTypeNotifySettings.show_previews) { if(options.peerTypeNotifySettings.show_previews) {
if(message._ === 'message') { if(message._ === 'message' && message.fwd_from && options.fwdCount) {
if(message.fwd_from && options.fwdCount) {
notificationMessage = 'Forwarded ' + options.fwdCount + ' messages';//fwdMessagesPluralize(options.fwd_count); notificationMessage = 'Forwarded ' + options.fwdCount + ' messages';//fwdMessagesPluralize(options.fwd_count);
} else if(message.message) {
if(localSettings.nopreview) {
notificationMessage = _('conversation_message_sent');
} else {
notificationMessage = RichTextProcessor.wrapPlainText(message.message);
}
} else if(message.media) {
var captionEmoji: string;
switch (message.media._) {
case 'messageMediaPhoto':
notificationMessage = _('conversation_media_photo_raw');
captionEmoji = '🖼';
break;
case 'messageMediaDocument':
if(message.media.document._ === 'documentEmpty') break;
switch(message.media.document.type) {
case 'gif':
notificationMessage = _('conversation_media_gif_raw');
captionEmoji = '🎬';
break;
case 'sticker':
notificationMessage = _('conversation_media_sticker');
var stickerEmoji = message.media.document.stickerEmojiRaw;
if(stickerEmoji !== undefined) {
notificationMessage = RichTextProcessor.wrapPlainText(stickerEmoji) + ' ' + notificationMessage;
}
break;
case 'video':
notificationMessage = _('conversation_media_video_raw');
captionEmoji = '📹';
break;
case 'round':
notificationMessage = _('conversation_media_round_raw');
captionEmoji = '📹';
break;
case 'voice':
case 'audio':
notificationMessage = _('conversation_media_audio_raw');
break;
default:
if(message.media.document.file_name) {
notificationMessage = RichTextProcessor.wrapPlainText('📎 ' + message.media.document.file_name);
} else { } else {
notificationMessage = _('conversation_media_document_raw'); notificationMessage = this.getRichReplyText(message, undefined, undefined, true);
captionEmoji = '📎';
}
break;
}
break;
case 'messageMediaGeo':
case 'messageMediaVenue':
notificationMessage = _('conversation_media_location_raw');
captionEmoji = '📍';
break;
case 'messageMediaContact':
notificationMessage = _('conversation_media_contact_raw');
break;
case 'messageMediaGame':
notificationMessage = RichTextProcessor.wrapPlainText('🎮 ' + message.media.game.title);
break;
case 'messageMediaUnsupported':
notificationMessage = _('conversation_media_unsupported_raw');
break;
default:
notificationMessage = _('conversation_media_attachment_raw');
break;
}
if(captionEmoji !== undefined && (message.media as any).caption) {
notificationMessage = RichTextProcessor.wrapPlainText(captionEmoji + ' ' + (message.media as any).caption);
}
}
} else {
switch(message.action._) {
case 'messageActionChatCreate':
notificationMessage = _('conversation_group_created_raw')
break
case 'messageActionChatEditTitle':
notificationMessage = _('conversation_group_renamed_raw')
break
case 'messageActionChatEditPhoto':
notificationMessage = _('conversation_group_photo_updated_raw')
break
case 'messageActionChatDeletePhoto':
notificationMessage = _('conversation_group_photo_removed_raw')
break
case 'messageActionChatAddUser':
// @ts-ignore
case 'messageActionChatAddUsers':
notificationMessage = _('conversation_invited_user_message_raw')
break
/* case 'messageActionChatReturn':
notificationMessage = _('conversation_returned_to_group_raw')
break
case 'messageActionChatJoined':
notificationMessage = _('conversation_joined_group_raw')
break */
case 'messageActionChatDeleteUser':
notificationMessage = _('conversation_kicked_user_message_raw')
break
/* case 'messageActionChatLeave':
notificationMessage = _('conversation_left_group_raw')
break */
case 'messageActionChatJoinedByLink':
notificationMessage = _('conversation_joined_by_link_raw')
break
case 'messageActionChannelCreate':
notificationMessage = _('conversation_created_channel_raw')
break
/* case 'messageActionChannelEditTitle':
notificationMessage = _('conversation_changed_channel_name_raw')
break
case 'messageActionChannelEditPhoto':
notificationMessage = _('conversation_changed_channel_photo_raw')
break
case 'messageActionChannelDeletePhoto':
notificationMessage = _('conversation_removed_channel_photo_raw')
break */
case 'messageActionPinMessage':
notificationMessage = _('conversation_pinned_message_raw')
break
/* case 'messageActionGameScore':
notificationMessage = gameScorePluralize(message.action.score)
break */
case 'messageActionPhoneCall':
switch((message.action as any).type) {
case 'out_missed':
notificationMessage = _('message_service_phonecall_canceled_raw')
break
case 'in_missed':
notificationMessage = _('message_service_phonecall_missed_raw')
break
case 'out_ok':
notificationMessage = _('message_service_phonecall_outgoing_raw')
break
case 'in_ok':
notificationMessage = _('message_service_phonecall_incoming_raw')
break
}
break
}
} }
} else { } else {
notificationMessage = 'New notification'; notificationMessage = 'New notification';

5
src/lib/appManagers/appNotificationsManager.ts

@ -538,7 +538,7 @@ export class AppNotificationsManager {
const notification = this.notificationsShown[i]; const notification = this.notificationsShown[i];
if(notification && if(notification &&
notification.tag === data.tag) { notification.tag === data.tag) {
notification.hidden = true notification.hidden = true;
} }
} }
} }
@ -549,10 +549,11 @@ export class AppNotificationsManager {
tag: data.tag || '', tag: data.tag || '',
silent: data.silent || false silent: data.silent || false
}); });
console.log('notify constructed notification');
} catch(e) { } catch(e) {
this.notificationsUiSupport = false; this.notificationsUiSupport = false;
//WebPushApiManager.setLocalNotificationsDisabled(); //WebPushApiManager.setLocalNotificationsDisabled();
return return;
} }
} /* else if('mozNotification' in navigator) { } /* else if('mozNotification' in navigator) {
notification = navigator.mozNotification.createNotification(data.title, data.message || '', data.image || '') notification = navigator.mozNotification.createNotification(data.title, data.message || '', data.image || '')

Loading…
Cancel
Save