v.0.4
This commit is contained in:
parent
aca94a5393
commit
63dfb9b197
70 changed files with 2829 additions and 1056 deletions
|
@ -1,4 +1,4 @@
|
|||
// This file is part of Friendiqa
|
||||
// This file is part of Friendiqa
|
||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
||||
//
|
||||
|
@ -45,7 +45,7 @@
|
|||
#include <QSqlDatabase>
|
||||
#include <QSqlError>
|
||||
#include <QDateTime>
|
||||
#include "xhr.h"
|
||||
//#include "xhr.h"
|
||||
|
||||
|
||||
UPDATENEWS *UPDATENEWS::instance()
|
||||
|
@ -63,6 +63,7 @@ void UPDATENEWS::setUrl(QString url)
|
|||
{
|
||||
if (url!=m_url) {
|
||||
m_url = url;
|
||||
xhr.setUrl(url);
|
||||
emit urlChanged(m_url);
|
||||
}
|
||||
}
|
||||
|
@ -89,24 +90,26 @@ void UPDATENEWS::setDatabase()
|
|||
|
||||
void UPDATENEWS::login()
|
||||
{
|
||||
qDebug() << "login";
|
||||
QSqlQuery query("SELECT * FROM config WHERE isActive=0",m_db);
|
||||
qDebug() <<"size "<< query.size();
|
||||
while (query.next())
|
||||
{
|
||||
username = query.value(1).toString();
|
||||
QByteArray bpassword=query.value(2).toByteArray();
|
||||
QString password=QByteArray::fromBase64(bpassword);
|
||||
m_login=username+":"+password ;
|
||||
//emit this->loginChanged(m_login);
|
||||
xhr.setLogin(m_login);
|
||||
m_url=query.value(0).toString();
|
||||
xhr.setUrl(m_url);
|
||||
m_imagedir=query.value(3).toString();
|
||||
xhr.setImagedir(m_imagedir);
|
||||
QString isActive=query.value(7).toString();
|
||||
|
||||
qDebug() << " username " << username<< password << m_url << isActive;
|
||||
//UPDATENEWS::connect(&UPDATENEWS::getLogin,SIGNAL(loginChanged(QString)),this,SLOT(XHR::login(QString)));
|
||||
updateInterval=query.value(5).toInt();
|
||||
//UPDATENEWS::connect(&UPDATENEWS::getLogin,SIGNAL(loginChanged(QString)),this,SLOT(XHR::login(QString)));
|
||||
|
||||
m_api="/api/statuses/friends_timeline";
|
||||
xhr.setApi(m_api);
|
||||
if(updateInterval!=0){alarm.setAlarm(updateInterval);};
|
||||
}
|
||||
//return m_login;
|
||||
}
|
||||
|
||||
|
||||
|
@ -115,82 +118,84 @@ 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();
|
||||
//query.finish();
|
||||
qDebug() << lastid << query.at();
|
||||
clearParams();
|
||||
setParam("since_id",lastid);
|
||||
setParam("count","50");
|
||||
get();
|
||||
QObject::connect(this,&UPDATENEWS::success,this,&UPDATENEWS::store);
|
||||
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)));
|
||||
}
|
||||
|
||||
void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
||||
{
|
||||
//qDebug() << serverreply;
|
||||
QJsonDocument news;
|
||||
QJsonParseError jsonerror;
|
||||
news=QJsonDocument::fromJson(serverreply,&jsonerror);
|
||||
qDebug() << news.isArray()<<news.isObject()<<news.isEmpty()<<jsonerror.errorString();
|
||||
if (news.isArray()){
|
||||
qDebug() << " isArray ";
|
||||
//QJsonArray array = news.//news.toArray();
|
||||
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,"[]");
|
||||
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());
|
||||
};
|
||||
if (newsitem["attachments"]!=QJsonValue::Undefined){
|
||||
query.bindValue(15, QJsonDocument(newsitem["attachments"].toArray()).toJson(QJsonDocument::Compact).toBase64());
|
||||
};
|
||||
|
||||
query.bindValue(16, newsitem["friendica_owner"]["url"]);
|
||||
qDebug() << query.exec() <<query.lastError();
|
||||
//query.finish();
|
||||
}
|
||||
query.bindValue(16, newsitem["friendica_owner"]["url"]);
|
||||
query.exec() ;
|
||||
}
|
||||
}
|
||||
else {emit this->error(m_api,QTextCodec::codecForName("utf-8")->toUnicode(serverreply));}
|
||||
QList<QJsonValue> newcontacts=findNewContacts(news);
|
||||
updateContacts(newcontacts);
|
||||
startImagedownload();
|
||||
connect(&xhr, SIGNAL(downloaded(QString, QString, QString, int)), this, SLOT(updateImageLocation(QString,QString, QString, int)));
|
||||
|
||||
emit updatesuccess();
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
QList <QJsonValue> UPDATENEWS::findNewContacts(QJsonDocument news){
|
||||
QSqlQuery query("SELECT profile_image_url FROM contacts",m_db);
|
||||
|
@ -199,16 +204,48 @@ QList <QJsonValue> UPDATENEWS::findNewContacts(QJsonDocument news){
|
|||
imageurls.append(query.value(0).toString());
|
||||
}
|
||||
QList<QJsonValue> newcontacts;
|
||||
QList<QString> newcontactimagelinks;
|
||||
qDebug()<<news.array().count();
|
||||
//qDebug()<<news.array().count();
|
||||
|
||||
for (int i=0; i<news.array().count();i++){
|
||||
//main contacts
|
||||
if(imageurls.contains(news[i]["user"]["profile_image_url"].toString()) || newcontactimagelinks.contains(news[i]["user"]["profile_image_url"].toString())){
|
||||
qDebug()<<"vorhanden";
|
||||
}
|
||||
else{ qDebug()<<"newcontact" <<news[i]["user"];
|
||||
else{
|
||||
newcontacts.append(news[i]["user"]);
|
||||
newcontactimagelinks.append(news[i]["user"]["profile_image_url"].toString());
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
//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());
|
||||
}
|
||||
}
|
||||
}
|
||||
return newcontacts;
|
||||
}
|
||||
|
@ -219,42 +256,87 @@ void UPDATENEWS::updateContacts(QList<QJsonValue> contacts){
|
|||
for (int i=0; i < contacts.count();i++){
|
||||
QJsonValue contact=contacts[i];
|
||||
QSqlQuery query(m_db);
|
||||
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);
|
||||
}
|
||||
|
||||
query.prepare("INSERT INTO contacts username, id, name, screen_name, location,imageAge, "
|
||||
"profile_image_url, description, profile_image, url, protected, followers_count, "
|
||||
else{
|
||||
query.prepare("INSERT INTO contacts (username, id, name, screen_name, location,imageAge,"
|
||||
"profile_image_url, description, profile_image, url, 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, isFriend, timestamp"
|
||||
"following, verified, statusnet_blocking, notifications, statusnet_profile_url, cid, network, isFriend, timestamp)"
|
||||
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
|
||||
query.bindValue(0,username);
|
||||
query.bindValue(1, contact["id"]);
|
||||
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"]);
|
||||
query.bindValue(7, contact["description"].toString().toUtf8().toBase64());
|
||||
//query.bindValue(8,"")
|
||||
query.bindValue(9, contact["url"]);
|
||||
query.bindValue(10,contact["protected"]);
|
||||
query.bindValue(11,contact["followers_count"]);
|
||||
query.bindValue(12,contact["friends_count"]);
|
||||
query.bindValue(13,contact["created_at"]);
|
||||
query.bindValue(14,contact["favorites_count"]);
|
||||
query.bindValue(15,contact["utc_offset"]);
|
||||
query.bindValue(16,contact["time_zone"]);
|
||||
query.bindValue(17,contact["statuses_count"]);
|
||||
query.bindValue(18,contact["following"]);
|
||||
query.bindValue(19,contact["verfied"]);
|
||||
query.bindValue(20,contact["statusnet_blocking"]);
|
||||
query.bindValue(21,contact["notifications"]);
|
||||
query.bindValue(22,contact["statusnet_profile_url"]);
|
||||
query.bindValue(23,contact["cid"]);
|
||||
query.bindValue(24,contact["network"]);
|
||||
query.bindValue(25, 1);
|
||||
//query.bindValue(26,image_timestamp);
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
emit this->success(m_api);
|
||||
}
|
||||
|
||||
QString UPDATENEWS::url() const
|
||||
|
@ -262,80 +344,16 @@ QString UPDATENEWS::url() const
|
|||
return m_url;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void UPDATENEWS::setParam(QString name, QString value)
|
||||
void UPDATENEWS::startImagedownload()
|
||||
{
|
||||
params.insert(name, value);
|
||||
xhr.setDownloadtype("contactlist");
|
||||
xhr.setFilelist(newcontactimagelinks);
|
||||
xhr.setContactlist(newcontactnames);
|
||||
xhr.setImagedir(m_imagedir);
|
||||
xhr.getlist();
|
||||
}
|
||||
|
||||
void UPDATENEWS::clearParams()
|
||||
void UPDATENEWS::showError(QString data, QString url,QString api, int code )
|
||||
{
|
||||
files.clear();
|
||||
params.clear();
|
||||
}
|
||||
|
||||
|
||||
void UPDATENEWS::get()
|
||||
{
|
||||
QUrlQuery query;
|
||||
|
||||
QHashIterator<QString, QString> i(params);
|
||||
while(i.hasNext()) {
|
||||
i.next();
|
||||
query.addQueryItem(i.key(), i.value());
|
||||
}
|
||||
|
||||
QUrl requrl(m_url+m_api);
|
||||
qDebug() << requrl;
|
||||
requrl.setQuery(query);
|
||||
QByteArray loginData = m_login.toLocal8Bit().toBase64();
|
||||
QString headerData = "Basic " + loginData;
|
||||
request.setRawHeader("Authorization", headerData.toLocal8Bit());
|
||||
request.setUrl(requrl);
|
||||
reply = manager.get(request);
|
||||
|
||||
connect(reply, &QNetworkReply::finished, this, &UPDATENEWS::onReplySuccess);
|
||||
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onReplyError(QNetworkReply::NetworkError)));
|
||||
connect(reply, &QNetworkReply::readyRead, this, &UPDATENEWS::onReadyRead);
|
||||
connect(reply, &QNetworkReply::sslErrors, this, &UPDATENEWS::onSSLError);
|
||||
}
|
||||
|
||||
void UPDATENEWS::onReplyError(QNetworkReply::NetworkError code)
|
||||
{
|
||||
qDebug() << code;
|
||||
emit this->error( bufferToString(), m_url,m_api, (int) code);
|
||||
buffer.clear();
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
void UPDATENEWS::onReplySuccess()
|
||||
{
|
||||
qDebug() << "!";
|
||||
emit this->success( buffer, m_api);
|
||||
buffer.clear();
|
||||
// reply->deleteLater();
|
||||
}
|
||||
|
||||
void UPDATENEWS::onReadyRead()
|
||||
{
|
||||
qDebug() << ".";
|
||||
buffer += reply->readAll();
|
||||
}
|
||||
|
||||
void UPDATENEWS::onSSLError(const QList<QSslError> &errors)
|
||||
{
|
||||
qDebug() << "XHR::onSSLError :" ;
|
||||
QListIterator<QSslError> ierrs(errors);
|
||||
while(ierrs.hasNext()) {
|
||||
qDebug() << "\t" << ierrs.next().errorString();
|
||||
}
|
||||
}
|
||||
|
||||
QString UPDATENEWS::bufferToString()
|
||||
{
|
||||
return QTextCodec::codecForName("utf-8")->toUnicode(buffer);
|
||||
emit this->error(api,data);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue