static void _fill_session_array(tui_list_t *p, int i) { online_users_t *up = p->data; db_res_t *res = up->res; bool visible = db_get_bool(res, i, 3); if (!visible && !HAS_PERM(PERM_SEECLOAK)) return; session_id_t sid = db_get_session_id(res, i, 0); if (up->bid && session_get_board(sid) != up->bid) return; online_user_info_t *ip = up->users + up->num; memset(ip, 0, sizeof(*ip)); ip->sid = sid; ip->name = db_get_value(res, i, 2); ip->host = db_get_value(res, i, 4); ip->note = up->follow ? db_get_value(res, i, 6) : NULL; ip->uid = db_get_user_id(res, i, 1); ip->flag = (db_get_bool(res, i, 5) ? SESSION_FLAG_WEB : 0) | (visible ? 0 : SESSION_FLAG_INVISIBLE); ++up->num; }
/** * 检查指定的用户ID是否在列表中 * @param[in] list 用户ID列表 * @param[in] uid 用户ID * @return 在列表中返回true, 否则false */ bool friend_uid_list_contains(const friend_uid_list_t *list, user_id_t uid) { if (!list) return false; for (int i = db_res_rows(list) - 1; i >= 0; --i) { if (db_get_user_id(list, i, 0) == uid) return true; } return false; }