//Метод нахождения песни по словам в ней public IList <Track> FindSongByLyrics(string lyrics) { JSONFormatter formatter = new JSONFormatter(); //Создаем список кортежей, в которых будет храниться только полезная информация: название трека, альбом и исполнитель IList <Track> songList = new List <Track>(); //Формируем строку запроса string finalURL = rootURL + "track.search?format=jsonp&callback=callback&q_lyrics=" + WebUtility.UrlEncode(lyrics) + "&s_track_rating=desc&quorum_factor=1&apikey=" + musixmatchToken; //Создаём сам запрос с методом GET HttpWebRequest request = (HttpWebRequest)WebRequest.Create(finalURL); request.Method = "GET"; string answer = string.Empty; try { //Отправляем запрос и считываем ответ сервиса using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { answer = reader.ReadToEnd(); } } catch (Exception e) { Console.WriteLine("При попытке соединения с API Musixmatch что-то пошло не так!"); Console.WriteLine(e.Message); return(null); } List <Track> tracks = formatter.ParseTracks(answer, 7); if (tracks == null) { return(null); } //Добавляем в список кортеж о каждой найденой песне, если в списке объектов меньше 7 foreach (Track track in tracks) { songList.Add(track); } return(songList); }
public void ListenChat() { JSONFormatter formatter = new JSONFormatter(); //получение сдвига int offset = GetOffset(); string offsetString = "?offset=" + GetOffset().ToString(); string methodUrl = baseUrl + telegramToken + "/getUpdates"; //частота запросов int requestFrequency = 1000; Stopwatch sw = new Stopwatch(); sw.Start(); string responseString; while (true) { if (sw.ElapsedMilliseconds % requestFrequency != 0) { continue; } HttpWebRequest request = (HttpWebRequest)WebRequest.Create(methodUrl + offsetString); request.Method = "GET"; //получение списка непрочитанных сообщений try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); responseString = reader.ReadToEnd(); } catch (Exception e) { Console.WriteLine("Невозможно получить ответ от Телеграма"); Console.WriteLine(e.Message); break; } int updateId = offset; //список всех непрочитанных сообщений в джейсоне List <TelegramMessage> currentMessages = formatter.ParseLastMessages(responseString); if (currentMessages == null) { continue; } foreach (TelegramMessage message in currentMessages) { updateId = message.UpdateId; SendMessages(telegramUserInteraction.PrepareAnswer(message.Chat, message.SenderName, message.Text)); } //обновление и сохранение оffсета offset = updateId + 1; SetOffset(offset); offsetString = "?offset=" + GetOffset().ToString(); } }