Browse Source

Fixed Telegram unread

Fixes #485
pull/594/head
Ramiro Saenz 8 years ago
parent
commit
c15d1d4f2c
  1. 21
      app/model/Service.js
  2. 4
      app/store/ServicesList.js
  3. 7
      app/ux/WebView.js

21
app/model/Service.js

@ -37,18 +37,15 @@ Ext.define('Rambox.model.Service', {
name: 'muted' name: 'muted'
,type: 'boolean' ,type: 'boolean'
,defaultValue: false ,defaultValue: false
}, },{
{ name: 'displayTabUnreadCounter'
name: 'displayTabUnreadCounter', ,type: 'boolean'
type: 'boolean', ,defaultValue: true
defaultValue: true },{
}, name: 'includeInGlobalUnreadCounter'
{ ,type: 'boolean'
name: 'includeInGlobalUnreadCounter', ,defaultValue: true
type: 'boolean', },{
defaultValue: true
},
{
name: 'trust' name: 'trust'
,type: 'boolean' ,type: 'boolean'
,defaultValue: false ,defaultValue: false

4
app/store/ServicesList.js

@ -94,8 +94,8 @@ Ext.define('Rambox.store.ServicesList', {
,description: 'Telegram is a messaging app with a focus on speed and security. It’s super-fast, simple, secure and free.' ,description: 'Telegram is a messaging app with a focus on speed and security. It’s super-fast, simple, secure and free.'
,url: 'https://web.telegram.org/' ,url: 'https://web.telegram.org/'
,type: 'messaging' ,type: 'messaging'
,titleBlink: true ,js_unread: 'function checkUnread(){var e=document.getElementsByClassName("im_dialog_badge badge"),t=0;for(i=0;i<e.length;i++)if(!e[i].classList.contains("im_dialog_badge_muted")){t+=parseInt(e[i].innerHTML.trim())}updateBadge(t)}function updateBadge(e){e>=1?rambox.setUnreadCount(e):rambox.clearUnreadCount()}setInterval(checkUnread,3000);'
,js_unread: 'function checkUnread(){var e=document.getElementsByClassName("im_dialog_badge badge"),t=0;for(i=0;i<e.length;i++)if(!e[i].classList.contains("im_dialog_badge_muted")){t+=parseInt(e[i].innerHTML.trim())}}function updateBadge(e){document.title="("+e+") RamboxService"}setInterval(checkUnread,3000);' ,dont_update_unread_from_title: true
}, },
{ {
id: 'wechat' id: 'wechat'

7
app/ux/WebView.js

@ -250,13 +250,14 @@ Ext.define('Rambox.ux.WebView',{
webview.executeJavaScript(js_unread); webview.executeJavaScript(js_unread);
} }
} }
/*
// Prevent Title blinking (some services have) and only allow when the title have an unread regex match: "(3) Title" // Prevent Title blinking (some services have) and only allow when the title have an unread regex match: "(3) Title"
if ( Ext.getStore('ServicesList').getById(me.record.get('type')).get('titleBlink') ) { if ( Ext.getStore('ServicesList').getById(me.record.get('type')).get('titleBlink') ) {
var js_preventBlink = 'var originalTitle=document.title;Object.defineProperty(document,"title",{configurable:!0,set:function(a){null===a.match(new RegExp("[(]([0-9•]+)[)][ ](.*)","g"))&&a!==originalTitle||(document.getElementsByTagName("title")[0].innerHTML=a)},get:function(){return document.getElementsByTagName("title")[0].innerHTML}});'; var js_preventBlink = 'var originalTitle=document.title;Object.defineProperty(document,"title",{configurable:!0,set:function(a){null===a.match(new RegExp("[(]([0-9•]+)[)][ ](.*)","g"))&&a!==originalTitle||(document.getElementsByTagName("title")[0].innerHTML=a)},get:function(){return document.getElementsByTagName("title")[0].innerHTML}});';
console.log(js_preventBlink); console.log(js_preventBlink);
webview.executeJavaScript(js_preventBlink); webview.executeJavaScript(js_preventBlink);
} }
*/
console.groupEnd(); console.groupEnd();
// Scroll always to top (bug) // Scroll always to top (bug)
@ -308,7 +309,7 @@ Ext.define('Rambox.ux.WebView',{
count = count === '•' ? count : Ext.isArray(count.match(/\d+/g)) ? count.match(/\d+/g).join("") : count.match(/\d+/g); // Some services have special characters. Example: (•) count = count === '•' ? count : Ext.isArray(count.match(/\d+/g)) ? count.match(/\d+/g).join("") : count.match(/\d+/g); // Some services have special characters. Example: (•)
count = count === null ? '0' : count; count = count === null ? '0' : count;
me.setUnreadCount(count); me.setUnreadCount(count);
}); });
} }
@ -317,9 +318,11 @@ Ext.define('Rambox.ux.WebView',{
}); });
if(ipc.sendSync('getConfig').spellcheck) { if(ipc.sendSync('getConfig').spellcheck) {
/*
var webFrame = require('electron').webFrame; var webFrame = require('electron').webFrame;
var SpellCheckProvider = require('electron-spell-check-provider'); var SpellCheckProvider = require('electron-spell-check-provider');
webFrame.setSpellCheckProvider('en-US', true, new SpellCheckProvider('en-US')); webFrame.setSpellCheckProvider('en-US', true, new SpellCheckProvider('en-US'));
*/
} }
}, },

Loading…
Cancel
Save