mirror of
https://github.com/twisterarmy/twister-html.git
synced 2025-02-04 11:04:29 +00:00
add missing flags to clone event too from DM template textareas, code restyling
This commit is contained in:
parent
5a25dbd76a
commit
5c35807932
@ -5,41 +5,37 @@
|
||||
|
||||
function requestDMsnippetList(dmThreadList) {
|
||||
var followList = [];
|
||||
for( var i = 0; i < followingUsers.length; i++ ) {
|
||||
for (var i = 0; i < followingUsers.length; i++)
|
||||
followList.push({username:followingUsers[i]});
|
||||
}
|
||||
for( var i = 0; i < groupChatAliases.length; i++ ) {
|
||||
for (var i = 0; i < groupChatAliases.length; i++)
|
||||
followList.push({username:groupChatAliases[i]});
|
||||
}
|
||||
|
||||
twisterRpc("getdirectmsgs", [defaultScreenName, 1, followList],
|
||||
function(req, ret) {processDMsnippet(ret, dmThreadList);}, dmThreadList,
|
||||
function(req, ret) {console.log("ajax error:" + ret);}, null);
|
||||
twisterRpc('getdirectmsgs', [defaultScreenName, 1, followList],
|
||||
function(req, ret) {processDMsnippet(ret, dmThreadList);}, dmThreadList,
|
||||
function(req, ret) {console.log('ajax error:' + ret);}, null
|
||||
);
|
||||
}
|
||||
|
||||
function processDMsnippet(dmUsers, dmThreadList) {
|
||||
dmThreadList.empty();
|
||||
|
||||
for( var u in dmUsers ) {
|
||||
if( dmUsers.hasOwnProperty(u) ) {
|
||||
for (var u in dmUsers) {
|
||||
if (dmUsers[u]) {
|
||||
// convert snipped to html and add it to date-sorted list
|
||||
var dmItem = dmDataToSnippetItem(dmUsers[u][0], u);
|
||||
var timeDmItem = parseInt(dmItem.attr("data-time"));
|
||||
var timeDmItem = parseInt(dmItem.attr('data-time'));
|
||||
var existingItems = dmThreadList.children();
|
||||
var j = 0;
|
||||
for( j = 0; j < existingItems.length; j++) {
|
||||
for (var j = 0; j < existingItems.length; j++) {
|
||||
var streamItem = existingItems.eq(j);
|
||||
var timeExisting = streamItem.attr("data-time");
|
||||
if( timeExisting == undefined ||
|
||||
timeDmItem > parseInt(timeExisting) ) {
|
||||
var timeExisting = streamItem.attr('data-time');
|
||||
if (typeof timeExisting === 'undefined' || timeDmItem > parseInt(timeExisting)) {
|
||||
// this post in stream is older, so post must be inserted above
|
||||
streamItem.before(dmItem);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( j == existingItems.length ) {
|
||||
if (j === existingItems.length)
|
||||
dmThreadList.append(dmItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
$.MAL.dmThreadListLoaded();
|
||||
@ -52,84 +48,86 @@ function requestDmConversationModal(postboard, dm_screenname) {
|
||||
}
|
||||
}
|
||||
|
||||
function requestDmConversation(dmConvo,dm_screenname) {
|
||||
function requestDmConversation(postboard, dm_screenname) {
|
||||
var since_id = undefined;
|
||||
|
||||
var oldItems = dmConvo.children();
|
||||
if( oldItems.length ) {
|
||||
since_id = parseInt(oldItems.eq(oldItems.length-1).attr("data-id"));
|
||||
}
|
||||
var oldItems = postboard.children();
|
||||
if (oldItems.length)
|
||||
since_id = parseInt(oldItems.eq(oldItems.length - 1).attr('data-id'));
|
||||
|
||||
var userDmReq = [{username: dm_screenname}];
|
||||
if (typeof since_id !== 'undefined')
|
||||
userDmReq[0].since_id = since_id;
|
||||
|
||||
var userDmReq = [{username:dm_screenname}];
|
||||
if( since_id != undefined ) userDmReq[0].since_id = since_id;
|
||||
var count = 100;
|
||||
twisterRpc("getdirectmsgs", [defaultScreenName,count,userDmReq],
|
||||
function(args, ret) { processDmConversation(args.dmConvo, args.dmUser, ret); },
|
||||
{dmConvo:dmConvo,dmUser:dm_screenname},
|
||||
function(arg, ret) { var msg = ("message" in ret) ? ret.message : ret;
|
||||
alert(polyglot.t("ajax_error", { error: msg })); }, null);
|
||||
twisterRpc('getdirectmsgs', [defaultScreenName, count, userDmReq],
|
||||
function(args, ret) {processDmConversation(args.postboard, args.dm_screenname, ret);},
|
||||
{postboard: postboard, dm_screenname: dm_screenname},
|
||||
function(arg, ret) {
|
||||
var msg = (ret.message) ? ret.message : ret;
|
||||
alert(polyglot.t('ajax_error', {error: msg}));
|
||||
}, null
|
||||
);
|
||||
}
|
||||
|
||||
function processDmConversation(dmConvo, dm_screenname, dmData) {
|
||||
function processDmConversation(postboard, dm_screenname, dmData) {
|
||||
var lastId = undefined;
|
||||
if(dm_screenname in dmData) {
|
||||
|
||||
if (dmData[dm_screenname]) {
|
||||
var dmList = dmData[dm_screenname];
|
||||
if( dmList.length ) {
|
||||
for( var i = 0; i < dmList.length; i++) {;
|
||||
var dmItem = dmDataToConversationItem(dmList[i],defaultScreenName,dm_screenname);
|
||||
dmItem.attr("data-id",dmList[i].id);
|
||||
dmConvo.append(dmItem);
|
||||
if (dmList.length) {
|
||||
for (var i = 0; i < dmList.length; i++) {
|
||||
var dmItem = dmDataToConversationItem(dmList[i], defaultScreenName, dm_screenname)
|
||||
.attr('data-id', dmList[i].id)
|
||||
.appendTo(postboard)
|
||||
;
|
||||
lastId = dmList[i].id;
|
||||
}
|
||||
$.MAL.dmChatListLoaded(dmConvo);
|
||||
$.MAL.dmChatListLoaded(postboard);
|
||||
}
|
||||
}
|
||||
if( lastId != undefined ) {
|
||||
if (typeof lastId !== 'undefined')
|
||||
resetNewDMsCountForUser(dm_screenname, lastId);
|
||||
}
|
||||
}
|
||||
|
||||
function directMsgSubmit(e)
|
||||
{
|
||||
function directMsgSubmit(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
var $this = $( this );
|
||||
var $replyText = $this.closest(".post-area-new").find("textarea");
|
||||
|
||||
var $dmConversation = $(".directMessages");
|
||||
var replyText = $(this).closest('.post-area-new textarea');
|
||||
|
||||
newDirectMsg($replyText.val(), $dmConversation.attr("data-dm-screen-name"));
|
||||
newDirectMsg(replyText.val(), $('.directMessages').attr('data-dm-screen-name'));
|
||||
|
||||
$replyText.val("");
|
||||
replyText.val('');
|
||||
}
|
||||
|
||||
function newDirectMsg(msg, dm_screenname) {
|
||||
if( lastPostId != undefined ) {
|
||||
var paramsOrig = [defaultScreenName, lastPostId + 1, dm_screenname, msg]
|
||||
var paramsOpt = paramsOrig
|
||||
var copySelf = ($.Options.dmCopySelf.val === 'enable')
|
||||
if( copySelf && dm_screenname[0] !== '*' ) {
|
||||
if (typeof lastPostId !== 'undefined') {
|
||||
var paramsOrig = [defaultScreenName, lastPostId + 1, dm_screenname, msg];
|
||||
var paramsOpt = paramsOrig;
|
||||
var copySelf = $.Options.dmCopySelf.val === 'enable';
|
||||
if (copySelf && dm_screenname[0] !== '*')
|
||||
paramsOpt = paramsOrig.concat(true)
|
||||
}
|
||||
|
||||
twisterRpc("newdirectmsg", paramsOpt,
|
||||
function(arg, ret) {
|
||||
incLastPostId();
|
||||
if( arg.copySelf ) incLastPostId();
|
||||
}, {copySelf:copySelf},
|
||||
function(arg, ret) {
|
||||
// fallback for older twisterd (error: no copy_self parameter)
|
||||
twisterRpc("newdirectmsg", arg.paramsOrig,
|
||||
function(arg, ret) { incLastPostId(); }, null,
|
||||
function(arg, ret) {
|
||||
var msg = ("message" in ret) ? ret.message : ret;
|
||||
alert("Ajax error: " + msg);
|
||||
}, null);
|
||||
}, {paramsOrig:paramsOrig}
|
||||
twisterRpc('newdirectmsg', paramsOpt,
|
||||
function(arg, ret) {
|
||||
incLastPostId();
|
||||
if (arg.copySelf)
|
||||
incLastPostId();
|
||||
}, {copySelf: copySelf},
|
||||
function(arg, ret) {
|
||||
// fallback for older twisterd (error: no copy_self parameter)
|
||||
twisterRpc('newdirectmsg', arg.paramsOrig,
|
||||
function(arg, ret) {incLastPostId();}, null,
|
||||
function(arg, ret) {
|
||||
var msg = (ret.message) ? ret.message : ret;
|
||||
alert('Ajax error: ' + msg);
|
||||
}, null
|
||||
);
|
||||
}, {paramsOrig: paramsOrig}
|
||||
);
|
||||
} else {
|
||||
alert(polyglot.t("Internal error: lastPostId unknown (following yourself may fix!)"));
|
||||
}
|
||||
} else
|
||||
alert(polyglot.t('Internal error: lastPostId unknown (following yourself may fix!)'));
|
||||
}
|
||||
|
||||
// dispara o modal de direct messages
|
||||
@ -141,7 +139,7 @@ function directMessagesPopup() {
|
||||
|
||||
modal = openModal({
|
||||
classAdd: 'directMessages',
|
||||
content: $('.direct-messages-template').children().clone(),
|
||||
content: $('.direct-messages-template').children().clone(true),
|
||||
title: polyglot.t('Direct Messages')
|
||||
});
|
||||
|
||||
@ -151,8 +149,8 @@ function directMessagesPopup() {
|
||||
.css('display', 'inline')
|
||||
.attr('title', polyglot.t('Mark all as read'))
|
||||
.on('click', function() {
|
||||
for (var k in _newDMsPerUser) {
|
||||
_newDMsPerUser[k] = 0;
|
||||
for (var user in _newDMsPerUser) {
|
||||
_newDMsPerUser[user] = 0;
|
||||
}
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
@ -168,7 +166,7 @@ function openDmWithUserModal(dm_screenname) {
|
||||
|
||||
modal = openModal({
|
||||
classAdd: 'directMessages',
|
||||
content: $('.messages-thread-template').children().clone(),
|
||||
content: $('.messages-thread-template').children().clone(true),
|
||||
title: polyglot.t('direct_messages_with', {username: '<span>' + dm_screenname + '</span>'})
|
||||
});
|
||||
|
||||
@ -181,24 +179,22 @@ function openDmWithUserModal(dm_screenname) {
|
||||
|
||||
requestDmConversationModal(modal.self.find('.direct-messages-thread').empty(), dm_screenname);
|
||||
|
||||
$('.dm-form-template').children().clone()
|
||||
$('.dm-form-template').children().clone(true)
|
||||
.addClass('open').appendTo(modal.content).fadeIn('fast');
|
||||
}
|
||||
|
||||
|
||||
function initInterfaceDirectMsg() {
|
||||
$('.direct-messages').attr('href','#directmessages');
|
||||
$('.userMenu-messages a').attr('href','#directmessages');
|
||||
|
||||
$( ".direct-messages" ).attr("href","#directmessages");
|
||||
$( ".userMenu-messages a" ).attr("href","#directmessages");
|
||||
|
||||
$( "#dm-snippet-template" ).bind( "click", function(){
|
||||
window.location.hash='#directmessages?user='+$(this).attr("data-dm-screen-name");
|
||||
} );
|
||||
|
||||
$( ".dm-submit").click( directMsgSubmit );
|
||||
$( ".direct-messages-with-user" ).bind( "click", function() {
|
||||
window.location.hash='#directmessages?user='+$(this).closest("[data-screen-name]").attr("data-screen-name");
|
||||
} );
|
||||
$('#dm-snippet-template').on('click', function() {
|
||||
window.location.hash = '#directmessages?user=' + $(this).attr('data-dm-screen-name');
|
||||
});
|
||||
|
||||
$('.dm-submit').on('click', directMsgSubmit);
|
||||
$('.direct-messages-with-user').on('click', function() {
|
||||
window.location.hash = '#directmessages?user=' +
|
||||
$(this).closest('[data-screen-name]').attr('data-screen-name');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -17,20 +17,20 @@ var groupChatAliases = []
|
||||
|
||||
// process a mention received to check if it is really new
|
||||
function processMention(user, mentionTime, data) {
|
||||
var key = user + ";" + mentionTime;
|
||||
var key = user + ';' + mentionTime;
|
||||
var curTime = new Date().getTime() / 1000;
|
||||
if( mentionTime > curTime + 3600 * 2 ) {
|
||||
console.log("mention from the future will be ignored");
|
||||
} else {
|
||||
if( !(key in _knownMentions) ) {
|
||||
if (mentionTime > curTime + 7200) // 3600 * 2
|
||||
console.warn('ignoring mention from the future');
|
||||
else {
|
||||
if (!_knownMentions[key]) {
|
||||
// mention must be somewhat recent compared to last known one to be considered new
|
||||
if( mentionTime + 3600 * 24 * 3 > _lastMentionTime ) {
|
||||
if (mentionTime + 259200 > _lastMentionTime) { // 3600 * 24 * 3
|
||||
_newMentions++;
|
||||
_newMentionsUpdated = true;
|
||||
_lastMentionTime = Math.max(mentionTime,_lastMentionTime);
|
||||
data["isNew"] = true;
|
||||
_lastMentionTime = Math.max(mentionTime, _lastMentionTime);
|
||||
data.isNew = true;
|
||||
}
|
||||
_knownMentions[key] = {mentionTime:mentionTime, data:data};
|
||||
_knownMentions[key] = {mentionTime: mentionTime, data: data};
|
||||
purgeOldMentions();
|
||||
saveMentionsToStorage();
|
||||
}
|
||||
@ -38,10 +38,10 @@ function processMention(user, mentionTime, data) {
|
||||
}
|
||||
|
||||
function purgeOldMentions() {
|
||||
for( var key in _knownMentions ) {
|
||||
if( _knownMentions.hasOwnProperty(key) ) {
|
||||
if( !_knownMentions[key].mentionTime || !_knownMentions[key].data ||
|
||||
_knownMentions[key].mentionTime + PURGE_OLD_MENTIONS_TIMEOUT < _lastMentionTime ) {
|
||||
for (var key in _knownMentions) {
|
||||
if (_knownMentions[key]) {
|
||||
if (!_knownMentions[key].mentionTime || !_knownMentions[key].data ||
|
||||
_knownMentions[key].mentionTime + PURGE_OLD_MENTIONS_TIMEOUT < _lastMentionTime) {
|
||||
delete _knownMentions[key];
|
||||
}
|
||||
}
|
||||
@ -49,87 +49,85 @@ function purgeOldMentions() {
|
||||
}
|
||||
|
||||
function saveMentionsToStorage() {
|
||||
var ns=$.initNamespaceStorage(defaultScreenName);
|
||||
ns.localStorage.set("knownMentions", _knownMentions);
|
||||
ns.localStorage.set("lastMentionTime", _lastMentionTime);
|
||||
ns.localStorage.set("newMentions", _newMentions);
|
||||
ns.localStorage.set("lastLocalMentionId",_lastLocalMentionId);
|
||||
var ns = $.initNamespaceStorage(defaultScreenName);
|
||||
ns.localStorage.set('knownMentions', _knownMentions);
|
||||
ns.localStorage.set('lastMentionTime', _lastMentionTime);
|
||||
ns.localStorage.set('newMentions', _newMentions);
|
||||
ns.localStorage.set('lastLocalMentionId', _lastLocalMentionId);
|
||||
}
|
||||
|
||||
function loadMentionsFromStorage() {
|
||||
var ns=$.initNamespaceStorage(defaultScreenName);
|
||||
if( ns.localStorage.isSet("knownMentions") )
|
||||
_knownMentions = ns.localStorage.get("knownMentions");
|
||||
if( ns.localStorage.isSet("lastMentionTime") )
|
||||
_lastMentionTime = ns.localStorage.get("lastMentionTime");
|
||||
if( ns.localStorage.isSet("newMentions") )
|
||||
_newMentions = ns.localStorage.get("newMentions");
|
||||
if( ns.localStorage.isSet("lastLocalMentionId") )
|
||||
_lastLocalMentionId = ns.localStorage.get("lastLocalMentionId");
|
||||
var ns = $.initNamespaceStorage(defaultScreenName);
|
||||
if (ns.localStorage.isSet('knownMentions'))
|
||||
_knownMentions = ns.localStorage.get('knownMentions');
|
||||
if (ns.localStorage.isSet('lastMentionTime'))
|
||||
_lastMentionTime = ns.localStorage.get('lastMentionTime');
|
||||
if (ns.localStorage.isSet('newMentions'))
|
||||
_newMentions = ns.localStorage.get('newMentions');
|
||||
if (ns.localStorage.isSet('lastLocalMentionId'))
|
||||
_lastLocalMentionId = ns.localStorage.get('lastLocalMentionId');
|
||||
}
|
||||
|
||||
function requestMentionsCount() {
|
||||
// first: getmentions from torrents we follow
|
||||
twisterRpc("getmentions", [defaultScreenName, 100, {"since_id":_lastLocalMentionId}],
|
||||
function(args, data) {
|
||||
if( data ) {
|
||||
for( var i = 0; i < data.length; i++ ) {
|
||||
_lastLocalMentionId = Math.max(_lastLocalMentionId, data[i]["id"]);
|
||||
var userpost = data[i]["userpost"];
|
||||
processMention( userpost["n"], userpost["time"], data[i]);
|
||||
}
|
||||
$.MAL.updateNewMentionsUI(_newMentions);
|
||||
}
|
||||
}, null,
|
||||
function(req, ret) {console.log("getmentions API requires twister-core > 0.9.27");}, null);
|
||||
|
||||
twisterRpc('getmentions', [defaultScreenName, 100, {since_id: _lastLocalMentionId}],
|
||||
function(args, data) {
|
||||
if (data) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
_lastLocalMentionId = Math.max(_lastLocalMentionId, data[i].id);
|
||||
var userpost = data[i].userpost;
|
||||
processMention(userpost.n, userpost.time, data[i]);
|
||||
}
|
||||
$.MAL.updateNewMentionsUI(_newMentions);
|
||||
}
|
||||
}, null,
|
||||
function(req, ret) {console.warn('getmentions API requires twister-core > 0.9.27');}, null
|
||||
);
|
||||
// second: get mentions from dht (not-following)
|
||||
dhtget( defaultScreenName, "mention", "m",
|
||||
function(args, data) {
|
||||
if( data ) {
|
||||
for( var i = 0; i < data.length; i++ ) {
|
||||
var userpost = data[i]["userpost"];
|
||||
processMention( userpost["n"], userpost["time"], data[i]);
|
||||
}
|
||||
$.MAL.updateNewMentionsUI(_newMentions);
|
||||
}
|
||||
}, {},
|
||||
[10000,2000,3]); // use extended timeout parameters (requires twister_core >= 0.9.14)
|
||||
dhtget(defaultScreenName, 'mention', 'm',
|
||||
function(args, data) {
|
||||
if (data) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var userpost = data[i].userpost;
|
||||
processMention(userpost.n, userpost.time, data[i]);
|
||||
}
|
||||
$.MAL.updateNewMentionsUI(_newMentions);
|
||||
}
|
||||
}, {},
|
||||
[10000, 2000, 3] // use extended timeout parameters (requires twister_core >= 0.9.14)
|
||||
);
|
||||
|
||||
if( _newMentionsUpdated ) {
|
||||
if (_newMentionsUpdated) {
|
||||
_newMentionsUpdated = false;
|
||||
|
||||
if ( _newMentions ) {
|
||||
if (_newMentions) {
|
||||
$.MAL.soundNotifyMentions();
|
||||
|
||||
if ($.Options.showDesktopNotifMentions.val === 'enable') {
|
||||
if ($.Options.showDesktopNotifMentions.val === 'enable')
|
||||
$.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_mentions', _newMentions)+'.', false,'twister_notification_new_mentions', $.Options.showDesktopNotifMentionsTimer.val, function(){$.MAL.showMentions(defaultScreenName)}, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// was moved here from requestDMsCount() because that is not ticking right
|
||||
// we would place it with other notifications into separate notification center
|
||||
if( _newDMsUpdated ) {
|
||||
if (_newDMsUpdated) {
|
||||
_newDMsUpdated = false;
|
||||
|
||||
var newDMs = getNewDMsCount();
|
||||
if ( newDMs ) {
|
||||
if (newDMs) {
|
||||
$.MAL.soundNotifyDM();
|
||||
|
||||
if ($.Options.showDesktopNotifDMs.val === 'enable') {
|
||||
if ($.Options.showDesktopNotifDMs.val === 'enable')
|
||||
$.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_direct_messages', newDMs)+'.', false, 'twister_notification_new_DMs', $.Options.showDesktopNotifDMsTimer.val, function(){$.MAL.showDMchat()}, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function resetMentionsCount() {
|
||||
_newMentions = 0;
|
||||
for( var key in _knownMentions ) {
|
||||
if( _knownMentions.hasOwnProperty(key) && _knownMentions[key].data ) {
|
||||
delete _knownMentions[key].data["isNew"]
|
||||
}
|
||||
for (var key in _knownMentions) {
|
||||
if (_knownMentions[key] && _knownMentions[key].data)
|
||||
delete _knownMentions[key].data.isNew
|
||||
}
|
||||
saveMentionsToStorage();
|
||||
$.MAL.updateNewMentionsUI(_newMentions);
|
||||
@ -140,13 +138,13 @@ function initMentionsCount() {
|
||||
loadMentionsFromStorage();
|
||||
$.MAL.updateNewMentionsUI(_newMentions);
|
||||
requestMentionsCount();
|
||||
setInterval("requestMentionsCount()", 10000);
|
||||
setInterval(requestMentionsCount, 10000);
|
||||
}
|
||||
|
||||
function getMentionsData() {
|
||||
mentions = []
|
||||
for( var key in _knownMentions ) {
|
||||
if( _knownMentions.hasOwnProperty(key) && _knownMentions[key].data ) {
|
||||
for (var key in _knownMentions) {
|
||||
if (_knownMentions[key] && _knownMentions[key].data) {
|
||||
mentions.push(_knownMentions[key].data);
|
||||
}
|
||||
}
|
||||
@ -159,61 +157,60 @@ var _lastDMIdPerUser = {};
|
||||
var _newDMsPerUser = {};
|
||||
|
||||
function saveDMsToStorage() {
|
||||
var ns=$.initNamespaceStorage(defaultScreenName);
|
||||
ns.localStorage.set("lastDMIdPerUser", _lastDMIdPerUser);
|
||||
ns.localStorage.set("newDMsPerUser", _newDMsPerUser);
|
||||
var ns = $.initNamespaceStorage(defaultScreenName);
|
||||
ns.localStorage.set('lastDMIdPerUser', _lastDMIdPerUser);
|
||||
ns.localStorage.set('newDMsPerUser', _newDMsPerUser);
|
||||
}
|
||||
|
||||
function loadDMsFromStorage() {
|
||||
var ns=$.initNamespaceStorage(defaultScreenName);
|
||||
if( ns.localStorage.isSet("lastDMIdPerUser") )
|
||||
_lastDMIdPerUser = ns.localStorage.get("lastDMIdPerUser");
|
||||
if( ns.localStorage.isSet("newDMsPerUser") )
|
||||
_newDMsPerUser = ns.localStorage.get("newDMsPerUser");
|
||||
var ns = $.initNamespaceStorage(defaultScreenName);
|
||||
if (ns.localStorage.isSet('lastDMIdPerUser'))
|
||||
_lastDMIdPerUser = ns.localStorage.get('lastDMIdPerUser');
|
||||
if (ns.localStorage.isSet('newDMsPerUser'))
|
||||
_newDMsPerUser = ns.localStorage.get('newDMsPerUser');
|
||||
}
|
||||
|
||||
function requestDMsCount() {
|
||||
var followList = [];
|
||||
for( var i = 0; i < followingUsers.length; i++ ) {
|
||||
followList.push({username:followingUsers[i]});
|
||||
}
|
||||
for( var i = 0; i < groupChatAliases.length; i++ ) {
|
||||
followList.push({username:groupChatAliases[i]});
|
||||
}
|
||||
for (var i = 0; i < followingUsers.length; i++)
|
||||
followList.push({username: followingUsers[i]});
|
||||
for (var i = 0; i < groupChatAliases.length; i++ )
|
||||
followList.push({username: groupChatAliases[i]});
|
||||
|
||||
twisterRpc("getdirectmsgs", [defaultScreenName, 1, followList],
|
||||
function(req, dmUsers) {
|
||||
for( var u in dmUsers ) {
|
||||
if( dmUsers.hasOwnProperty(u) ) {
|
||||
var dmData = dmUsers[u][0];
|
||||
if( (u in _lastDMIdPerUser) && (u in _newDMsPerUser) ) {
|
||||
if( dmData.id != _lastDMIdPerUser[u] ) {
|
||||
_newDMsPerUser[u] += (dmData.id - _lastDMIdPerUser[u]);
|
||||
_newDMsUpdated = true;
|
||||
}
|
||||
} else {
|
||||
_newDMsPerUser[u] = dmData.id+1;
|
||||
_newDMsUpdated = true;
|
||||
}
|
||||
_lastDMIdPerUser[u] = dmData.id;
|
||||
}
|
||||
}
|
||||
if( _newDMsUpdated ) {
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
}
|
||||
}, null,
|
||||
function(req, ret) {console.log("ajax error:" + ret);}, null);
|
||||
twisterRpc('getdirectmsgs', [defaultScreenName, 1, followList],
|
||||
function(req, dmUsers) {
|
||||
for (var u in dmUsers) {
|
||||
if (dmUsers[u]) {
|
||||
var dmData = dmUsers[u][0];
|
||||
if (u in _lastDMIdPerUser && u in _newDMsPerUser) {
|
||||
if (dmData.id !== _lastDMIdPerUser[u]) {
|
||||
_newDMsPerUser[u] += dmData.id - _lastDMIdPerUser[u];
|
||||
_newDMsUpdated = true;
|
||||
}
|
||||
} else {
|
||||
_newDMsPerUser[u] = dmData.id + 1;
|
||||
_newDMsUpdated = true;
|
||||
}
|
||||
_lastDMIdPerUser[u] = dmData.id;
|
||||
}
|
||||
}
|
||||
if (_newDMsUpdated) {
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
}
|
||||
}, null,
|
||||
function(req, ret) {console.warn('ajax error:' + ret);}, null
|
||||
);
|
||||
}
|
||||
|
||||
function getNewDMsCount() {
|
||||
var newDMs = 0;
|
||||
|
||||
for( var key in _newDMsPerUser ) {
|
||||
if( _newDMsPerUser.hasOwnProperty(key) ) {
|
||||
newDMs += _newDMsPerUser[key];
|
||||
}
|
||||
for (var user in _newDMsPerUser) {
|
||||
if (_newDMsPerUser[user])
|
||||
newDMs += _newDMsPerUser[user];
|
||||
}
|
||||
|
||||
return newDMs;
|
||||
}
|
||||
|
||||
@ -226,22 +223,22 @@ function resetNewDMsCountForUser(user, lastId) {
|
||||
}
|
||||
|
||||
function updateGroupList() {
|
||||
twisterRpc("listgroups", [],
|
||||
function(req, ret) {groupChatAliases=ret;}, null,
|
||||
function(req, ret) {console.log("twisterd >= 0.9.30 required for listgroups");}, null);
|
||||
twisterRpc('listgroups', [],
|
||||
function(req, ret) {groupChatAliases = ret;}, null,
|
||||
function(req, ret) {console.warn('twisterd >= 0.9.30 required for listgroups');}, null
|
||||
);
|
||||
}
|
||||
|
||||
function initDMsCount() {
|
||||
loadDMsFromStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
|
||||
//quick hack to obtain list of group chat aliases
|
||||
updateGroupList();
|
||||
setInterval("updateGroupList();", 60000);
|
||||
setInterval(updateGroupList, 60000);
|
||||
|
||||
setTimeout("requestDMsCount();", 200);
|
||||
setTimeout(requestDMsCount, 200);
|
||||
//polling not needed: processNewPostsConfirmation will call requestDMsCount.
|
||||
//setInterval("requestDMsCount()", 5000);
|
||||
//setInterval('requestDMsCount()', 5000);
|
||||
}
|
||||
|
||||
function newmsgsChangedUser() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user