public async Task <bool> RemoveFavourite(FbFavourite favouriteItem) { var postData = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("s", ""), new KeyValuePair <string, string>("do", favouriteItem.Type == FbItemType.Forum ? "dostuff-forum" : "dostuff"), new KeyValuePair <string, string>("folderid", "0"), new KeyValuePair <string, string>(favouriteItem.FbId, "yes"), new KeyValuePair <string, string>("what", "delete"), new KeyValuePair <string, string>("stoken", "") }; var postContent = new FlashbackStringUrlContent(postData); var response = await _httpClient.PostAsync("https://www.flashback.org/subscription.php", postContent); return(response.IsSuccessStatusCode); }
private async void ExecuteDeleteItemCommand(FbFavourite item) { try { Error = null; var result = await _threadsService.RemoveFavourite(item); if (result) { this.Favourites.Remove(item); Messenger.Default.Send <string>(item.Name + " är borttagen från favoriterna!", FlashbackConstants.MessengerShowInformation); } } catch (Exception e) { Error = e.ToString(); } }
private bool CanExecuteDeleteItemCommand(FbFavourite item) { return(true); }
private async Task <List <FbFavourite> > ParseFavourites(string result) { var parser = new HtmlParser(); var resultFavourites = new List <FbFavourite>(); var favourites = await parser.ParseAsync(result); // börjar först med favoriter som är a typen forum var favouritesForumCheck = favourites.QuerySelectorAll("table.forumslist tr.tr_subforum"); if (favouritesForumCheck != null) { foreach (var forum in favouritesForumCheck) { FbFavourite item = new FbFavourite() { Type = FbItemType.Forum }; var titleCheck = forum.QuerySelector("td:nth-child(2) div a:nth-child(1)"); if (titleCheck != null) { item.Name = WebUtility.HtmlDecode(titleCheck.TextContent).FixaRadbrytningar(); item.Id = titleCheck.Attributes["href"].Value.Replace("/", "").Replace("n", ""); if (titleCheck.Parent != null && titleCheck.Parent.NodeName == "STRONG") { item.IsUnread = true; } } else { continue; } var senasteCheck = forum.QuerySelector("td:nth-child(1) div:nth-child(2) div a"); if (senasteCheck != null) { item.LastPost = WebUtility.HtmlDecode(senasteCheck.TextContent.FixaRadbrytningar().Replace("av", " av").Trim()); } var idCheck = forum.QuerySelector("td:nth-child(3) input"); if (idCheck != null) { item.FbId = idCheck.Attributes[1].Value; } resultFavourites.Add(item); } } // därefter tar vi vanliga favoriter Regex regex = new Regex(@"Svar: ([\d]+)"); var favouritesThreadsCheck = favourites.QuerySelectorAll("table#threadslist tr"); if (favouritesThreadsCheck != null) { foreach (var thread in favouritesThreadsCheck) { var item = new FbFavourite() { Type = FbItemType.Thread, ShowPostCount = true, ShowForumColor = false }; var titleCheck = thread.QuerySelector("td:nth-child(2) div a"); if (titleCheck != null) { item.Name = WebUtility.HtmlDecode(titleCheck.TextContent).FixaRadbrytningar(); item.Id = titleCheck.Attributes["href"].Value.Replace("/", ""); if (titleCheck.Parent != null && titleCheck.Parent.NodeName == "STRONG") { item.IsUnread = true; } } else { continue; } var usernameCheck = thread.QuerySelector("td:nth-child(3) div:nth-child(2) a:nth-child(1)"); string username = ""; if (usernameCheck != null) { username = WebUtility.HtmlDecode(usernameCheck.TextContent.FixaRadbrytningar()); } var lastPostCheck = thread.QuerySelector("td:nth-child(3) div"); if (lastPostCheck != null) { item.LastPost = WebUtility.HtmlDecode(lastPostCheck.TextContent.FixaRadbrytningar().Replace("av", " av").Trim()) + " av " + username; } var countCheck = thread.QuerySelector("td:nth-child(3)"); if (countCheck != null) { foreach (Match match in regex.Matches(countCheck.Attributes[1].Value.Replace(" ", "").FixaRadbrytningar())) { item.PostCount = int.Parse(match.Groups[1].Value); } } var favourteIdCheck = thread.QuerySelector("td:nth-child(4) input"); if (favourteIdCheck != null) { item.FbId = favourteIdCheck.Attributes[1].Value; } resultFavourites.Add(item); } } return(resultFavourites); }