Exemple #1
0
        public void Send(string message)
        {
            var msg = ser.Deserialize <MessageModel>(message);

            switch (msg.Type)
            {
            case MessageType.Message:
                Clients.All.addMessage(ser.Serialize(new
                {
                    Type      = msg.Type,
                    CurrentId = "",
                    VideoId   = "",
                    NextId    = "",
                    Value     = msg.Value,
                    Username  = msg.Username
                }));
                break;

            case MessageType.Play:
                ids.Add(msg.VideoId);
                string       url    = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + msg.VideoId + "&key=" + apiKey;
                WebRequest   req    = WebRequest.Create(url);
                WebResponse  resp   = req.GetResponse();
                Stream       stream = resp.GetResponseStream();
                StreamReader sr     = new StreamReader(stream);
                string       res    = sr.ReadToEnd();
                sr.Close();
                var jsonObj = JsonObj.FromJson(res);
                Clients.All.addMessage(ser.Serialize(new
                {
                    Type      = msg.Type,
                    CurrentId = "",
                    VideoId   = jsonObj.Items[0].Snippet.Title,
                    NextId    = "",
                    Value     = "",
                    Username  = msg.Username
                }));
                break;

            case MessageType.Skip:
                for (int i = currI; i < ids.Count; i++)
                {
                    if (currentVideoId == ids[i])
                    {
                        currentVideoId = nextVideoId;
                        nextVideoId    = ids[i + 1];
                        currI++;
                    }
                }

                Clients.All.addMessage(ser.Serialize(new
                {
                    Type      = msg.Type,
                    CurrentId = "",
                    VideoId   = "",
                    NextId    = nextVideoId,
                    Value     = "",
                    Username  = msg.Username
                }));
                break;

            case MessageType.VideoEnded:
                for (int i = currI; i < ids.Count; i++)
                {
                    if (currentVideoId == ids[i])
                    {
                        currentVideoId = nextVideoId;
                        nextVideoId    = ids[i + 1];
                        currI++;
                    }
                }

                Clients.All.addMessage(ser.Serialize(new
                {
                    Type      = msg.Type,
                    CurrentId = "",
                    VideoId   = "",
                    NextId    = nextVideoId,
                    Value     = "",
                    Username  = msg.Username
                }));
                break;
            }
        }
Exemple #2
0
 public static string ToJson(this JsonObj self) => JsonConvert.SerializeObject(self, Drocsid.Converter.Settings);