// This file is part of Friendiqa // https://git.friendi.ca/lubuwest/Friendiqa // Copyright (C) 2017 Marco R. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // In addition, as a special exception, the copyright holders give // permission to link the code of portions of this program with the // OpenSSL library under certain conditions as described in each // individual source file, and distribute linked combinations including // the two. // // You must obey the GNU General Public License in all respects for all // of the code used other than OpenSSL. If you modify file(s) with this // exception, you may extend this exception to your version of the // file(s), but you are not obligated to do so. If you do not wish to do // so, delete this exception statement from your version. If you delete // this exception statement from all source files in the program, then // also delete it here. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . function findend (text, startpos) { var indexOf = text.substring(startpos || 0).search(/\s/); return (indexOf >= 0) ? (indexOf + (startpos || 0)) : text.length; } WorkerScript.onMessage = function(msg) { if(msg.deleteId!==undefined) {msg.model.remove(msg.deleteId); msg.model.sync() } else{ if(msg.method=="refresh"){msg.model.clear()}; msg.model.sync() for (var j=0;j0){ if (newsitemobject.friendica_activities.like.length==1){likeText= newsitemobject.friendica_activities.like[0].name+" "+ qsTr("likes this.")} else {likeText= newsitemobject.friendica_activities.like.length+" "+ qsTr("like this.")} } if (newsitemobject.friendica_activities.dislike.length>0){ if (newsitemobject.friendica_activities.dislike.length==1){dislikeText= newsitemobject.friendica_activities.dislike[0].name+" "+ qsTr("doesn't like this.")} else {dislikeText= newsitemobject.friendica_activities.dislike.length+" "+ qsTr("don't like this.")} } if (newsitemobject.friendica_activities.attendyes.length>0){ if (newsitemobject.friendica_activities.attendyes.length==1){attendyesText=newsitemobject.friendica_activities.attendyes[0].name+" "+ qsTr("will attend.")} else {attendyesText= newsitemobject.friendica_activities.attendyes.length+" "+ qsTr("persons will attend.")} } if (newsitemobject.friendica_activities.attendno.length>0){ if (newsitemobject.friendica_activities.attendno.length==1){attendnoText= newsitemobject.friendica_activities.attendno[0].name+" "+ qsTr("will not attend.")} else {attendnoText= newsitemobject.friendica_activities.attendno.length+" "+ qsTr("persons will not attend.")} } if (newsitemobject.friendica_activities.attendmaybe.length>0){ if (newsitemobject.friendica_activities.attendmaybe.length==1){attendmaybeText= newsitemobject.friendica_activities.attendmaybe[0].name+" "+ qsTr("may attend.")} else {attendmaybeText= newsitemobject.friendica_activities.attendmaybe.length+" "+ qsTr("persons may attend.")} } //var friendica_activities_self=JSON.parse(newsitemobject.friendica_activities_self); if (newsitemobject.hasOwnProperty("friendica_activities_self")){ if (newsitemobject.friendica_activities_self.indexOf(3)!=-1){self.attending=qsTr("yes")} if (newsitemobject.friendica_activities_self.indexOf(4)!=-1){self.attending=qsTr("no")} if (newsitemobject.friendica_activities_self.indexOf(5)!=-1){self.attending=qsTr("maybe")} if (newsitemobject.friendica_activities_self.indexOf(1)!=-1){self.liked=1} if (newsitemobject.friendica_activities_self.indexOf(2)!=-1){self.disliked=1} }}} catch(e){print("Activities "+e+ " "+JSON.stringify(newsitemobject.friendica_activities))} var friendica_activities={likeText:likeText,dislikeText:dislikeText,attendyesText:attendyesText,attendnoText:attendnoText,attendmaybeText:attendmaybeText,self:self} var attachmentList=[]; var videoformats=["mp4", "avi", "webm","ogg","mp3"] try{if(newsitemobject.attachments){ var attachArray=newsitemobject.attachments; for (var image in attachArray){ var attachhelper={mimetype:attachArray[image].mimetype} var attachhelperstring=Qt.btoa(attachArray[image].url) var helperstringposition=newsitemobject.statusnet_html.indexOf(attachhelperstring); if (helperstringposition>-1){attachhelper.url=newsitemobject.statusnet_html.substring(newsitemobject.statusnet_html.lastIndexOf("http",helperstringposition),helperstringposition+attachhelperstring.length); if (attachArray[image].mimetype=="image/jpeg"){attachhelper.url=attachhelper.url+".jpg"} else if (attachArray[image].mimetype=="image/gif"){attachhelper.url=attachhelper.url+".gif"} else if (attachArray[image].mimetype=="image/png"){attachhelper.url=attachhelper.url+".png"} } else {attachhelper.url=attachArray[image].url} attachmentList.push(attachhelper) //print("Attachhelper "+attachhelper.url) newsitemobject.statusnet_html=newsitemobject.statusnet_html.replace(attachhelper.url,"") newsitemobject.statusnet_html=newsitemobject.statusnet_html.replace(attachhelper.url.substring(0,attachhelper.url.length-4)+".jpeg","") newsitemobject.statusnet_html=newsitemobject.statusnet_html.replace(attachhelper.url.substring(0,attachhelper.url.length-4),"") } } }catch(e){print("attachment "+e)} for (var format in videoformats){ if (newsitemobject.text.indexOf("."+videoformats[format])>-1){ var videohelper={mimetype:"video/"+videoformats[format]} var videotext=newsitemobject.text; while (videotext.indexOf("."+videoformats[format])>-1){ var videohelperstringposition=videotext.indexOf("."+videoformats[format]); videohelper.url=videotext.substring(videotext.lastIndexOf("http",videohelperstringposition),videohelperstringposition+4); videotext=videotext.substring(videohelperstringposition+4,videotext.length) if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=videohelper.url)){attachmentList.push(videohelper)} } } } if (newsitemobject.text.indexOf("/videos/watch/")>-1){ var ptvideohelper={mimetype:"video/mp4"} var ptvideotext=newsitemobject.text; while (ptvideotext.indexOf("/videos/watch/")>-1){ var ptvideohelperstringposition=ptvideotext.indexOf("/videos/watch/"); var ptposend=findend(ptvideotext,ptvideohelperstringposition); if(ptposend==-1){ptposend=ptvideotext.length}; ptvideohelper.url=ptvideotext.substring(ptvideotext.lastIndexOf("http",ptvideohelperstringposition),ptposend)+"-480.mp4"; ptvideohelper.url=ptvideohelper.url.replace("/videos/watch","/static/webseed"); ptvideotext=ptvideotext.substring(ptposend,ptvideotext.length) if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=ptvideohelper.url)){attachmentList.push(ptvideohelper)} } } // if (newsitemobject.text.indexOf(".html")>-1){ // //print("message "+msg.options.showWebsiteForLinks); // if (msg.options.showWebsiteForLinks!="false"){ // var linkhelper={mimetype:"text/html"} // var linktext=newsitemobject.text; // while (linktext.indexOf(".html")>-1){ // var linkhelperstringposition=linktext.indexOf(".html"); // var linkposend=findend(linktext,linkhelperstringposition); // linkhelper.url=linktext.substring(linktext.lastIndexOf("http",linkhelperstringposition),linkposend); // linktext=linktext.substring(linkhelperstringposition+5,linktext.length) // if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=linkhelper.url)){attachmentList.push(linkhelper)} // } // } // } newsitemobject.attachmentList=attachmentList; var seconds=(msg.currentTime-newsitemobject.created_at)/1000; var timestring=""; if (seconds<60) {timestring=seconds+" "+qsTr("seconds") +" "+qsTr("ago");} else if (seconds<90){timestring=Math.round(seconds/60)+" "+qsTr("minute") +" "+qsTr("ago");} else if (seconds<3600){timestring=Math.round(seconds/60)+" "+qsTr("minutes") +" "+qsTr("ago");} else if (seconds<5400){timestring=Math.round(seconds/3600)+" "+qsTr("hour") +" "+qsTr("ago");} else if (seconds<86400){timestring=Math.round(seconds/3600)+" "+qsTr("hours") +" "+qsTr("ago");} else if (seconds<129600){timestring=Math.round(seconds/86400)+" "+qsTr("day") +" "+qsTr("ago");} else if (seconds<3888000){timestring=Math.round(seconds/86400)+" "+qsTr("days") +" "+qsTr("ago");} else if (seconds<5832000){timestring=Math.round(seconds/3888000)+" "+qsTr("month") +" "+qsTr("ago");} else if (seconds<69984000){timestring=Math.round(seconds/3888000)+" "+qsTr("months") +" "+qsTr("ago");} else {timestring=Math.round(seconds/46656000)+" "+qsTr("years") +" "+qsTr("ago");} var data=({"newsitemobject": newsitemobject,"dateDiff":timestring,"friendica_activities":friendica_activities,"forumname":forumname})} //print("News:"+j+msg.news.length+JSON.stringify(data)); if(msg.method=="append") { msg.model.insert(j, data)} else{ msg.model.append(data)} } if (j==msg.news.length){ //print("j: "+j+" msg.model.count: "+msg.model.count); msg.model.sync() } } }