2019-01-09 22:03:16 +01:00
|
|
|
// This file is part of Friendiqa
|
2018-11-09 22:06:13 +01:00
|
|
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
|
|
|
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
|
|
|
//
|
|
|
|
// 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
#include "updatenews.h"
|
|
|
|
|
|
|
|
#include <QHttpPart>
|
|
|
|
#include <QTextCodec>
|
|
|
|
#include <QUrlQuery>
|
|
|
|
#include <QList>
|
|
|
|
#include <QDataStream>
|
|
|
|
#include <QJsonDocument>
|
|
|
|
#include <QJsonObject>
|
|
|
|
#include <QJsonArray>
|
|
|
|
#include <QQmlEngine>
|
|
|
|
#include <QSqlQuery>
|
|
|
|
#include <QSqlRecord>
|
|
|
|
#include <QSqlDatabase>
|
|
|
|
#include <QSqlError>
|
|
|
|
#include <QDateTime>
|
2019-01-09 22:03:16 +01:00
|
|
|
//#include "xhr.h"
|
2018-11-09 22:06:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
UPDATENEWS *UPDATENEWS::instance()
|
|
|
|
{
|
|
|
|
static UPDATENEWS udn;
|
|
|
|
return &udn;
|
|
|
|
}
|
|
|
|
|
|
|
|
UPDATENEWS::UPDATENEWS(QObject *parent) : QObject(parent)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void UPDATENEWS::setUrl(QString url)
|
|
|
|
{
|
|
|
|
if (url!=m_url) {
|
|
|
|
m_url = url;
|
2019-01-09 22:03:16 +01:00
|
|
|
xhr.setUrl(url);
|
2018-11-09 22:06:13 +01:00
|
|
|
emit urlChanged(m_url);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void UPDATENEWS::setDatabase()
|
|
|
|
{
|
|
|
|
static QQmlEngine qe;
|
|
|
|
QString db_url=qe.offlineStorageDatabaseFilePath("Friendiqa");
|
|
|
|
m_db = QSqlDatabase::addDatabase("QSQLITE");
|
|
|
|
m_db.setDatabaseName(QUrl("file://"+db_url+".sqlite").toLocalFile());
|
|
|
|
qDebug() << db_url;
|
|
|
|
|
|
|
|
if (!m_db.open())
|
|
|
|
{
|
|
|
|
qDebug() << "Error: connection with database fail " << m_db.lastError();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
qDebug() << "Database: connection ok";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void UPDATENEWS::login()
|
|
|
|
{
|
|
|
|
QSqlQuery query("SELECT * FROM config WHERE isActive=0",m_db);
|
|
|
|
while (query.next())
|
|
|
|
{
|
|
|
|
username = query.value(1).toString();
|
|
|
|
QByteArray bpassword=query.value(2).toByteArray();
|
|
|
|
QString password=QByteArray::fromBase64(bpassword);
|
|
|
|
m_login=username+":"+password ;
|
2019-01-09 22:03:16 +01:00
|
|
|
xhr.setLogin(m_login);
|
2018-11-09 22:06:13 +01:00
|
|
|
m_url=query.value(0).toString();
|
2019-01-09 22:03:16 +01:00
|
|
|
xhr.setUrl(m_url);
|
|
|
|
m_imagedir=query.value(3).toString();
|
|
|
|
xhr.setImagedir(m_imagedir);
|
2018-11-09 22:06:13 +01:00
|
|
|
QString isActive=query.value(7).toString();
|
2019-01-09 22:03:16 +01:00
|
|
|
updateInterval=query.value(5).toInt();
|
|
|
|
//UPDATENEWS::connect(&UPDATENEWS::getLogin,SIGNAL(loginChanged(QString)),this,SLOT(XHR::login(QString)));
|
|
|
|
|
2018-11-09 22:06:13 +01:00
|
|
|
m_api="/api/statuses/friends_timeline";
|
2019-01-09 22:03:16 +01:00
|
|
|
xhr.setApi(m_api);
|
|
|
|
if(updateInterval!=0){alarm.setAlarm(updateInterval);};
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void UPDATENEWS::timeline()
|
|
|
|
{
|
|
|
|
QSqlQuery query("SELECT status_id FROM news WHERE username='"+ username +"' ORDER BY status_id DESC LIMIT 1",m_db);
|
|
|
|
if (query.isActive() && query.isSelect()){query.first();};
|
|
|
|
QString lastid=query.value(0).toString();
|
2019-01-09 22:03:16 +01:00
|
|
|
xhr.clearParams();
|
|
|
|
xhr.setParam("since_id",lastid);
|
|
|
|
xhr.setParam("count","50");
|
|
|
|
xhr.get();
|
|
|
|
QObject::connect(&xhr,SIGNAL(success(QByteArray,QString)),this,SLOT(store(QByteArray,QString)));
|
|
|
|
QObject::connect(&xhr,SIGNAL(error(QString,QString,QString,int)),this,SLOT(showError(QString,QString,QString,int)));
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
|
|
|
{
|
|
|
|
QJsonDocument news;
|
|
|
|
QJsonParseError jsonerror;
|
|
|
|
news=QJsonDocument::fromJson(serverreply,&jsonerror);
|
|
|
|
if (news.isArray()){
|
2019-01-09 22:03:16 +01:00
|
|
|
for (int i=0; i < news.array().count();i++){
|
|
|
|
QJsonValue newsitem=news[i];
|
|
|
|
QSqlQuery query(m_db);
|
|
|
|
query.prepare("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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
|
|
|
|
query.bindValue(0,username);
|
|
|
|
query.bindValue(1,"0");
|
|
|
|
query.bindValue(2, newsitem["text"].toString().toUtf8().toBase64());
|
|
|
|
QString sourcedate=newsitem["created_at"].toString();
|
|
|
|
QString formateddate=sourcedate.mid(0,3)+", "+sourcedate.mid(8,3)+sourcedate.mid(4,3)+sourcedate.mid(25,5)+sourcedate.mid(10,15);
|
|
|
|
query.bindValue(3,QDateTime::fromString(formateddate,Qt::RFC2822Date).toMSecsSinceEpoch() );
|
|
|
|
if(newsitem["in_reply_to_status_id"]!=QJsonValue::Null){query.bindValue(4, newsitem["in_reply_to_status_id"].toInt());};
|
|
|
|
query.bindValue(5,newsitem["source"]);
|
|
|
|
query.bindValue(6,newsitem["id"].toInt());
|
|
|
|
if(newsitem["in_reply_to_user_id"]!=QJsonValue::Null){ query.bindValue(7,newsitem["in_reply_to_user_id"].toInt());};
|
|
|
|
query.bindValue(8,newsitem["geo"]);
|
|
|
|
query.bindValue( 9, newsitem["favorited"].toInt());
|
|
|
|
query.bindValue(10, newsitem["user"]["id"].toInt());
|
|
|
|
query.bindValue(11, newsitem["statusnet_html"].toString().toUtf8().toBase64());
|
|
|
|
query.bindValue(12, newsitem["statusnet_conversation_id"].toInt());
|
|
|
|
QJsonArray likeArray;QJsonArray dislikeArray;QJsonArray attendyesArray;QJsonArray attendnoArray;QJsonArray attendmaybeArray;
|
|
|
|
if (newsitem.toObject().contains("friendica_activities")){
|
|
|
|
for (int a=0; a < newsitem["friendica_activities"]["like"].toArray().count();a++){
|
|
|
|
likeArray.append(newsitem["friendica_activities"]["like"][a]["url"].toString());
|
|
|
|
}
|
|
|
|
for (int b=0; b < newsitem["friendica_activities"]["dislike"].toArray().count();b++){
|
|
|
|
dislikeArray.append(newsitem["friendica_activities"]["dislike"][b]["url"].toString());
|
|
|
|
}
|
|
|
|
for (int c=0; c < newsitem["friendica_activities"]["attendyes"].toArray().count();c++){
|
|
|
|
attendyesArray.append(newsitem["friendica_activities"]["attendyes"][c]["url"].toString());
|
|
|
|
}
|
|
|
|
for (int d=0; d < newsitem["friendica_activities"]["attendno"].toArray().count();d++){
|
|
|
|
attendnoArray.append(newsitem["friendica_activities"]["attendno"][d]["url"].toString());
|
|
|
|
}
|
|
|
|
for (int e = 0; e < newsitem["friendica_activities"]["attendmaybe"].toArray().count();e++){
|
|
|
|
attendmaybeArray.append(newsitem["friendica_activities"]["attendmaybe"][e]["url"].toString());
|
|
|
|
}
|
|
|
|
};
|
|
|
|
QJsonArray friendica_activities; friendica_activities={likeArray,dislikeArray,attendyesArray,attendnoArray,attendmaybeArray};
|
|
|
|
QJsonDocument activities; activities.setArray(friendica_activities);
|
|
|
|
query.bindValue(13,activities.toJson(QJsonDocument::Compact).toBase64());
|
|
|
|
query.bindValue(14,"[]");
|
|
|
|
|
|
|
|
if (newsitem["attachments"]!=QJsonValue::Undefined){
|
|
|
|
query.bindValue(15, QJsonDocument(newsitem["attachments"].toArray()).toJson(QJsonDocument::Compact).toBase64());
|
|
|
|
};
|
|
|
|
|
|
|
|
query.bindValue(16, newsitem["friendica_owner"]["url"]);
|
|
|
|
query.exec() ;
|
|
|
|
}
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
2019-01-09 22:03:16 +01:00
|
|
|
else {emit this->error(m_api,QTextCodec::codecForName("utf-8")->toUnicode(serverreply));}
|
2018-11-09 22:06:13 +01:00
|
|
|
QList<QJsonValue> newcontacts=findNewContacts(news);
|
|
|
|
updateContacts(newcontacts);
|
2019-01-09 22:03:16 +01:00
|
|
|
startImagedownload();
|
|
|
|
connect(&xhr, SIGNAL(downloaded(QString, QString, QString, int)), this, SLOT(updateImageLocation(QString,QString, QString, int)));
|
2018-11-09 22:06:13 +01:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2019-01-09 22:03:16 +01:00
|
|
|
void UPDATENEWS::updateImageLocation(QString downloadtype,QString imageurl, QString filename, int index){
|
|
|
|
if (downloadtype=="contactlist"){
|
|
|
|
QSqlQuery query("UPDATE contacts SET imageLocation='"+ filename +"' WHERE imageurl ='"+imageurl+ "' AND username = '" +username+"'",m_db);
|
|
|
|
query.exec();
|
|
|
|
}
|
|
|
|
}
|
2018-11-09 22:06:13 +01:00
|
|
|
|
|
|
|
QList <QJsonValue> UPDATENEWS::findNewContacts(QJsonDocument news){
|
|
|
|
QSqlQuery query("SELECT profile_image_url FROM contacts",m_db);
|
|
|
|
QList<QString> imageurls;
|
|
|
|
while (query.next()){
|
|
|
|
imageurls.append(query.value(0).toString());
|
|
|
|
}
|
|
|
|
QList<QJsonValue> newcontacts;
|
2019-01-09 22:03:16 +01:00
|
|
|
//qDebug()<<news.array().count();
|
|
|
|
|
2018-11-09 22:06:13 +01:00
|
|
|
for (int i=0; i<news.array().count();i++){
|
2019-01-09 22:03:16 +01:00
|
|
|
//main contacts
|
2018-11-09 22:06:13 +01:00
|
|
|
if(imageurls.contains(news[i]["user"]["profile_image_url"].toString()) || newcontactimagelinks.contains(news[i]["user"]["profile_image_url"].toString())){
|
|
|
|
}
|
2019-01-09 22:03:16 +01:00
|
|
|
else{
|
2018-11-09 22:06:13 +01:00
|
|
|
newcontacts.append(news[i]["user"]);
|
|
|
|
newcontactimagelinks.append(news[i]["user"]["profile_image_url"].toString());
|
2019-01-09 22:03:16 +01:00
|
|
|
newcontactnames.append(news[i]["user"]["screen_name"].toString());
|
|
|
|
}
|
|
|
|
//like/dislike contacts
|
|
|
|
if (news[i].toObject().contains("friendica_activities") ){
|
|
|
|
for (int a=0; a < news[i]["friendica_activities"]["like"].toArray().count();a++){
|
|
|
|
if(imageurls.contains(news[i]["friendica_activities"]["like"][a]["profile_image_url"].toString()) || newcontactimagelinks.contains(news[i]["friendica_activities"]["like"][a]["profile_image_url"].toString())){
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
newcontacts.append(news[i]["friendica_activities"]["like"][a]);
|
|
|
|
newcontactimagelinks.append(news[i]["friendica_activities"]["like"][a]["profile_image_url"].toString());
|
|
|
|
newcontactnames.append(news[i]["friendica_activities"][a]["screen_name"].toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (int b=0; b < news[i]["friendica_activities"]["dislike"].toArray().count();b++){
|
|
|
|
if(imageurls.contains(news[i]["friendica_activities"]["dislike"][b]["profile_image_url"].toString()) || newcontactimagelinks.contains(news[i]["friendica_activities"]["dislike"][b]["profile_image_url"].toString())){
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
newcontacts.append(news[i]["friendica_activities"]["dislike"][b]);
|
|
|
|
newcontactimagelinks.append(news[i]["friendica_activities"]["dislike"][b]["profile_image_url"].toString());
|
|
|
|
newcontactnames.append(news[i]["friendica_activities"][b]["screen_name"].toString());
|
|
|
|
}
|
|
|
|
}
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
2019-01-09 22:03:16 +01:00
|
|
|
//owner contacts
|
|
|
|
if (news[i].toObject().contains("friendica_owner") ){
|
|
|
|
if(imageurls.contains(news[i]["friendica_owner"]["profile_image_url"].toString()) || newcontactimagelinks.contains(news[i]["friendica_owner"]["profile_image_url"].toString())){
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
newcontacts.append(news[i]["friendica_owner"]);
|
|
|
|
newcontactimagelinks.append(news[i]["friendica_owner"]["profile_image_url"].toString());
|
|
|
|
newcontactnames.append(news[i]["friendica_owner"]["screen_name"].toString());
|
|
|
|
}
|
|
|
|
}
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
|
|
|
return newcontacts;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void UPDATENEWS::updateContacts(QList<QJsonValue> contacts){
|
|
|
|
qint64 currentTime =QDateTime::currentMSecsSinceEpoch();
|
|
|
|
for (int i=0; i < contacts.count();i++){
|
|
|
|
QJsonValue contact=contacts[i];
|
|
|
|
QSqlQuery query(m_db);
|
2019-01-09 22:03:16 +01:00
|
|
|
qDebug() << "updatecontact " << contact["screen_name"];
|
|
|
|
QSqlQuery testquery("SELECT url FROM contacts WHERE username='"+ username +"' AND url='" + contact["url"].toString() +"'",m_db);
|
|
|
|
if (testquery.first()){
|
|
|
|
query.prepare("UPDATE contacts SET id=?, name=?, screen_name=?, location=?,imageAge=?,"
|
|
|
|
"profile_image_url=?, description=?, protected=?, followers_count=?,"
|
|
|
|
"friends_count=?, created_at=?, favourites_count=?, utc_offset=?, time_zone=?, statuses_count=?,"
|
|
|
|
"following=?, verified=?, statusnet_blocking=?, notifications=?, statusnet_profile_url=?, cid=?, network=?, timestamp=? "
|
|
|
|
" WHERE username='"+ username +"' AND url='" + contact["url"].toString() +"'");
|
|
|
|
query.bindValue(0, contact["id"].toInt());
|
|
|
|
query.bindValue(1, contact["name"].toString().toUtf8().toBase64());
|
|
|
|
query.bindValue(2, contact["screen_name"]);
|
|
|
|
query.bindValue(3, contact["location"]);
|
|
|
|
query.bindValue(4, currentTime);
|
|
|
|
query.bindValue(5, contact["profile_image_url"]);
|
|
|
|
if(contact["description"].isNull() ){query.bindValue(6,"");}else{query.bindValue(6, contact["description"].toString().toUtf8().toBase64());};
|
|
|
|
query.bindValue(7,contact["protected"].toBool());
|
|
|
|
query.bindValue(8,contact["followers_count"].toInt());
|
|
|
|
query.bindValue(9,contact["friends_count"].toInt());
|
|
|
|
QString sourcedate=contact["created_at"].toString();
|
|
|
|
QString formateddate=sourcedate.mid(0,3)+", "+sourcedate.mid(8,3)+sourcedate.mid(4,3)+sourcedate.mid(25,5)+sourcedate.mid(10,15);
|
|
|
|
query.bindValue(10,QDateTime::fromString(formateddate,Qt::RFC2822Date).toMSecsSinceEpoch() );
|
|
|
|
query.bindValue(11,contact["favorites_count"].toInt());
|
|
|
|
query.bindValue(12,contact["utc_offset"].toInt());
|
|
|
|
query.bindValue(13,contact["time_zone"].toString());
|
|
|
|
query.bindValue(14,contact["statuses_count"].toInt());
|
|
|
|
query.bindValue(15,contact["following"].toBool());
|
|
|
|
query.bindValue(16,contact["verfied"].toBool());
|
|
|
|
query.bindValue(17,contact["statusnet_blocking"].toBool());
|
|
|
|
query.bindValue(18,contact["notifications"].toBool());
|
|
|
|
query.bindValue(19,contact["statusnet_profile_url"]);
|
|
|
|
query.bindValue(20,contact["cid"].toInt());
|
|
|
|
query.bindValue(21,contact["network"]);
|
|
|
|
qint64 timestamp=0;
|
|
|
|
QString timestamphelper=contact["profile_image_url"].toString();
|
|
|
|
try {timestamp=timestamphelper.mid(timestamphelper.indexOf("?ts")+4,timestamphelper.length()).toUInt();} catch(...){};
|
|
|
|
query.bindValue(22,timestamp);
|
|
|
|
}
|
2018-11-09 22:06:13 +01:00
|
|
|
|
2019-01-09 22:03:16 +01:00
|
|
|
else{
|
|
|
|
query.prepare("INSERT INTO contacts (username, id, name, screen_name, location,imageAge,"
|
|
|
|
"profile_image_url, description, profile_image, url, protected, followers_count,"
|
2018-11-09 22:06:13 +01:00
|
|
|
"friends_count, created_at, favourites_count, utc_offset, time_zone, statuses_count,"
|
2019-01-09 22:03:16 +01:00
|
|
|
"following, verified, statusnet_blocking, notifications, statusnet_profile_url, cid, network, isFriend, timestamp)"
|
2018-11-09 22:06:13 +01:00
|
|
|
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
|
|
|
|
|
2019-01-09 22:03:16 +01:00
|
|
|
query.bindValue(0,username);
|
|
|
|
query.bindValue(1, contact["id"].toInt());
|
|
|
|
query.bindValue(2, contact["name"].toString().toUtf8().toBase64());
|
|
|
|
query.bindValue(3, contact["screen_name"]);
|
|
|
|
query.bindValue(4, contact["location"]);
|
|
|
|
query.bindValue(5, currentTime);
|
|
|
|
query.bindValue(6, contact["profile_image_url"]);
|
|
|
|
if(contact["description"].isNull() ){query.bindValue(7,"");}else{query.bindValue(7, contact["description"].toString().toUtf8().toBase64());};
|
|
|
|
query.bindValue(8,"none");
|
|
|
|
query.bindValue(9, contact["url"].toString());
|
|
|
|
query.bindValue(10,contact["protected"].toBool());
|
|
|
|
query.bindValue(11,contact["followers_count"].toInt());
|
|
|
|
query.bindValue(12,contact["friends_count"].toInt());
|
|
|
|
QString sourcedate=contact["created_at"].toString();
|
|
|
|
QString formateddate=sourcedate.mid(0,3)+", "+sourcedate.mid(8,3)+sourcedate.mid(4,3)+sourcedate.mid(25,5)+sourcedate.mid(10,15);
|
|
|
|
query.bindValue(13,QDateTime::fromString(formateddate,Qt::RFC2822Date).toMSecsSinceEpoch() );
|
|
|
|
query.bindValue(14,contact["favorites_count"].toInt());
|
|
|
|
query.bindValue(15,contact["utc_offset"].toInt());
|
|
|
|
query.bindValue(16,contact["time_zone"].toString());
|
|
|
|
query.bindValue(17,contact["statuses_count"].toInt());
|
|
|
|
query.bindValue(18,contact["following"].toBool());
|
|
|
|
query.bindValue(19,contact["verfied"].toBool());
|
|
|
|
query.bindValue(20,contact["statusnet_blocking"].toBool());
|
|
|
|
query.bindValue(21,contact["notifications"].toBool());
|
|
|
|
query.bindValue(22,contact["statusnet_profile_url"]);
|
|
|
|
query.bindValue(23,contact["cid"].toInt());
|
|
|
|
query.bindValue(24,contact["network"]);
|
|
|
|
query.bindValue(25, 0);
|
|
|
|
qint64 timestamp=0;
|
|
|
|
QString timestamphelper=contact["profile_image_url"].toString();
|
|
|
|
try {timestamp=timestamphelper.mid(timestamphelper.indexOf("?ts")+4,timestamphelper.length()).toUInt();} catch(...){};
|
|
|
|
query.bindValue(26,timestamp);
|
|
|
|
|
|
|
|
}
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
2019-01-09 22:03:16 +01:00
|
|
|
emit this->success(m_api);
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
QString UPDATENEWS::url() const
|
|
|
|
{
|
|
|
|
return m_url;
|
|
|
|
}
|
|
|
|
|
2019-01-09 22:03:16 +01:00
|
|
|
void UPDATENEWS::startImagedownload()
|
2018-11-09 22:06:13 +01:00
|
|
|
{
|
2019-01-09 22:03:16 +01:00
|
|
|
xhr.setDownloadtype("contactlist");
|
|
|
|
xhr.setFilelist(newcontactimagelinks);
|
|
|
|
xhr.setContactlist(newcontactnames);
|
|
|
|
xhr.setImagedir(m_imagedir);
|
|
|
|
xhr.getlist();
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|
|
|
|
|
2019-01-09 22:03:16 +01:00
|
|
|
void UPDATENEWS::showError(QString data, QString url,QString api, int code )
|
2018-11-09 22:06:13 +01:00
|
|
|
{
|
2019-01-09 22:03:16 +01:00
|
|
|
emit this->error(api,data);
|
2018-11-09 22:06:13 +01:00
|
|
|
}
|