Read group avatar metadata separately from image bytes
This commit is contained in:
1 parent
56897368b3
commit
a816b842e5
3 files changed
+19
-4
No files matched your search
@@ -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());
|
||||
|
||||
Reference in new issue
Block a user