Version 0.002 with working Favorite Combobox

This commit is contained in:
LubuWest 2016-11-14 13:28:23 +01:00
commit 571c9046d0
42 changed files with 1948 additions and 814 deletions

View file

@ -40,35 +40,66 @@ function getFriendsTimeline(login,database,contacts,rootwindow,callback){// retr
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" ORDER BY status_id DESC LIMIT 1'); // check for last news id
try{parameter="&since_id="+result.rows.item(0).status_id;}catch(e){};})
var newContacts=[];
//print(JSON.stringify("Contacts "+contacts));
Helperjs.friendicaRequest(login,"/api/statuses/friends_timeline"+parameter, rootwindow,function (obj){
var news=JSON.parse(obj);
for (var i=0;i<news.length;i++){
if(contacts.indexOf(news[i].user.id)==-1 && !(inArray(newContacts,"id",news[i].user.id))){
news[i].user.isFriend=0;
newContacts.push(news[i].user);
}
if (news[i].friendica_activities.like.length>0){
print("Like Contact"+JSON.stringify(news[i].friendica_activities.like));
for (var j=0;j<news[i].friendica_activities.like.length;j++){
if(contacts.indexOf(news[i].friendica_activities.like[j].id)==-1 && !(inArray(newContacts,"id",news[i].friendica_activities.like[j].id))){
news[i].friendica_activities.like[j].isFriend=0;
newContacts.push(news[i].friendica_activities.like[j]);
}
}
}
if (news[i].friendica_activities.dislike.length>0){
print("DisLike Contact"+JSON.stringify(news[i].friendica_activities.dislike));
for (var k=0;j<news[k].friendica_activities.dislike.length;k++){
if(contacts.indexOf(news[i].friendica_activities.dislike[k].id)==-1 && !(inArray(newContacts,"id",news[i].friendica_activties.dislike[k].id))){
news[i].friendica_activities.dislike[k].isFriend=0;
newContacts.push(news[i].friendica_activities.dislike[k]);
}
}
}
}
var newContacts=findNewContacts(news,contacts);
// for (var i=0;i<news.length;i++){
// if(contacts.indexOf(news[i].user.id)==-1 && !(inArray(newContacts,"id",news[i].user.id))){
// news[i].user.isFriend=0;
// newContacts.push(news[i].user);
// }
// if (news[i].friendica_activities.like.length>0){
// // print("Like Contact"+JSON.stringify(news[i].friendica_activities.like));
// for (var j=0;j<news[i].friendica_activities.like.length;j++){
// if(contacts.indexOf(news[i].friendica_activities.like[j].id)==-1 && !(inArray(newContacts,"id",news[i].friendica_activities.like[j].id))){
// news[i].friendica_activities.like[j].isFriend=0;
// newContacts.push(news[i].friendica_activities.like[j]);
// }
// }
// }
// if (news[i].friendica_activities.dislike.length>0){
// //print("DisLike Contact"+JSON.stringify(news[i].friendica_activities.dislike));
// for (var k=0;j<news[k].friendica_activities.dislike.length;k++){
// if(contacts.indexOf(news[i].friendica_activities.dislike[k].id)==-1 && !(inArray(newContacts,"id",news[i].friendica_activties.dislike[k].id))){
// news[i].friendica_activities.dislike[k].isFriend=0;
// newContacts.push(news[i].friendica_activities.dislike[k]);
// }
// }
// }
// }
callback(news,newContacts)
})}
function findNewContacts(news,contacts){
var newContacts=[];
for (var i=0;i<news.length;i++){
if(contacts.indexOf(news[i].user.id)==-1 && !(inArray(newContacts,"id",news[i].user.id))){
news[i].user.isFriend=0;
newContacts.push(news[i].user);
}
if (news[i].friendica_activities.like.length>0){
// print("Like Contact"+JSON.stringify(news[i].friendica_activities.like));
for (var j=0;j<news[i].friendica_activities.like.length;j++){
if(contacts.indexOf(news[i].friendica_activities.like[j].id)==-1 && !(inArray(newContacts,"id",news[i].friendica_activities.like[j].id))){
news[i].friendica_activities.like[j].isFriend=0;
newContacts.push(news[i].friendica_activities.like[j]);
}
}
}
if (news[i].friendica_activities.dislike.length>0){
//print("DisLike Contact"+JSON.stringify(news[i].friendica_activities.dislike));
for (var k=0;j<news[k].friendica_activities.dislike.length;k++){
if(contacts.indexOf(news[i].friendica_activities.dislike[k].id)==-1 && !(inArray(newContacts,"id",news[i].friendica_activties.dislike[k].id))){
news[i].friendica_activities.dislike[k].isFriend=0;
newContacts.push(news[i].friendica_activities.dislike[k]);
}
}
}
}
return newContacts
}
function storeNews(login,database,news,rootwindow,callback){
// save news after contacts download, call next function
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
@ -80,14 +111,14 @@ function storeNews(login,database,news,rootwindow,callback){
var attendyesarray=[]; for (var user in news[i].friendica_activities.attendyes){attendyesarray.push(parseInt(news[i].friendica_activities.attendyes[user].id))}
var attendnoarray=[]; for (var user in news[i].friendica_activities.attendno){attendnoarray.push(parseInt(news[i].friendica_activities.attendno[user].id))}
var attendmaybearray=[]; for (var user in news[i].friendica_activities.attendmaybe){attendmaybearray.push(parseInt(news[i].friendica_activities.attendmaybe[user].id))}
var friendica_activities=[likearray,dislikearray,attendyesarray,attendnoarray,attendmaybearray]
db.transaction( function(tx) {
var result = tx.executeSql('SELECT * from news where status_id = "'+news[i].id+'"'); // check for news id
if(result.rows.length === 1) {// use update
print(news[i].id +' exists, update it')
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", created_at="'+Date.parse(cleanDate(news[i].created_at))+'", in_reply_to_status_id="'+news[i].in_reply_to_status_id+'", source="'+news[i].source+'", status_id="'+news[i].id+'", in_reply_to_user_id="'+news[i].in_reply_to_user_id+'", geo="'+news[i].geo+'", favorited="'+news[i].favorited+'", uid="'+news[i].user.id+'", statusnet_html="'+Qt.btoa(news[i].status_html)+'", statusnet_conversation_id="'+news[i].statusnet_conversation_id+'",like="'+JSON.stringify(likearray)+'", dislike="'+JSON.stringify(dislikearray)+'", attendyes="'+JSON.stringify(attendyesarray)+'",attendno="'+JSON.stringify(attendnoarray)+'",attendmaybe="'+JSON.stringify(attendmaybearray)+'" where status_id="'+news[i].status_id+'"');
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", created_at="'+Date.parse(cleanDate(news[i].created_at))+'", in_reply_to_status_id="'+news[i].in_reply_to_status_id+'", source="'+news[i].source+'", status_id="'+news[i].id+'", in_reply_to_user_id="'+news[i].in_reply_to_user_id+'", geo="'+news[i].geo+'", favorited="'+news[i].favorited+'", uid="'+news[i].user.id+'", statusnet_html="'+Qt.btoa(news[i].status_html)+'", statusnet_conversation_id="'+news[i].statusnet_conversation_id+'",friendica_activities="'+JSON.stringify(friendica_activities)+'" where status_id="'+news[i].status_id+'"');
} else {// use insert
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,in_reply_to_status_id,source,status_id,in_reply_to_user_id,geo,favorited,uid,statusnet_html,statusnet_conversation_id,like,dislike,attendyes,attendno,attendmaybe) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,0,Qt.btoa(news[i].text),Date.parse(cleanDate(news[i].created_at)), news[i].in_reply_to_status_id, news[i].source, news[i].id,news[i].in_reply_to_user_id,news[i].geo,news[i].favorited, news[i].user.id,Qt.btoa(news[i].statusnet_html),news[i].statusnet_conversation_id, JSON.stringify(likearray),JSON.stringify(dislikearray),JSON.stringify(attendyesarray),JSON.stringify(attendnoarray),JSON.stringify(attendmaybearray)])}})
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,in_reply_to_status_id,source,status_id,in_reply_to_user_id,geo,favorited,uid,statusnet_html,statusnet_conversation_id,friendica_activities,friendica_activities_self) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,0,Qt.btoa(news[i].text),Date.parse(cleanDate(news[i].created_at)), news[i].in_reply_to_status_id, news[i].source, news[i].id,news[i].in_reply_to_user_id,news[i].geo,news[i].favorited, news[i].user.id,Qt.btoa(news[i].statusnet_html),news[i].statusnet_conversation_id, JSON.stringify(friendica_activities),"[]"])}})
}
getDirectMessage(login,database,rootwindow,callback)
}
@ -102,9 +133,9 @@ function getDirectMessage(login,database,rootwindow,callback){
var result = tx.executeSql('SELECT * from news where status_id = "'+messages[i].id+'"'); // check for news id
if(result.rows.length === 1) {// use update
print(messages[i].id +' exists, update it')
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=1, text="'+Qt.btoa(messages[i].text)+'", created_at="'+Date.parse(cleanDate(messages[i].created_at))+'", source="Friendica", status_id="'+messages[i].id+'", uid="'+messages[i].sender.id+'", statusnet_html="'+Qt.btoa(messages[i].text)+'" where status_id="'+messages[i].status_id+'"');
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=1, text="'+Qt.btoa(messages[i].text)+'", created_at="'+Date.parse(messages[i].created_at)+'", source="Friendica", status_id="'+messages[i].id+'", uid="'+messages[i].sender.id+'", statusnet_html="'+Qt.btoa(messages[i].text)+'" where status_id="'+messages[i].status_id+'"');
} else {// use insert
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,source,status_id,uid,statusnet_html) VALUES (?,?,?,?,?,?,?,?)', [login.username,1,Qt.btoa(messages[i].text),Date.parse(cleanDate(messages[i].created_at)), "Friendica", messages[i].id, messages[i].sender.id,Qt.btoa(messages[i].text)])}
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,source,status_id,uid,statusnet_html) VALUES (?,?,?,?,?,?,?,?)', [login.username,1,Qt.btoa(messages[i].text),Date.parse(messages[i].created_at), "Friendica", messages[i].id, messages[i].sender.id,Qt.btoa(messages[i].text)])}
});
}
})
@ -121,15 +152,25 @@ function getNotifications(login,database,rootwindow,callback){
var result = tx.executeSql('SELECT * from news where status_id = "'+messages[i].id+'"'); // check for news id
if(result.rows.length === 1) {// use update
print(messages[i].id +' exists, update it')
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=2, text="'+Qt.btoa(messages[i].msg_html)+'", created_at="'+messages[i].timestamp+'", source="Friendica", status_id="'+messages[i].id+'", uid="'+messages[i].uid+'", statusnet_html="'+Qt.btoa(messages[i].msg_html)+'", statusnet_conversation_id="'+messages[i].parent+'" where status_id="'+messages[i].id+'"');
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=2, text="'+Qt.btoa(messages[i].msg_html)+'", created_at="'+Date.parse(messages[i].date)+'", source="Friendica", status_id="'+messages[i].id+'", uid="'+messages[i].uid+'", statusnet_html="'+Qt.btoa(messages[i].msg_html)+'", statusnet_conversation_id="'+messages[i].parent+'" where status_id="'+messages[i].id+'"');
} else {// use insert
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,source,status_id, uid,statusnet_html,statusnet_conversation_id) VALUES (?,?,?,?,?,?,?,?,?)', [login.username,2,Qt.btoa(messages[i].msg_html),messages[i].timestamp,"Friendica", messages[i].id, messages[i].uid,Qt.btoa(messages[i].msg_html),messages[i].parent])}
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,source,status_id, uid,statusnet_html,statusnet_conversation_id) VALUES (?,?,?,?,?,?,?,?,?)', [login.username,2,Qt.btoa(messages[i].msg_html),Date.parse(messages[i].date),"Friendica", messages[i].id, messages[i].uid,Qt.btoa(messages[i].msg_html),messages[i].parent])}
});
}
})
newsfromdb(database,login.username,callback)
}
function getActivitiesUserData(database,username,useridArray){
var helpArray=[];
for (var i=0;i<useridArray.length;i++){
Helperjs.readData(database,"contacts",username,function(userdata){
helpArray.push(userdata[0]);
},"id",useridArray[i]);
}
return helpArray
}
function newsfromdb(database,username,callback,contact,stop_time){
// return news before stop_time (used by More button), in brackets of 20 entries, or by specified contact
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
@ -139,6 +180,7 @@ db.transaction( function(tx) {
stop="<="+rs.rows.item(0).created_at}catch(e){stop="<99999999999999"}}
else{var stop="<"+stop_time}
var contactfilter="";if(contact){contactfilter=" AND uid='"+contact+"'"}
print('select * from news WHERE username="'+username+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
var newsrs=tx.executeSql('select * from news WHERE username="'+username+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
var newsArray=[];
for(var i = 0; i < newsrs.rows.length; i++) {
@ -152,57 +194,45 @@ db.transaction( function(tx) {
},"id",newsArray[i].in_reply_to_user_id);
}
if (newsArray[i].messagetype==0){
//userdata for likes
var likeArray=JSON.parse(newsArray[i].like);
var likeHelper=[];
for (var j=0;j<likeArray.length;j++){
Helperjs.readData(database,"contacts",username,function(userdata){
likeHelper[j]=userdata[0];
},"id",likeArray[j]);
}
newsArray[i].like=likeHelper;
//userdata for dislikes
var dislikeArray=JSON.parse(newsArray[i].dislike);
var dislikeHelper=[];
for (var k=0;k<dislikeArray.length;k++){
Helperjs.readData(database,"contacts",username,function(userdata){
dislikeHelper[j]=userdata[0];
},"id",dislikeArray[k]);
}
newsArray[i].dislike=dislikeHelper;
//userdata for attendyes
var attendyesArray=JSON.parse(newsArray[i].attendyes);
var attendyesHelper=[];
for (var l=0;l<attendyesArray.length;l++){
Helperjs.readData(database,"contacts",username,function(userdata){
attendyesHelper[j]=userdata[0];
},"id",attendyesArray[l]);
}
newsArray[i].attendyes=attendyesHelper;
//userdata for attendno
var attendnoArray=JSON.parse(newsArray[i].attendno);
var attendnoHelper=[];
for (var m=0;m<attendnoArray.length;m++){
Helperjs.readData(database,"contacts",username,function(userdata){
attendnoHelper[j]=userdata[0];
},"id",attendnoArray[m]);
}
newsArray[i].attendno=attendnoHelper;
//userdata for attendmaybe
var attendmaybeArray=JSON.parse(newsArray[i].attendmaybe);
var attendmaybeHelper=[];
for (var n=0;n<attendmaybeArray.length;n++){
Helperjs.readData(database,"contacts",username,function(userdata){
attendmaybeHelper[j]=userdata[0];
},"id",attendmaybeArray[l]);
}
newsArray[i].attendmaybe=attendmaybeHelper;
for(var j=0;j<newsArray[i].friendica_activities.length;j++)
{var friendicaArray=JSON.parse(newsArray[i].friendica_activities);
// print("Array: "+friendicaArray[1]);
newsArray[i].like=getActivitiesUserData(database,username,friendicaArray[0]);
newsArray[i].dislike=getActivitiesUserData(database,username,friendicaArray[1]);
newsArray[i].attendyes=getActivitiesUserData(database,username,friendicaArray[2]);
newsArray[i].attendno=getActivitiesUserData(database,username,friendicaArray[3]);
newsArray[i].attendmaybe=getActivitiesUserData(database,username,friendicaArray[4]);
}
}
}
callback(newsArray)});
}
function fetchUsersForNews(database,username,news){
Helperjs.readData(database,"contacts",username,function(userdata){
news.user=userdata[0];
//print("Fetch user"+JSON.stringify(news.user));
},"id",news.uid);
if(news.in_reply_to_user_id){
Helperjs.readData(database,"contacts",username,function(replytodata){
news.reply_user=replytodata[0];
//print("Fetch reply to"+JSON.stringify(news.reply_user));
},"id",news.in_reply_to_user_id);
}
if (news.messagetype==0){
for(var j=0;j<news.friendica_activities.length;j++)
{var friendicaArray=JSON.parse(news.friendica_activities);
// print("Array: "+friendicaArray[1]);
news.like=getActivitiesUserData(database,username,friendicaArray[0]);
news.dislike=getActivitiesUserData(database,username,friendicaArray[1]);
news.attendyes=getActivitiesUserData(database,username,friendicaArray[2]);
news.attendno=getActivitiesUserData(database,username,friendicaArray[3]);
news.attendmaybe=getActivitiesUserData(database,username,friendicaArray[4]);
}
}
return news
}
function deleteNews(login,database,newsid,rootwindow,callback){
Helperjs.friendicaPostRequest(login,"/api/statuses/destroy?id="+newsid, rootwindow,function (obj){
print("Delete "+obj);
@ -228,73 +258,105 @@ function favorite(login,favorite,newsid,rootwindow){
})}
}
function likerequest(login,database,toggle,verb,newsid,rootwindow){
function likerequest(login,database,verb,newsid,rootwindow){
Helperjs.friendicaPostRequest(login,"/api/friendica/activity/"+verb+"?id="+newsid, rootwindow,function (obj){
print("likereturn "+obj);
if (obj=='"ok"'){
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
db.transaction( function(tx) {var result = tx.executeSql('UPDATE news SET '+verb+'d ='+toggle+' where status_id ='+newsid);
})}})
db.transaction( function(tx) {
var currentActivities_rs=tx.executeSql('select friendica_activities_self from news WHERE username="'+login.username+'" AND status_id='+newsid) ;
var currentActivities=JSON.parse(currentActivities_rs.rows.item(0).friendica_activities_self);
//print("currentActivities "+JSON.stringify(currentActivities));
if ((verb=="like")&&(currentActivities.indexOf(1)==-1)){ currentActivities.push(1);
currentActivities.splice(currentActivities.indexOf(2),1)
}
if ((verb=="dislike")&&(currentActivities.indexOf(2)==-1)){ currentActivities.push(2);
currentActivities.splice(currentActivities.indexOf(1),1)
}
if (verb=="unlike"){ try{currentActivities.splice(currentActivities.indexOf(1),1)}catch(e){}}
if (verb=="undislike"){ try{currentActivities.splice(currentActivities.indexOf(2),1)}catch(e){}}
var result = tx.executeSql('UPDATE news SET friendica_activities_self ="'+JSON.stringify(currentActivities)+'" where username="'+login.username+'" AND status_id ='+newsid);
})}
else{print("likerequest"+obj)}})
}
function like(login,database,toggle,verb,newsid,rootwindow){
if(verb=="like"&& toggle==1){
likerequest(login,database,1,"like",newsid,rootwindow);
likerequest(login,database,0,"undislike",newsid,rootwindow);}
if(verb=="dislike"&& toggle==1){
likerequest(login,database,1,"dislike",newsid,rootwindow);
likerequest(login,database,0,"unlike",newsid,rootwindow);}
if(toggle==0){
likerequest(login,database,0,"un"+verb,newsid,rootwindow);}
if(verb=="like"&& toggle==1){likerequest(login,database,"like",newsid,rootwindow);
}
if(verb=="dislike"&& toggle==1){likerequest(login,database,"dislike",newsid,rootwindow);
}
if(toggle==0){
likerequest(login,database,"un"+verb,newsid,rootwindow);}
}
function attend(login,database,attend,newsid,rootwindow,callback){
Helperjs.friendicaPostRequest(login,"/api/friendica/activity/attend"+attend+"?id="+newsid, rootwindow,function (obj){
var attendReturn=JSON.parse(obj);
// print("attend: "+obj);
//if (attendReturn=="OK")
{
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
db.transaction( function(tx) {var result = tx.executeSql('UPDATE news SET attend="+attend+" where status_id ='+newsid);
callback();
Helperjs.friendicaPostRequest(login,"/api/friendica/activity/attend"+attend+"?id="+newsid, rootwindow,function (obj){
var attendReturn=JSON.parse(obj);
// print("attend: "+obj);
if (attendReturn=="OK")
{var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
db.transaction( function(tx) {
var currentActivities_rs=tx.executeSql('select friendica_activities_self from news WHERE username="'+login.username+'" AND status_id='+newsid) ;
var currentActivities=JSON.parse(currentActivities_rs.rows.item(0));
print("currentActivities "+JSON.stringify(currentActivities));
if ((attend=="attendyes")&&(currentActivities.indexOf(3)==-1)){
currentActivities.push(3);
currentActivities.splice(currentActivities.indexOf(4),1)
currentActivities.splice(currentActivities.indexOf(5),1)
}
if ((attend=="attendno")&&(currentActivities.indexOf(4)==-1)){
currentActivities.push(4);
currentActivities.splice(currentActivities.indexOf(3),1)
currentActivities.splice(currentActivities.indexOf(5),1)
}
if ((attend=="attendmaybe")&&(currentActivities.indexOf(5)==-1)){
currentActivities.push(5);
currentActivities.splice(currentActivities.indexOf(3),1)
currentActivities.splice(currentActivities.indexOf(4),1)
}
var result = tx.executeSql('UPDATE news SET friendica_activities_self ="'+JSON.stringify(currentActivities)+'" where username="'+login.username+'" AND status_id ='+newsid);
callback();
})}})}
function requestConversation(login,database,newsid,rootwindow,callback){
function requestConversation(login,database,newsid,contacts,rootwindow,callback){
Helperjs.friendicaRequest(login,"/api/conversation/show?id="+newsid,rootwindow, function (obj){
print(obj+JSON.stringify(obj));
var news=JSON.parse(obj);
for (var i=0;i<news.length;i++){
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
print('store news data for ' + news[i].id);
db.transaction( function(tx) {
var result = tx.executeSql('SELECT * from news where status_id = "'+news[i].id+'"'); // check for news id
if(result.rows.length === 1) {// use update
print(news[i].id +' exists, update it')
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", truncated="'+news[i].truncated+'", created_at="'+Date.parse(cleanDate(news[i].created_at))+'", in_reply_to_status_id="'+news[i].in_reply_to_status_id+'", source="'+news[i].source+'", status_id="'+news[i].id+'", in_reply_to_user_id="'+news[i].in_reply_to_user_id+'", geo="'+news[i].geo+'", favorited="'+news[i].favorited+'", uid="'+news[i].user.id+'", statusnet_html="'+Qt.btoa(news[i].status_html)+'", statusnet_conversation_id="'+news[i].statusnet_conversation_id+'", attachments="'+news[i].attachments+'" where status_id="'+news[i].status_id+'"');
} else {// use insert
result = tx.executeSql('INSERT INTO news VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,0,Qt.btoa(news[i].text),news[i].truncated,Date.parse(cleanDate(news[i].created_at)), news[i].in_reply_to_status_id, news[i].source, news[i].id,news[i].in_reply_to_user_id,news[i].geo,news[i].favorited, news[i].user.id,Qt.btoa(news[i].statusnet_html),news[i].statusnet_conversation_id, news[i].attachments,0,0,0]);
}});
if(news[i].user.following!=true){
updateContactInDB(login,database,rootwindow,news[i].user)}
}
callback();
}
);}
var newContacts=findNewContacts(news,contacts);
// storeNews(login,database,news,rootwindow,callback)
callback(news,newContacts)
})}
function conversationfromdb(database,user,conversationId,callback){
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
db.transaction( function(tx) {
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
db.transaction( function(tx) {
print('select * from news WHERE statusnet_conversation_id='+conversationId+' ORDER BY status_id DESC');
var newsrs=tx.executeSql('select * from news WHERE statusnet_conversation_id='+conversationId+' ORDER BY status_id DESC');
var newsArray=[];
for(var i = 0; i < newsrs.rows.length; i++) {
newsArray.push(newsrs.rows.item(i))
Helperjs.readData(database,"contacts",function(userdata){
newsArray[i].user=userdata[0];
},"id",newsArray[i].uid);
}
var newsArray=[];
for(var i = 0; i < newsrs.rows.length; i++) {
newsArray.push(newsrs.rows.item(i));
newsArray[i]=fetchUsersForNews(database,user,newsArray[i]);
callback(newsArray);
});}
}})}
function requestFavorites(login,database,rootwindow,callback){
Helperjs.friendicaRequest(login,"/api/favorites",rootwindow, function (obj){
//print(obj+JSON.stringify(obj));
var news=JSON.parse(obj);
// storeNews(login,database,news,rootwindow,callback)
callback(news)
})}
function favoritesfromdb(database,user,callback){
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
db.transaction( function(tx) {
print('select * from news WHERE username="'+user+'" AND favorited=1 ORDER BY status_id DESC');
var newsrs=tx.executeSql('select * from news WHERE username="'+user+'" AND favorited=1 ORDER BY status_id DESC');
var newsArray=[];
for(var i = 0; i < newsrs.rows.length; i++) {
newsArray.push(newsrs.rows.item(i));
newsArray[i]=fetchUsersForNews(database,user,newsArray[i]);
callback(newsArray);
}})}
function inArray(list, prop, val) {
if (list.length > 0 ) {