Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var client = new TwitchConnection(
                cluster: ChatEdgeCluster.Aws,
                nick: "justinfan1",
                oauth: "sad9di9wad", // no oauth: prefix
                port: 6697,
                capRequests: new string[] { "twitch.tv/tags", "twitch.tv/commands" },
                ratelimit: 1500,
                secure: true
                );

            client.Connected += (object sender, IrcConnectedEventArgs e) =>
            {
                Console.WriteLine("Connected");
                client.JoinChannel("#b0aty");
            };

            client.MessageReceived += (object sender, IrcMessageEventArgs e) =>
            {
                Console.WriteLine("Received: " + e.Message.ToString());
            };

            client.Reconnected += (object sender, EventArgs e) =>
            {
                Console.WriteLine("Reconnected");
            };

            client.Connect();
        }
Exemplo n.º 2
0
        private async void GetStreams()
        {
            IsLoading = true;

            // connection.CheckConnection();
            // if (connection.IsConnected)
            // {
            Uri m3u8 = await api.UriAsync(Login);

            var streams = await api.GetStreamInfoAsync($"user_login={Login}");

            UserModel users = new UserModel();
            GameModel games = new GameModel();

            foreach (var stream in streams.data)
            {
                users = await api.GetUserInfoAsync(stream.user_id);

                games = await api.GetGameInfoAsync(stream.game_id.ToString());

                string set_atr_size;

                set_atr_size  = games.data.FirstOrDefault(a => a.id == stream.game_id.ToString()).box_art_url.Replace("{width}", "85");
                set_atr_size  = set_atr_size.Replace("{height}", "113");
                SelectedMedia = new MediaModel
                {
                    Login        = users.data[0].login,
                    Atr_url      = set_atr_size,
                    Game_name    = games.data.FirstOrDefault(a => a.id == stream.game_id.ToString()).name,
                    Video_source = new Uri(await api.ParseM3UAsync(m3u8, "720p60")),
                    Description  = users.data.FirstOrDefault(a => a.id == stream.user_id).description,
                    Display_name = users.data.FirstOrDefault(a => a.id == stream.user_id).display_name,
                    Title        = stream.title,
                    Viewer_count = stream.viewer_count,
                    View_count   = users.data.FirstOrDefault(a => a.id == stream.user_id).view_count,
                    ChatMessages = new ObservableCollection <ChatModel>(),
                    UserID       = stream.user_id,
                    Logo         = users.data[0].profile_image_url,
                };
            }

            client.Connected += (object sender, IrcConnectedEventArgs e) =>
            {
                Debug.WriteLine("Connected");
                client.JoinChannel($"#{SelectedMedia.Login}");
            };
            client.MessageReceived += async(object sender, IrcMessageEventArgs e) =>
            {
                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    SelectedMedia.ChatMessages.Add(new ChatModel {
                        User = $"{e.Message.User}", Message = $"{e.Message.Message}"
                    });
                });

                Debug.WriteLine($"{e.Message.User.ToString()}: {e.Message.Message.ToString()}");
            };

            client.Reconnected += (object sender, EventArgs e) =>
            {
                Debug.WriteLine("Reconnected");
            };
            thread.Start();
            IsLoading = false;
        }