Ejemplo n.º 1
0
Archivo: online.c Proyecto: fbbs/fbbs
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;
}
Ejemplo n.º 2
0
/**
 * 检查指定的用户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;
}