Пример #1
0
        //**********************************************************//
        //**                 Below is Members routines            **//
        //**********************************************************//

        // Return members list from specified group Name
        private static TLVector <TLAbsUser> GetGroupMembers(string gname, string ufile = null)
        {
            long hash = 0;
            int  gid  = GetGroupIdByName(gname, out hash);

            TeleSharp.TL.Messages.TLChatFull ch = GetGroupFullById(gid, hash);

            if (0 == hash && MembersLogAndSave(ch.Users, ufile, gname))
            {
                return(ch.Users);
            }

            int offset = 0;
            TLChannelParticipants ps    = null;
            TLVector <TLAbsUser>  users = new TLVector <TLAbsUser>();

            do
            {
                ps = client.GetChannelParticipants(gid, hash, offset, 5000).GetAwaiter().GetResult();
                foreach (TLUser u in ps.Users)
                {
                    users.Add(u);
                }
                offset += ps.Users.Count;
            } while (users.Count < ps.Count && 0 != ps.Users.Count);

            MembersLogAndSave(users, ufile, gname);
            return(users);
        }