Exemplo n.º 1
0
        public void GetUserTest()
        {
            var mock = Utils.MockApi();

            // Without userid parameter
            mock.Setup(f => f.ClientProfile(It.IsAny <String>()));
            MatrixClient client = new MatrixClient((MatrixAPI)mock.Object);

            Assert.That(client.GetUser(), Is.Null);

            mock.Setup(f => f.ClientProfile(It.IsAny <String>())).Returns(new MatrixProfile());
            var user = client.GetUser();

            Assert.That(user, Is.Not.Null);
            Assert.That(user.UserID, Is.EqualTo("@foobar:localhost"));

            //With userid parameter.
            mock.Setup(f => f.ClientProfile(It.IsAny <String>()));
            Assert.That(client.GetUser("@barbaz:localhost"), Is.Null);

            mock.Setup(f => f.ClientProfile(It.IsAny <String>())).Returns(new MatrixProfile());
            user = client.GetUser("@barbaz:localhost");
            Assert.That(user, Is.Not.Null);
            Assert.That(user.UserID, Is.EqualTo("@barbaz:localhost"));
        }
Exemplo n.º 2
0
        public void CreateCheatLobby(string sender)
        {
            MatrixUser user = client.GetUser(sender);
            MatrixRoom room = CreateLobbyRoom(user, "Cheat");

            Lobby lobby = new CheatLobby(room, user, client);

            lobbies.Add(lobby);
        }
Exemplo n.º 3
0
        void Room_OnEvent(MatrixRoom room, MatrixEvent evt)
        {
            if (evt.sender == null)
            {
                return;
            }
            MatrixUser user = client.GetUser(evt.sender);

            //Deal with players leaving or joining
            if (evt.type == "m.room.member")
            {
                EMatrixRoomMembership memtype = ((MatrixMRoomMember)evt.content).membership;
                if (memtype == EMatrixRoomMembership.Leave)
                {
                    PlayerLeave(user);
                }
                else if (memtype == EMatrixRoomMembership.Join)
                {
                    PlayerJoin(user);
                }
            }
            else if (evt.type == "m.room.message")
            {
                PlayerMessage(user, (MatrixMRoomMessage)evt.content);
            }
        }
Exemplo n.º 4
0
        public static void Main(string[] args)
        {
            MatrixClient client = new MatrixClient("");

            client.LoginWithPassword("", "");
            MatrixUser user = client.GetUser("");
        }
Exemplo n.º 5
0
        protected void onLogin(object sender, EventArgs e)
        {
            Console.WriteLine("Trying to login to the matrix server...");
            var client = new MatrixClient(this.serverEntry.Text);

            try{
                client.LoginWithPassword(this.usernameEntry.Text, this.passwordEntry.Text);
                var user = client.GetUser();
                Console.WriteLine("Login success");
                var storage = new Storage();
                storage.Server   = this.serverEntry.Text;
                storage.Username = this.usernameEntry.Text;
                storage.UserId   = user.UserID;
                storage.Token    = client.GetAccessToken();
                storage.Save();
            }catch (Exception loginException) {
                Console.WriteLine(loginException.Message);
            }
        }
Exemplo n.º 6
0
    public void MatrixRoutine()
    {
        var storage = new Storage();

        client = new MatrixClient(storage.Server);
        cache  = new Cache(client);

        try{
            client.UseExistingToken(storage.UserId, storage.Token);
            this.user = client.GetUser();
            Gtk.Application.Invoke(delegate {
                var statusContext = statusbar.GetContextId("matrix");
                statusbar.Push(statusContext, "Logged in to " + storage.Server + " as " + storage.UserId);
                displayName.Text = user.DisplayName;
            });
        }catch (Exception loginException) {
            Gtk.Application.Invoke(delegate {
                var statusContext = statusbar.GetContextId("matrix");
                statusbar.Push(statusContext, "Login failed: " + loginException.Message);
            });

            storage.Token = null;
            storage.Save();
        }

        var rooms = client.GetAllRooms();

        channelList.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0);
        channelList.AppendColumn("Artist", new Gtk.CellRendererText(), "text", 1);


        var liststore = new ListStore(typeof(Gdk.Pixbuf), typeof(string));

        int roomIndex = 0;

        foreach (var channel in rooms)
        {
            var label = getRoomLabel(channel);
            var icon  = AvatarGenerator.createRoomAvatar(label, channel.Encryption != null);
            liststore.AppendValues(icon, label);
            this.rooms.Add(roomIndex, channel);
            roomIndex++;

            foreach (var member in channel.Members)
            {
                if (!this.users.ContainsKey(member.Key))
                {
                    this.users.Add(member.Key, member.Value);
                }
            }
        }

        channelList.Model = liststore;
        var avatar       = cache.GetAvatarObject(user.AvatarURL);
        var avatarScaled = Utils.resizeImage(System.Drawing.Image.FromStream(avatar), 48, 48);

        profileImage.Pixbuf = Utils.bitmapToPixbuf(avatarScaled);

        foreach (var member in this.users)
        {
            if (member.Value.avatar_url != null)
            {
                var memberAvatar = cache.GetAvatarObject(member.Value.avatar_url);
                var scaled       = Utils.resizeImage(System.Drawing.Image.FromStream(memberAvatar), 32, 32);
                this.avatars.Add(member.Key, scaled);
            }
        }
        refreshRoomList();
        Console.WriteLine("Matrix thread done");
    }