|
|
|
|
@ -113,7 +113,7 @@ QList<ChannelRow> DbManager::getChannels(ChannelSortMode sort) const {
|
|
|
|
|
char sql[512]; snprintf(sql, sizeof(sql), |
|
|
|
|
"SELECT channel_id, name, owner_node_id," |
|
|
|
|
" x25519_pubkey, x25519_privkey, ed25519_pubkey, ed25519_privkey, signature," |
|
|
|
|
" last_read_msg_id, last_pos_msg_id, last_msg_at, created_at" |
|
|
|
|
" last_read_msg_id, last_pos_msg_id, last_msg_at, created_at,avatar_version,avatar_hash" |
|
|
|
|
" FROM channels%s", orderBy); |
|
|
|
|
sqlite3_stmt* stmt = prepareOrNull(sql); |
|
|
|
|
if (!stmt) return list; |
|
|
|
|
@ -131,6 +131,8 @@ QList<ChannelRow> DbManager::getChannels(ChannelSortMode sort) const {
|
|
|
|
|
r.lastPosMsgId = sqlite3_column_int64(stmt, 9); |
|
|
|
|
r.lastMsgAt = sqlite3_column_int64(stmt, 10); |
|
|
|
|
r.createdAt = sqlite3_column_int64(stmt, 11); |
|
|
|
|
r.avatarVersion = (quint64)sqlite3_column_int64(stmt, 12); |
|
|
|
|
r.avatarHash = colBlob(stmt, 13); |
|
|
|
|
list.append(r); |
|
|
|
|
} |
|
|
|
|
sqlite3_finalize(stmt); |
|
|
|
|
@ -144,6 +146,16 @@ QList<ChannelRow> DbManager::getChannels(ChannelSortMode sort) const {
|
|
|
|
|
return list; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QByteArray DbManager::getChannelAvatar(const QString& channelId) const { |
|
|
|
|
sqlite3_stmt* st = prepareOrNull("SELECT avatar_data FROM channels WHERE channel_id=?"); if (!st) return {}; |
|
|
|
|
const QByteArray id = channelId.toLatin1(); sqlite3_bind_text(st, 1, id.constData(), id.size(), SQLITE_TRANSIENT); |
|
|
|
|
QByteArray bytes; |
|
|
|
|
int rc = sqlite3_step(st); |
|
|
|
|
if (rc == SQLITE_ROW) bytes = colBlob(st, 0); |
|
|
|
|
else if (rc != SQLITE_DONE) GUI_ERROR("group avatar: database read failed channel=%s rc=%d", qPrintable(channelId), rc); |
|
|
|
|
sqlite3_finalize(st); return bytes; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool DbManager::isChannelMember(const QString& chId, quint64 nodeId) const { |
|
|
|
|
const QByteArray sql = QStringLiteral("SELECT 1 FROM \"%1\" WHERE node_id=?").arg(peersTableName(chId)).toUtf8(); |
|
|
|
|
sqlite3_stmt* statement = prepareOrNull(sql.constData()); |
|
|
|
|
|