QString summarizeMessage(CatItem it){ QString res; if(it.hasLabel(NAME_IS_TITLE_KEY_STR)){ res+= it.getName() + " "; } if(it.hasLabel(AUTHOR_KEY_STR)){ res+= QString("<br>") + FROM_PERSON__PHRASE + it.getAuthor(); } if(!it.getDescription().isEmpty()){ res+=it.getDescription(); } else if(!it.getLongText().isEmpty()){ res+=it.getLongText().left(UI_MAX_MESSAGE_DESCRIPTION_LEN); } if(it.hasLabel(TIME_EXPLICITELY_SET_KEY_STR)){ res+="("; time_t tm = (MAX(it.getCreationTime(), it.getModificationTime())); QDateTime t; t.fromTime_t(tm); res+= contextualTimeString(t); res+=")"; } return res; }
int Indications::New(int id_pok_old, QString value_home) { int id_new = -1; int date_old = -1, id_ListApart=-1; QString str; QStringList column, value; QSqlQuery query; // найдём дату текущих показаний str = "SELECT date_pokazanie, id_list_app_usluga FROM pokazanie WHERE id_pokazanie=%1"; str = str.arg(id_pok_old); if (query.exec(str)){ if (query.next()){ date_old = query.value(0).toInt(); id_ListApart = query.value(1).toInt(); }else{ qDebug() << "not record" << "575af8aa8da14fec062ce2bc5ef9e1e8 " << str; } } else{ qDebug()<<query.lastError(); } QDateTime time; time = time.fromTime_t(date_old); time = time.addMonths(1); DateOfUnixFormat date(time.date()); //Проверим на существование показаний на след месяц str = "SELECT id_pokazanie FROM pokazanie " "WHERE date_pokazanie=%1 AND id_list_app_usluga=%2"; str = str.arg(date.Second()) .arg(QString::number(id_ListApart)); QString id_pok_var; BD::SelectFromTable(str,&id_pok_var); if(id_pok_var == ""){//если нет записей //добавим новое показание на след месяц column.clear(); column<<"id_list_app_usluga"<<"date_pokazanie"<<"pokazanie_home"<<"pokazanie_end"; value.append(QString::number(id_ListApart)); value.append(QString::number(date.Second())); value.append(value_home); value.append(QString::number(0)); if (BD::add("pokazanie",column,value).number() != 0){ return -1; } }else{//иначе //Обновим запись BD::UpdateTable("pokazanie","pokazanie_home",value_home,"id_pokazanie",id_pok_var); return id_pok_var.toInt(); } return id_new; }
void MainWindow::getWall(QString id) { curWall = id; curOffset = 0; getPostCount = 5; qDebug() << " GETWALL in C++ emited " << id; QQmlContext* context = rootContext(); postModel = new PostModel(); //postModel->addPost(); // GET PHOTO OF GROUP QUrl cur("https://api.vk.com/method/groups.getById"); QUrlQuery queryn; queryn.addQueryItem("v","5.2"); queryn.addQueryItem("access_token",Token); queryn.addQueryItem("group_id",id); cur.setQuery(queryn); QByteArray answern = GET(cur); QVariantList Listn = JSON::parse(answern).toMap().first().toList(); curn = Listn[0].toMap(); QUrl current("https://api.vk.com/method/wall.get"); QUrlQuery query; query.addQueryItem("v","5.2"); query.addQueryItem("access_token",Token); query.addQueryItem("owner_id","-"+id); query.addQueryItem("offset",QString::number(curOffset)); query.addQueryItem("count",QString::number(getPostCount)); query.addQueryItem("filter","all"); current.setQuery(query); QByteArray answer = GET(current); //qDebug() << answer << " GET " ; QVariantList List = JSON::parse(answer).toMap().value("response").toMap().value("items").toList(); // parse to list of objects Audio for (int i=0; i<List.size(); i++) { QVariantMap current = List[i].toMap(); QDateTime date; QDateTime dateNew = date.fromTime_t(current.value("date").toInt()); QStringList imgList; QStringList audList; QStringList vidList; QVariantList attachments = current.value("attachments").toList(); //qDebug() << " ATTACH " << attachments[0].toMap().value("photo"); if (attachments.size()>0){ for (int k=0; k<attachments.size(); k++) { QVariantMap cur = attachments[k].toMap(); if (cur.value("type").toString() == "audio") { qDebug() << "Audio" << cur.value("audio").toMap().value("title").toString(); audList.append(cur.value("audio").toMap().value("title").toString()); } if (cur.value("type").toString() == "photo") { qDebug() << "Photo" << cur.value("photo").toMap().value("photo_"+photoSize).toString(); imgList.append(cur.value("photo").toMap().value("photo_"+photoSize).toString()); //imgMod.addImage(Image(cur.value("photo").toMap().value("photo_130").toString(),cur.value("photo").toMap().value("id").toString(), cur.value("photo").toMap().value("photo_604").toString())); } if (cur.value("type").toString() == "video") { qDebug() << "Video" << cur.value("video").toMap().value("photo_"+photoSize).toString(); vidList.append(cur.value("video").toMap().value("photo_"+photoSize).toString()); } } } qDebug() << " VIDEO MODEL " << vidList; postModel->addPost(Post( current.value("id").toString(), current.value("text").toString(), dateNew.toString(Qt::ISODate), current.value("likes").toString(), current.value("reposts").toString(), current.value("comments").toString(), current.value("type").toString(), curn.value("photo_50").toString(), curn.value("name").toString(), imgList, audList, vidList ) ); } context->setContextProperty("postModel", postModel); //if success loaded data if (1){ wallObj = rootObject(); QMetaObject::invokeMethod((QObject*)wallObj, "showWall"); } curOffset += 5; //qDebug() << " TEXT ROLE " << postModel->data(postModel->index(0,0),postModel->PostTextRole); }
void MainWindow::morePosts(){ qDebug() << " MORE POSTS in C++ emited " << curWall; QQmlContext* context = rootContext(); //PostModel* tmpPostModel = new PostModel(); QUrl current("https://api.vk.com/method/wall.get"); QUrlQuery query; query.addQueryItem("v","5.2"); query.addQueryItem("access_token",Token); query.addQueryItem("owner_id","-"+curWall); query.addQueryItem("offset",QString::number(curOffset)); query.addQueryItem("count",QString::number(getPostCount)); query.addQueryItem("filter","all"); current.setQuery(query); QByteArray answer = GET(current); QVariantList List = JSON::parse(answer).toMap().value("response").toMap().value("items").toList(); // parse to list of objects Audio for (int i=0; i<List.size(); i++) { QVariantMap current = List[i].toMap(); QDateTime date; QDateTime dateNew = date.fromTime_t(current.value("date").toInt()); QStringList imgList; QStringList audList; QStringList vidList; QVariantList attachments = current.value("attachments").toList(); if (attachments.size()>0){ for (int k=0; k<attachments.size(); k++) { QVariantMap cur = attachments[k].toMap(); if (cur.value("type").toString() == "audio") { qDebug() << "Audio" << cur.value("audio").toMap().value("title").toString(); audList.append(cur.value("audio").toMap().value("title").toString()); } if (cur.value("type").toString() == "photo") { qDebug() << "Photo" << cur.value("photo").toMap().value("photo_130").toString(); imgList.append(cur.value("photo").toMap().value("photo_130").toString()); //imgMod.addImage(Image(cur.value("photo").toMap().value("photo_130").toString(),cur.value("photo").toMap().value("id").toString(), cur.value("photo").toMap().value("photo_604").toString())); } if (cur.value("type").toString() == "video") { qDebug() << "Video" << cur.value("video").toMap().value("photo_130").toString(); vidList.append(cur.value("video").toMap().value("photo_130").toString()); } } } postModel->addPost(Post( current.value("id").toString(), current.value("text").toString(), dateNew.toString(Qt::ISODate), current.value("likes").toString(), current.value("reposts").toString(), current.value("comments").toString(), current.value("type").toString(), curn.value("photo_50").toString(), curn.value("name").toString(), imgList, audList, vidList ) ); } curOffset+= getPostCount; }