Browse Source

Trace avatar discovery and profile events for integration checks

master
evgeny 6 days ago
parent
commit
2fe5f34c5c
  1. 3
      tools/chatgui/src/avatars/avatarmanager.cpp
  2. 4
      tools/chatgui/tests/test_avatars.cpp

3
tools/chatgui/src/avatars/avatarmanager.cpp

@ -68,6 +68,7 @@ void AvatarManager::initialize() {
void AvatarManager::refreshMembers() {
if (!m_db || !m_db->isOpen() || !gui_bridge_is_uasync_ready()) return;
for (const auto& channel : m_db->getChannels()) {
DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: request member snapshot channel=%s", qPrintable(channel.channelId));
auto* q = (chat_member_list_req*)u_calloc(1, sizeof(chat_member_list_req));
if (!q) { DEBUG_ERROR(DEBUG_CATEGORY_MEDIA, "avatar: member request allocation failed"); return; }
q->inst = gui_bridge_get_inst(); const QByteArray id = channel.channelId.toLatin1();
@ -100,6 +101,8 @@ void AvatarManager::onMembers(const QString& channel, int count, const uint8_t*
if (full) for (const auto& context : m_refs.keys())
if (m_refs[context].group == group && !seen.contains(context)) removeMember(channel, m_refs[context].owner);
emit serversChanged(); scheduleOwn(group); pump();
DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: member snapshot channel=%s count=%d full=%d servers=%d refs=%d",
qPrintable(channel), count, int(full), m_servers.value(group).size(), m_refs.size());
}
void AvatarManager::removeMember(const QString& channel, quint64 owner) {

4
tools/chatgui/tests/test_avatars.cpp

@ -27,6 +27,7 @@ extern "C" void gui_bridge_post_uasync_fn(void (*fn)(void*), void* arg) {
uasync_call_soon(testInstance->ua, arg, fn);
}
static void avatarEvent(UTUN_INSTANCE*, int type, const uint8_t* data, int length) {
DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar test: event type=%d bytes=%d", type, length);
auto* manager = AvatarManager::instance(); if (!manager) return;
if (type == CHAT_EVT_MEMBER_FILES_RESPONSE) manager->onResponse(data, length);
if (type == CHAT_EVT_MEMBER_FILES_TRANSFER) manager->onTransfer(data, length);
@ -66,6 +67,9 @@ private slots:
void uploadReplicateCacheRestartAndRemove() {
debug_config_init(); debug_set_level(DEBUG_LEVEL_INFO);
debug_set_category_level(DEBUG_CATEGORY_CHAT_SYNC, DEBUG_LEVEL_DEBUG);
debug_set_category_level(DEBUG_CATEGORY_MEDIA, DEBUG_LEVEL_DEBUG);
debug_set_category_level(DEBUG_CATEGORY_SYS, DEBUG_LEVEL_ERROR);
QTemporaryDir directory; QVERIFY(directory.isValid());
UASYNC* ua = uasync_create(); QVERIFY(ua);
const QByteArray config = "[global]\nmy_private_key=704f2e012c8fa8768130cb0f988a997dccb628372bc5ceccacc78dcbfec5916f\n"

Loading…
Cancel
Save