v.0.5
This commit is contained in:
parent
63dfb9b197
commit
d48847d183
135 changed files with 8879 additions and 3693 deletions
|
@ -125,10 +125,11 @@ function friendicaRemoteAuthRequest(login,url,c_url,rootwindow,callback) {
|
|||
|
||||
function readData(database,table,username,callback,filter,filtervalue, sort) { // reads and applies data from DB
|
||||
if (filter){
|
||||
var where = " AND "+ filter +" = '" + filtervalue+"'";
|
||||
if (username){var where = " AND "+ filter +" = '" + filtervalue+"'";} else{
|
||||
var where = " WHERE "+ filter +" = '" + filtervalue+"'";}
|
||||
} else { var where="";}
|
||||
if (username){
|
||||
var user = ' where username= "'+ username +'"';
|
||||
var user = ' where username= "'+ username +'"';
|
||||
} else { var user='';}
|
||||
|
||||
if (sort){
|
||||
|
@ -138,7 +139,7 @@ function readData(database,table,username,callback,filter,filtervalue, sort) { /
|
|||
if(!db) { return; }
|
||||
db.transaction( function(tx) {
|
||||
//print('select * from '+table+user+where+sortparam);
|
||||
var rsArray=[];
|
||||
var rsArray=[];
|
||||
var rs = tx.executeSql('select * from '+table+user+where+sortparam);
|
||||
for(var i = 0; i < rs.rows.length; i++) {
|
||||
rsArray.push(rs.rows.item(i))
|
||||
|
@ -165,7 +166,7 @@ var where = " AND "+ filter +" = '" + filtervalue+"'";
|
|||
});
|
||||
}
|
||||
|
||||
function showMessage(header,message,rootwindow){print(message);
|
||||
function showMessage(header,message,rootwindow){//print(message);
|
||||
var cleanmessage=message.replace(/"/g,"-");
|
||||
if(cleanmessage.length>200){cleanmessage=cleanmessage.slice(0,200)+'...'}
|
||||
var messageString='import QtQuick 2.0; import QtQuick.Dialogs 1.2; MessageDialog{ visible: true; title:"'+header+'";standardButtons: StandardButton.Ok; text:" '+cleanmessage+'"}';
|
||||
|
|
|
@ -36,7 +36,7 @@ function showFriends(db) {
|
|||
}
|
||||
function displayFriends(obj){
|
||||
for (var i=0; i<obj.length; i++){
|
||||
print(obj[i]);
|
||||
//print(obj[i]);
|
||||
if (obj[i]) {friendsModel.append({"friendName": obj[i]});
|
||||
};
|
||||
|
||||
|
|
|
@ -65,16 +65,21 @@ function requestGroups(login,database,rootwindow,callback){
|
|||
});
|
||||
})}
|
||||
|
||||
function listFriends(login,database,callback){
|
||||
function listFriends(login,database,callback,filter){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT * from contacts WHERE username="'+login.username+'" AND isFriend>0'); // check for friends
|
||||
var contactlist=[];
|
||||
for (var i=0;i<result.rows.length;i++){
|
||||
contactlist.push(result.rows.item(i))
|
||||
}
|
||||
callback(contactlist)
|
||||
});
|
||||
var filtertext='';
|
||||
try {filtertext=' AND screen_name like "' + filter+'%"'}catch(e){}
|
||||
db.transaction( function(tx) {
|
||||
//var result = tx.executeSql('SELECT * from contacts WHERE username="'+login.username+'" AND isFriend>0'+filtertext);
|
||||
//print('SELECT * from contacts WHERE username="'+login.username+'"'+filtertext);
|
||||
var result = tx.executeSql('SELECT * from contacts WHERE username="'+login.username+'" AND isFriend>0'+filtertext);
|
||||
// check for friends
|
||||
var contactlist=[];
|
||||
for (var i=0;i<result.rows.length;i++){
|
||||
contactlist.push(result.rows.item(i))
|
||||
}
|
||||
callback(contactlist)
|
||||
});
|
||||
}
|
||||
|
||||
function deleteGroup(login,database,rootwindow,group, callback){
|
||||
|
@ -88,14 +93,14 @@ function deleteGroup(login,database,rootwindow,group, callback){
|
|||
});
|
||||
}})}
|
||||
|
||||
function getLastNews(login,database){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
var lastnewsid=0;
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY status_id DESC LIMIT 1');
|
||||
try{lastnewsid=result.rows.item(0).status_id;}catch(e){};
|
||||
return lastnewsid
|
||||
})
|
||||
function getLastNews(login,database,callback){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
var lastnewsid=0;
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY status_id DESC LIMIT 1');
|
||||
try{lastnewsid=result.rows.item(0).status_id;}catch(e){print(e)};
|
||||
callback(lastnewsid)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
@ -163,11 +168,11 @@ function findNewContacts(news,contacts){
|
|||
}
|
||||
}
|
||||
|
||||
if(news[i].hasOwnProperty('friendica_owner')){
|
||||
var owner_url=news[i].friendica_owner.url;
|
||||
if(news[i].hasOwnProperty('friendica_author')){
|
||||
var owner_url=news[i].friendica_author.url;
|
||||
if(contacts.indexOf(owner_url)==-1 && !(inArray(newContacts,"url",owner_url))){
|
||||
news[i].friendica_owner.isFriend=0;
|
||||
newContacts.push(news[i].friendica_owner);
|
||||
news[i].friendica_author.isFriend=0;
|
||||
newContacts.push(news[i].friendica_author);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -178,7 +183,7 @@ function storeNews(login,database,news,rootwindow){
|
|||
// save news after contacts download, call next function
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
for (var i=0;i<news.length;i++){
|
||||
//print('store news data for ' + news[i].id+JSON.stringify(news[i].friendica_activities));
|
||||
//print('store news data for ' + news[i].id+JSON.stringify(news[i].friendica_author));
|
||||
//var ausdruck=news[i];
|
||||
var likearray=[];var dislikearray=[];var attendyesarray=[];var attendnoarray=[];var attendmaybearray=[];
|
||||
if(news[i].hasOwnProperty('friendica_activities')){
|
||||
|
@ -191,12 +196,12 @@ function storeNews(login,database,news,rootwindow){
|
|||
var friendica_activities=[likearray,dislikearray,attendyesarray,attendnoarray,attendmaybearray]
|
||||
var attachments="";if (news[i].attachments){attachments=Qt.btoa(JSON.stringify(news[i].attachments))}
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT * from news where username="'+login.username+'" AND status_id = "'+news[i].id+'" AND messagetype=0'); // check for news id
|
||||
var result = tx.executeSql('SELECT * from news where username="'+login.username+'" AND status_id = "'+news[i].id+'" AND messagetype='+news[i].messagetype); // check for news id
|
||||
if(result.rows.length === 1) {// use update
|
||||
//print(news[i].id +' news exists, update it'+'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="'+Qt.btoa(JSON.stringify(friendica_activities))+'",attachments="'+attachments+'",friendica_owner="'+news[i].friendica_owner.url+'" where username="'+login.username+'" AND status_id="'+news[i].status_id+'" AND messagetype=0')
|
||||
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", created_at="'+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="'+Qt.btoa(JSON.stringify(friendica_activities))+'",attachments="'+attachments+'",friendica_owner="'+news[i].friendica_owner.url+'" where username="'+login.username+'" AND status_id="'+news[i].status_id+'" AND messagetype=0');
|
||||
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype='+news[i].messagetype+', text="'+Qt.btoa(news[i].text)+'", created_at="'+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="'+Qt.btoa(JSON.stringify(friendica_activities))+'",attachments="'+attachments+'",friendica_owner="'+news[i].friendica_author.url+'" where username="'+login.username+'" AND status_id="'+news[i].status_id+'" AND messagetype=0');
|
||||
} 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,friendica_activities,friendica_activities_self,attachments,friendica_owner) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,0,Qt.btoa(news[i].text),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, Qt.btoa(JSON.stringify(friendica_activities)),"[]",attachments,news[i].friendica_owner.url])}})
|
||||
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,attachments,friendica_owner) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,news[i].messagetype,Qt.btoa(news[i].text),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, Qt.btoa(JSON.stringify(friendica_activities)),"[]",attachments,news[i].friendica_author.url])}})
|
||||
}
|
||||
// getDirectMessage(login,database,rootwindow,callback)
|
||||
}
|
||||
|
@ -260,35 +265,41 @@ function getActivitiesUserData(allcontacts,userUrlArray){//print(JSON.stringify(
|
|||
return helpArray
|
||||
}
|
||||
|
||||
function newsfromdb(database,user,callback,contact,stop_time){
|
||||
function newsfromdb(database,login,messagetype,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]);
|
||||
db.transaction( function(tx) {
|
||||
if (!stop_time){var stop="";
|
||||
try{var rs = tx.executeSql('select created_at from news WHERE username="'+user+'" ORDER BY created_at DESC LIMIT 1');
|
||||
stop="<="+rs.rows.item(0).created_at}catch(e){stop="<99999999999999"}}
|
||||
else{var stop="<"+stop_time}
|
||||
var contactfilter="";if(contact){contactfilter=" AND (uid='"+contact+"' OR friendica_owner='"+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="'+user+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
|
||||
var newsArray=[];
|
||||
var allcontacts=getAllContacts(database,user);
|
||||
for(var i = 0; i < newsrs.rows.length; i++) {
|
||||
newsArray.push(newsrs.rows.item(i));
|
||||
newsArray[i].statusnet_html=Qt.atob(newsArray[i].statusnet_html);
|
||||
newsArray[i].text=Qt.atob(newsArray[i].text);
|
||||
newsArray[i].id=newsArray[i].status_id;
|
||||
newsArray[i]=fetchUsersForNews(database,user,newsArray[i],allcontacts);
|
||||
if (newsArray[i].attachments!==null){newsArray[i].attachments=JSON.parse(Qt.atob(newsArray[i].attachments))};
|
||||
}
|
||||
callback(newsArray)});
|
||||
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY status_id DESC LIMIT 1');
|
||||
try{var lastid=result.rows.item(0).status_id;}catch(e){var lastid=0};
|
||||
|
||||
if (!stop_time){var stop="";
|
||||
try{var rs = tx.executeSql('select created_at from news WHERE username="'+login.username+'" AND messagetype="'+messagetype+'" ORDER BY created_at DESC LIMIT 1');
|
||||
stop="<="+rs.rows.item(0).created_at}catch(e){stop="<99999999999999"}}
|
||||
else{var stop="<"+stop_time}
|
||||
var contactfilter="";if(contact){contactfilter=" AND (uid='"+contact+"' OR friendica_owner='"+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="'+login.username+'" AND messagetype="'+messagetype+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
|
||||
var newsArray=[];
|
||||
var allcontacts=getAllContacts(database,login.username);
|
||||
|
||||
for(var i = 0; i < newsrs.rows.length; i++) {
|
||||
newsArray.push(newsrs.rows.item(i));
|
||||
newsArray[i].statusnet_html=Qt.atob(newsArray[i].statusnet_html);
|
||||
newsArray[i].text=Qt.atob(newsArray[i].text);
|
||||
newsArray[i].id=newsArray[i].status_id;
|
||||
newsArray[i].friendica_author=newsArray[i].friendica_owner
|
||||
newsArray[i]=fetchUsersForNews(database,login.username,newsArray[i],allcontacts);
|
||||
if (newsArray[i].attachments!="" && newsArray[i].attachments!==null){newsArray[i].attachments=JSON.parse(Qt.atob(newsArray[i].attachments))};
|
||||
}
|
||||
callback(newsArray,lastid)});
|
||||
}
|
||||
|
||||
function fetchUsersForNews(database,username,news,allcontacts){//print(JSON.stringify(news))
|
||||
|
||||
function fetchUsersForNews(database,username,news,allcontacts){//print("fetchusers "+JSON.stringify(news))
|
||||
news.user=objFromArray(allcontacts,"id",news.uid);
|
||||
if(news.in_reply_to_user_id){news.reply_user=objFromArray(allcontacts,"id",news.in_reply_to_user_id)}
|
||||
//news.friendica_owner_object=objFromArray(allcontacts,"url",news.friendica_owner);
|
||||
news.friendica_owner=objFromArray(allcontacts,"url",news.friendica_owner);
|
||||
news.friendica_author=objFromArray(allcontacts,"url",news.friendica_author);
|
||||
if (news.messagetype==0){
|
||||
var friendicaArray=JSON.parse(Qt.atob(news.friendica_activities));
|
||||
delete news.friendica_activities;
|
||||
|
@ -413,7 +424,7 @@ function conversationfromdb(database,user,conversationId,callback){
|
|||
newsArray[i].text=Qt.atob(newsArray[i].text);
|
||||
newsArray[i].id=newsArray[i].status_id;
|
||||
newsArray[i]=fetchUsersForNews(database,user,newsArray[i],allcontacts);
|
||||
if (newsArray[i].attachments!==null){newsArray[i].attachments=JSON.parse(Qt.atob(newsArray[i].attachments))};
|
||||
if (helpernews.attachments!="" && newsArray[i].attachments!==null){newsArray[i].attachments=JSON.parse(Qt.atob(newsArray[i].attachments))};
|
||||
}
|
||||
callback(newsArray)})
|
||||
}
|
||||
|
@ -443,32 +454,36 @@ function requestFavorites(login,database,contacts,rootwindow,callback){
|
|||
// callback(newsArray);
|
||||
// }})}
|
||||
|
||||
function chatsfromdb(database,user,callback,stop_time){
|
||||
function chatsfromdb(database,login,messagetype,callback,stop_time){
|
||||
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
db.transaction( function(tx) {
|
||||
if (!stop_time){var stop="";
|
||||
try{var rs = tx.executeSql('select created_at from news WHERE username="'+username+'" ORDER BY created_at DESC LIMIT 1');
|
||||
try{var rs = tx.executeSql('select created_at from news WHERE username="'+login.username+'" AND messagetype="'+messagetype+'" ORDER BY created_at DESC LIMIT 1');
|
||||
stop="<="+rs.rows.item(0).created_at}catch(e){stop="<99999999999999"}}
|
||||
else{var stop="<"+stop_time}
|
||||
var conversationsrs=tx.executeSql('select DISTINCT statusnet_conversation_id from news WHERE username="'+user+'" AND created_at'+stop+' ORDER BY created_at DESC LIMIT 20'); //+' ORDER BY created_at DESC LIMIT 20');
|
||||
var conversationsrs=tx.executeSql('select DISTINCT statusnet_conversation_id from news WHERE username="'+login.username+'" AND created_at'+stop+' AND messagetype="'+messagetype+'" ORDER BY created_at DESC LIMIT 20'); //+' ORDER BY created_at DESC LIMIT 20');
|
||||
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY status_id DESC LIMIT 1');
|
||||
try{var lastid=result.rows.item(0).status_id;}catch(e){var lastid=0};
|
||||
var conversations=[];
|
||||
for(var i = 0; i < conversationsrs.rows.length; i++) {
|
||||
conversations.push(conversationsrs.rows.item(i).statusnet_conversation_id);
|
||||
}
|
||||
var newsArray=[];
|
||||
var allcontacts=getAllContacts(database,user);
|
||||
var allcontacts=getAllContacts(database,login.username);
|
||||
|
||||
for(var j = 0; j< conversations.length; j++) {
|
||||
var newsrs=tx.executeSql('select * from news WHERE username="'+user+'" AND statusnet_conversation_id="'+conversations[j] +'" ORDER BY created_at ASC');
|
||||
var newsrs=tx.executeSql('select * from news WHERE username="'+login.username+'" AND statusnet_conversation_id="'+conversations[j] +'" AND messagetype="'+messagetype+'" ORDER BY created_at ASC');
|
||||
var helpernews=newsrs.rows.item(0);
|
||||
helpernews.newscount=newsrs.rows.length;
|
||||
helpernews=fetchUsersForNews(database,user,helpernews,allcontacts);
|
||||
helpernews=fetchUsersForNews(database,login.username,helpernews,allcontacts);
|
||||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||
helpernews.text=Qt.atob(helpernews.text);
|
||||
helpernews.id=helpernews.status_id;
|
||||
if (helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
newsArray.push(helpernews);
|
||||
}
|
||||
callback(newsArray);
|
||||
callback(newsArray,lastid);
|
||||
})}
|
||||
|
||||
|
||||
|
@ -495,7 +510,7 @@ function allchatsfromdb(database,user,callback){
|
|||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||
helpernews.text=Qt.atob(helpernews.text);
|
||||
helpernews.id=helpernews.status_id;
|
||||
if (helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
newsArray.push(helpernews);
|
||||
countArray.push(newsrs.rows.length)
|
||||
}
|
||||
|
@ -520,7 +535,7 @@ function oldchatfromdb(database,user,conversationId,lastpost,allcontacts,callbac
|
|||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||
helpernews.text=Qt.atob(helpernews.text);
|
||||
helpernews.id=helpernews.status_id;
|
||||
if (helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
callback(helpernews,newscount);}
|
||||
// var conversationobject={news:helpernews,newscount:newscount};
|
||||
// return conversationobject;
|
||||
|
|
|
@ -53,9 +53,12 @@ else{
|
|||
// newsitemobject.user.profile_image_url="";
|
||||
// newsitemobject.user.name="";
|
||||
// }
|
||||
var forumname="";try{if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_owner')&&((newsitemobject.friendica_owner.url)!=(newsitemobject.user.url))){
|
||||
//print(newsitemobject.friendica_owner+" Friendica Owner "+JSON.stringify(newsitemobject));
|
||||
forumname=" via "+newsitemobject.friendica_owner.name
|
||||
var forumname="";
|
||||
try{if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_author')&&
|
||||
((newsitemobject.friendica_author.url)!=(newsitemobject.user.url))&&((newsitemobject.friendica_author.url)!=null)){
|
||||
print(" Friendica Author "+JSON.stringify(newsitemobject.friendica_author));
|
||||
forumname=" via "+newsitemobject.user.name;
|
||||
newsitemobject.user=newsitemobject.friendica_author;
|
||||
}}catch(e){print("forum name "+e)}
|
||||
var likeText="";var dislikeText="";var attendyesText="";var attendnoText="";var attendmaybeText=""; var self={};
|
||||
try{if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_activities')){
|
||||
|
@ -166,7 +169,6 @@ else{
|
|||
// }
|
||||
|
||||
newsitemobject.attachmentList=attachmentList;
|
||||
|
||||
var seconds=(msg.currentTime-newsitemobject.created_at)/1000;
|
||||
var timestring="";
|
||||
if (seconds<60) {timestring=seconds+" "+qsTr("seconds") +" "+qsTr("ago");}
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
function initDatabase(database) { // initialize the database object
|
||||
var db =Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
print('initDatabase()'+database[0]+database[1]+database[2]+database[3])
|
||||
//print('initDatabase()'+database[0]+database[1]+database[2]+database[3])
|
||||
db.transaction( function(tx) {
|
||||
//var version=tx.executeSql('PRAGMA user_version');print(JSON.stringify(version.rows.item(0)))
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS imageData(username TEXT,id INT, created TEXT,edited TEXT, title TEXT, desc TEXT, album TEXT,filename TEXT, type TEXT, height INT, width INT, profile INT, link TEXT,location TEXT)');
|
||||
|
@ -194,13 +194,11 @@ function storeConfig(database,obj) { // stores config to DB
|
|||
//print(JSON.stringify(obj));
|
||||
var result = tx.executeSql('SELECT * from config WHERE username="'+obj.username+'"');
|
||||
if(result.rows.length === 1) {// use update
|
||||
var result2 = tx.executeSql('UPDATE config SET server="'+obj.server+'",password="'+obj.password+'", imagestore="'+obj.imagestore+'", maxnews='+obj.maxnews+', timerInterval='+obj.interval+', newsViewType="'+obj.newsViewType+'", isActive=0 WHERE username="'+obj.username +'"');
|
||||
var result2 = tx.executeSql('UPDATE config SET server="'+obj.server+'",password="'+obj.password+'", imagestore="'+obj.imagestore+'", maxnews=0, timerInterval=0, newsViewType="'+obj.newsViewType+'", isActive=0 WHERE username="'+obj.username +'"');
|
||||
var result3 = tx.executeSql('UPDATE config SET isActive=1 WHERE username !="'+obj.username +'"');
|
||||
var result4 = tx.executeSql('UPDATE config SET maxnews='+obj.maxnews);
|
||||
} else {// use insert print('... does not exists, create it')
|
||||
var result2 = tx.executeSql('INSERT INTO config VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)', [obj.server, obj.username, obj.password, obj.imagestore, obj.maxnews, obj.interval,obj.newsViewType,0,"[[],[],[],[]]",0,"","",""]);
|
||||
var result2 = tx.executeSql('INSERT INTO config VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)', [obj.server, obj.username, obj.password, obj.imagestore, 0, 0,obj.newsViewType,0,"[[],[],[],[]]",0,"","",""]);
|
||||
var result3 = tx.executeSql('UPDATE config SET isActive=1 WHERE username !="'+obj.username +'"');
|
||||
var result4 = tx.executeSql('UPDATE config SET maxnews='+obj.maxnews);
|
||||
}
|
||||
})}
|
||||
|
||||
|
@ -283,7 +281,7 @@ function readConfig(database,callback,filter,filtervalue) { // reads config
|
|||
for(var i = 0; i < rs.rows.length; i++) {
|
||||
rsArray.push(rs.rows.item(i))
|
||||
}
|
||||
var rsObject={server:rsArray[0].server,username:rsArray[0].username, password:rsArray[0].password,imagestore:rsArray[0].imagestore,maxnews:rsArray[0].maxnews,isActive:rsArray[0].isActive,timerInterval:rsArray[0].timerInterval, newsViewType:rsArray[0].newsViewType,permissions:JSON.parse(rsArray[0].permissions),maxContactAge:rsArray[0].maxContactAge,APIVersion:rsArray[0].APIVersion,addons:rsArray[0].addons};
|
||||
var rsObject={server:rsArray[0].server,username:rsArray[0].username, password:rsArray[0].password,imagestore:rsArray[0].imagestore,isActive:rsArray[0].isActive, newsViewType:rsArray[0].newsViewType,permissions:JSON.parse(rsArray[0].permissions),maxContactAge:rsArray[0].maxContactAge,APIVersion:rsArray[0].APIVersion,addons:rsArray[0].addons};
|
||||
} else {var rsObject=""}
|
||||
callback(rsObject)}}
|
||||
)
|
||||
|
@ -318,6 +316,7 @@ function updateglobaloptions(database,key,value){
|
|||
result = tx.executeSql('INSERT INTO globaloptions (k,v) VALUES (?,?)', [key,value])
|
||||
}
|
||||
})
|
||||
root.globaloptions[key]=value;
|
||||
}
|
||||
|
||||
function deleteConfig(database,userobj,callback) { // delete user data from DB
|
||||
|
@ -338,8 +337,9 @@ function deleteConfig(database,userobj,callback) { // delete user data from DB
|
|||
function cleanNews(database,callback){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
db.transaction( function(tx) {
|
||||
var maxnewsrs = tx.executeSql("SELECT DISTINCT maxnews FROM config");
|
||||
var maxnews=maxnewsrs.rows.item(0).maxnews;
|
||||
//var maxnewsrs = tx.executeSql("SELECT DISTINCT maxnews FROM config");
|
||||
var maxnewsrs = tx.executeSql("SELECT v FROM globaloptions WHERE k='max_news'");
|
||||
var maxnews=1000; if(maxnewsrs.rows.length>0){ maxnews=maxnewsrs.rows.item(0).v};
|
||||
var newscountrs = tx.executeSql('SELECT COUNT(*) from news');
|
||||
var newscount = newscountrs.rows.item(0)["COUNT(*)"];//print("newscount "+newscount)
|
||||
if (newscount>maxnews){
|
||||
|
@ -384,6 +384,7 @@ function updateContactInDB(login,database,isFriend,contact){// for newstab and f
|
|||
}
|
||||
|
||||
function processNews(api,data){
|
||||
//print(api + data);
|
||||
try{var newslist=JSON.parse(data)} catch(e){newsBusy.running=false;};
|
||||
if (data==""){}
|
||||
else if (typeof(newslist)=='undefined'){
|
||||
|
@ -393,6 +394,7 @@ function processNews(api,data){
|
|||
Helperjs.showMessage(qsTr("JSON status Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root)
|
||||
}
|
||||
else if (!(Array.isArray(newslist))){
|
||||
//print("processNews not array"+newslist+JSON.stringify(newslist));
|
||||
replytimer.restart()
|
||||
}
|
||||
else {
|
||||
|
@ -407,6 +409,8 @@ function processNews(api,data){
|
|||
newslist[n].uid=newslist[n].sender.id;
|
||||
newslist[n].statusnet_conversation_id=newslist[n].friendica_parent_uri;
|
||||
newslist[n].user=cleanUser(newslist[n].sender);
|
||||
newslist[n].friendica_owner=newslist[n].user;
|
||||
newslist[n].friendica_author=newslist[n].user;
|
||||
newslist[n].statusnet_html=newslist[n].text;
|
||||
}}
|
||||
else if (api=="/api/friendica/notifications"){
|
||||
|
@ -418,6 +422,8 @@ function processNews(api,data){
|
|||
newslist[n].user={"profile_image_url": newslist[n].photo,"name": newslist[n].name," url":newslist[n].url, "created_at":newslist[n].date};
|
||||
newslist[n].user=cleanUser(newslist[n].user);
|
||||
}
|
||||
newslist[n].friendica_author=newslist[n].user;
|
||||
newslist[n].friendica_owner=newslist[n].user;
|
||||
newslist[n].statusnet_html=newslist[n].msg_html;
|
||||
newslist[n].text=newslist[n].msg;
|
||||
}
|
||||
|
@ -427,8 +433,9 @@ function processNews(api,data){
|
|||
var commentCount=[];
|
||||
for (var n in newslist){
|
||||
newslist[n].created_at=Date.parse(Newsjs.cleanDate(newslist[n].created_at));
|
||||
newslist[n].messagetype=0;
|
||||
newslist[n].user=cleanUser(newslist[n].user)
|
||||
if (api=="/api/statuses/replies"){newslist[n].messagetype=3}else{newslist[n].messagetype=0;}
|
||||
newslist[n].friendica_author=cleanUser(newslist[n].friendica_author);
|
||||
newslist[n].user=cleanUser(newslist[n].user);
|
||||
if(newslist[n].in_reply_to_user_id){newslist[n].reply_user=Newsjs.objFromArray(allcontacts,"id",newslist[n].in_reply_to_user_id)}
|
||||
//print (JSON.stringify(newslist[n].user))
|
||||
if(newslist[n].hasOwnProperty('friendica_activities')){
|
||||
|
@ -448,8 +455,8 @@ function processNews(api,data){
|
|||
newslist[n].friendica_activities.attendmaybe[r]=cleanUser(newslist[n].friendica_activities.attendmaybe[r]);
|
||||
}
|
||||
}
|
||||
if(!(newslist[n].hasOwnProperty('friendica_owner'))){
|
||||
newslist[n].friendica_owner=newslist[n].user
|
||||
if(!(newslist[n].hasOwnProperty('friendica_author'))){
|
||||
newslist[n].friendica_author=newslist[n].user
|
||||
}
|
||||
var conversationindex=conversationIds.indexOf(newslist[n].statusnet_conversation_id);
|
||||
|
||||
|
@ -488,11 +495,13 @@ function processNews(api,data){
|
|||
else if (api=="/api/statuses/user_timeline"){
|
||||
newstab.contactposts=newslist
|
||||
}
|
||||
else if (newstab.newstabstatus==="Conversations"){
|
||||
showNews(chatlist);root.news=newslist}
|
||||
else {showNews(newslist);root.news=newslist};
|
||||
else if ((api!="/api/direct_messages/all")&&(api!="/api/friendica/notifications")&&(newstab.newstabstatus==="Conversations")){
|
||||
showNews(chatlist);root.news=newslist
|
||||
}
|
||||
else {
|
||||
showNews(newslist);root.news=newslist};
|
||||
|
||||
var newstabarray=["Conversations","Favorites","Timeline","DirectMessage"];
|
||||
var newstabarray=["Conversations","Favorites","Timeline","DirectMessage","Replies"];
|
||||
if (newstabarray.indexOf(newstab.newstabstatus)>-1){contacttimer.start()}
|
||||
}
|
||||
|
||||
|
@ -509,26 +518,28 @@ function cleanUser(user){
|
|||
}
|
||||
|
||||
function updateView(viewtype){
|
||||
newsBusy.running=true;
|
||||
//messageSend.state="";
|
||||
//newsBusy.running=true;
|
||||
//downloadNotice.text="xhr start "+Date.now()
|
||||
switch(viewtype){
|
||||
case "Conversations":
|
||||
var lastnews=Newsjs.getLastNews(login,db);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/statuses/friends_timeline");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("since_id",lastnews);
|
||||
xhr.setParam("count",50)
|
||||
Newsjs.getLastNews(login,db,function(lastnews){
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/statuses/friends_timeline");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("since_id",lastnews);
|
||||
xhr.setParam("count",50)});
|
||||
break;
|
||||
case "Timeline":
|
||||
var lastnews=Newsjs.getLastNews(login,db);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/statuses/friends_timeline");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("since_id",lastnews);
|
||||
xhr.setParam("count",50)
|
||||
var lastnews=Newsjs.getLastNews(login,db,function(lastnews){
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/statuses/friends_timeline");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("since_id",lastnews);
|
||||
xhr.setParam("count",50)
|
||||
});
|
||||
break;
|
||||
case "Search":
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
|
@ -566,14 +577,15 @@ function updateView(viewtype){
|
|||
xhr.clearParams();
|
||||
break;
|
||||
default:
|
||||
var lastnews=Newsjs.getLastNews(login,db);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/statuses/friends_timeline");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("since_id",lastnews);
|
||||
xhr.setParam("count",50)
|
||||
newstab.newstabstatus="Conversations";
|
||||
Newsjs.getLastNews(login,db,function(lastnews){
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/statuses/friends_timeline");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("since_id",lastnews);
|
||||
xhr.setParam("count",50)
|
||||
newstab.newstabstatus="Conversations";
|
||||
});
|
||||
}
|
||||
|
||||
xhr.get();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue