void WhatsappDatabase::getChats(Settings &settings, std::vector<WhatsappChat*> &chats) { const char *query = "SELECT chat_list.key_remote_jid, chat_list.subject, chat_list.creation, max(messages.timestamp) " \ "FROM chat_list " \ "LEFT OUTER JOIN messages on messages.key_remote_jid = chat_list.key_remote_jid " \ "GROUP BY chat_list.key_remote_jid, chat_list.subject, chat_list.creation " \ "ORDER BY max(messages.timestamp) desc"; sqlite3_stmt *res; if (sqlite3_prepare_v2(database.getHandle(), query, -1, &res, NULL) != SQLITE_OK) { throw SQLiteException("Could not load chat list", database); } while (sqlite3_step(res) == SQLITE_ROW) { std::string key = database.readString(res, 0); std::string subject = database.readString(res, 1); long long creation = sqlite3_column_int64(res, 2); long long lastMessage = sqlite3_column_int64(res, 3); std::string displayName = settings.findDisplayName(key); int messagesSent = messagesCount(key, 1); int messagesReceived = messagesCount(key, 0); WhatsappChat *chat = new WhatsappChat(*this, displayName, key, subject, creation, lastMessage, messagesSent, messagesReceived); chats.push_back(chat); } sqlite3_finalize(res); }
void Thunderbird::analizeExternalEvents(qint32 eventsCount) { qDebug() << "Recieved from Thunderbird:" << eventsCount << "events"; m_addonPresenceTimer.start(); int events = eventsCount; emit messagesCount(events); if (events > 0) setLedMode(LED_RARE_BLINK); else setLedMode(LED_OFF); }
void readMessage(TcpManager server, dbController dataBase[]){ int count = messagesCount(dataBase); int i; package answ; answ.amountData = count; answ.control = ACCEPTED; printf("Operacao de Ler Mensagem !\n"); server.sendMessage(&server,answ); for (i = 0; i < MAX_LENGTH_DATA; i++) { if(dataBase[i].free == 0){ answ = dataBase[i].pkg; server.sendMessage(&server,answ); } } if(count > 0) printf("Leitura Bem Sucedida\n"); else printf("Leitura Mal Sucedida\n"); }