private void GetMixesFromMP3URLSource(string Mp3URLSource, string ShowName, string Date, DateTime RealDate, List <Mix> UpdatedMixes) { while (true) { if (!Mp3URLSource.Contains("data-source=\"")) { break; } try { Mp3URLSource = Mp3URLSource.Substring(HTMLParserUtil.GetPositionOfStringInHTMLSource("data-source=\"", Mp3URLSource, false)); string MP3URL = HTMLParserUtil.GetContentAndSubstringInput("data-source=\"", "\">", Mp3URLSource, out Mp3URLSource, "", false); if (!MP3URL.StartsWith("http:")) { MP3URL = "http:" + MP3URL; } string StartTime = HTMLParserUtil.GetContentAndSubstringInput("\">", "</span>", Mp3URLSource, out Mp3URLSource); var MatchingMix = GetItems <Mix>().Where(m => m.MP3URL.Trim() == MP3URL.Trim()).FirstOrDefault(); if (MatchingMix != null) { if (MatchingMix.Old) { MatchingMix.Old = false; lock (MixListLocker) { UpdatedMixes.Add(MatchingMix); } } } else { Mix CurrentMix = new Mix() { StartTime = StartTime, Date = Date, RealDate = RealDate, ShowName = ShowName, MP3URL = MP3URL, TimeInserted = DateTime.Now }; lock (MixListLocker) { UpdatedMixes.Add(CurrentMix); } } } catch { break; } } }
private async Task GetMixesFromInternet() { List <Mix> UpdatedMixes = new List <Mix>(); List <Task> URLTasks = new List <Task>(); string Source = await GetMixPageSource(); if (Source.Contains("<div class=\"carousel-inner\">")) { Source = Source.Substring(HTMLParserUtil.GetPositionOfStringInHTMLSource("<div class=\"carousel-inner\">", Source, false)); } while (true) { if (!Source.Contains("class=\"time\">")) { break; } try { Source = Source.Substring(HTMLParserUtil.GetPositionOfStringInHTMLSource("class=\"time\">", Source, false)); string Date = HTMLParserUtil.GetContentAndSubstringInput("<br />", "</td>", Source, out Source).Trim(); string ShowName = HTMLParserUtil.GetContentAndSubstringInput("class=\"program\">", "</td>", Source, out Source).Trim(); if (!Whitelist.Contains(ShowName)) { if (!Source.Contains("<table")) { break; } Source = Source.Substring(HTMLParserUtil.GetPositionOfStringInHTMLSource("<table style=\"width: 100%;\">", Source, false)); continue; } DateTime ConvertedDateTime = ParseDate(Date); string Mp3URLSource = HTMLParserUtil.GetContentAndSubstringInput("class=\"uitzending\">", " </table>", Source, out Source); URLTasks.Add(Task.Run(() => GetMixesFromMP3URLSource(Mp3URLSource, ShowName, Date, ConvertedDateTime, UpdatedMixes))); } catch { break; } } Task.WaitAll(URLTasks.ToArray()); SaveItems(UpdatedMixes); }