public static async Task <MangaList> GetMangaList(NetworkCredential credentials, string Username) { MangaList mangaList = new MangaList(); HttpWebResponse response = null; try { response = await SendHttpWebGETRequest(credentials, MAL_URL + "mangalist/" + Username + "/load.json", ContentType.JSON); if (EnsureStatusCode(response)) { StreamReader responseStream = new StreamReader(response.GetResponseStream()); string responseAsString = responseStream.ReadToEnd(); mangaList = JSONConverter.DeserializeJSon <MangaList>(responseAsString); } } catch (WebException ex) { Debug.Write("GetMangaList: WebException response: " + ex.Status); } finally { if (response != null) { response.Dispose(); } } return(mangaList); }
public async Task <IActionResult> PutUserMangaList(MangaList mangaList) { var name = User.FindFirstValue(ClaimTypes.Name); var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == name); mangaList.UserId = user.Id; var mangaListItem = await _context.MangaList.FirstOrDefaultAsync(a => a.MangaItemId == mangaList.MangaItemId && a.UserId == user.Id); var novelItem = await _context.MangaItem.FirstOrDefaultAsync(a => a.Id == mangaListItem.MangaItemId); if (mangaList.UserRating >= 1 && mangaList.UserRating <= 10 && mangaList.UserProgress >= 0 && mangaList.UserProgress <= novelItem.EpisodeCount) { mangaListItem.UserRating = mangaList.UserRating; mangaListItem.UserProgress = mangaList.UserProgress; if (mangaListItem.UserProgress == novelItem.EpisodeCount) { // Set to complete mangaListItem.CompleteStatus = (CompleteStatusManga)1; } else if (mangaListItem.UserProgress > 0) { // Set to reading mangaListItem.CompleteStatus = (CompleteStatusManga)2; } _context.Entry(mangaListItem).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok("Updated list")); } else { return(BadRequest()); } }
private async void ParseTitle(string id) { string url = "http://desu.me/manga/api/" + id; desu_me = await GetTitleList(url); int n = desu_me.response.chapters.count; nums = new int[n]; inv_nums = new int[n]; Title.Text = desu_me.response.russian; //RotateMatrixs(n); //Cover.Source = new BitmapImage(new Uri(desu_me.response.image.original)); for (int i = 0; i < n; ++i) { inv_nums[i] = i; //Chapters.Items.Add("sd"); Chapters.Items.Add(new wtf() { Title = " " + desu_me.response.chapters.list[i].vol + '-' + desu_me.response.chapters.list[i].ch + " " + desu_me.response.chapters.list[i].title, isRead = await IsReaded(desu_me.response.id, desu_me.response.chapters.list[i]) }); //DesuMe.Items.Add(new Manga { image = bitmap, name = desu_me.Response[i].name, description = desu_me.Response[i].description }); } Reverse(n); LoadFavorite(); }
/// <summary> /// Called whenever the settings object has been modified. /// </summary> public static void SettingsChanged() { Win.KeepAbove = Settings.KeepWindowOnTop; // Check default accounts if (Settings.DefaultAnime == null) { AnimeList = null; // The account is null! } // The list is null (but the default is not.. adding account) OR the account has changed else if (AnimeList == null || Settings.DefaultAnime.Provider != AnimeList.Api || Settings.DefaultAnime.Username != AnimeList.Username) { AnimeList = GetAnimeList(); } if (Settings.DefaultManga == null) { MangaList = null; } else if (MangaList == null || Settings.DefaultManga.Provider != MangaList.Api || Settings.DefaultManga.Username != MangaList.Username) { MangaList = GetMangaList(); } // Reload the list - what if the user changed the title type? Win.Fill(); }
private void llenado() { String Nick = Convert.ToString(Session["Admin"]); cdc = new ConexionLQDataContext(); MangaList.DataSource = cdc.vManga.OrderBy(x => x.Nombre); MangaList.DataBind(); }
private void Llenar() { String Nick = Convert.ToString(Session["Admin"]); cdc = new ConexionLQDataContext(); MangaList.DataSource = cdc.vMangaUsuario(Nick); MangaList.DataBind(); }
public void AddEntry(MangaList record) { bool titleExists = _webScraperDataContext.Manga.Any(t => t.Title.Equals(record.Title)); if (!titleExists) { _webScraperDataContext.Manga.Add(record); } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { Recommandations = await HomeController.GetRecommendations(); AnimeList = await HomeController.GetAnimeList(); MangaList = await HomeController.GetMangaList(); HomeController.ContentFrameNavigate(typeof(AnimeListControl), AnimeList); }
private void SearchBar_TextChanged(object sender, TextChangedEventArgs e) { MangaList.BeginRefresh(); if (string.IsNullOrWhiteSpace(e.NewTextValue)) { MangaList.ItemsSource = mangaResults; } else { MangaList.ItemsSource = mangaResults.Where(x => x.Name.ToLower().Contains(e.NewTextValue.ToLower())); } MangaList.EndRefresh(); }
private async void Parse(string url) { desu_me = await GetMangaList(url); int n = desu_me.Response.Count; for (int i = 0; i < n; ++i) { var uri = new Uri(desu_me.Response[i].image.original); var bitmap = new BitmapImage(uri); DesuMe.Items.Add(new Manga { image = bitmap, name = desu_me.Response[i].name, description = desu_me.Response[i].description }); } }
private async void ParseSearch(string url) { search123 = await GetMangaList(url); int n = search123.Response.Count; for (int i = 0; i < n; ++i) { var uri = new Uri(search123.Response[i].image.original); var bitmap = new BitmapImage(uri); Search.Items.Add(new Manga { name = "\t" + search123.Response[i].name, image = bitmap }); } }
private async void ParseTitle(string id1, string id2) { string url = "http://desu.me/manga/api/" + id1 + "/chapter/" + id2; desu_me = await GetTitleList(url); int n = desu_me.response.pages.list.Count; Title.Text = desu_me.response.russian + " " + desu_me.response.pages.ch_curr.vol + '-' + desu_me.response.pages.ch_curr.ch + " " + desu_me.response.pages.ch_curr.title; for (int i = 0; i < n; ++i) { Pages.Items.Add(new Pic { ImagePath = desu_me.response.pages.list[i].img }); } }
public async Task <IActionResult> Top() { var username = User.FindFirstValue(ClaimTypes.Name); if (username == null) { var noUserViewModel = new UserMangaListViewModel(); var topNovelNoUserList = await _context.MangaItem.OrderByDescending(a => a.Rating).ToListAsync <MangaItem>(); noUserViewModel.MangaInfoList = topNovelNoUserList; return(View(noUserViewModel)); } var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == username); var userId = user.Id; var mangaList = await _context.MangaItem.OrderByDescending(a => a.Rating).ToListAsync <MangaItem>(); var userStats = new List <MangaList>(); foreach (var manga in mangaList) { var userScore = await _context.MangaList.FirstOrDefaultAsync(a => a.MangaItemId == manga.Id && a.UserId == userId); if (userScore == null) { var notOnList = new MangaList { UserRating = 0, UserProgress = 0, CompleteStatus = 0 }; userStats.Add(notOnList); } else { userStats.Add(userScore); } } var viewModel = new UserMangaListViewModel { User = user, MangaInfoList = mangaList, UserMangaList = userStats }; return(View(viewModel)); }
public static void Main(string[] args) { // If the settings file doesn't exist, force the user to set up account. var force = !Settings.Exists; // This will load the settings file for us or return a new one (if force is true) try { Core.Program.UserSettings = Settings.Load(); } catch (InvalidOperationException) { // Wrong version of settings, most likely. For now we will recreate Settings.Delete(); Core.Program.UserSettings = Settings.Load(); } finally { Settings = Core.Program.UserSettings; } Debug.Assert(Settings != null); Application.Init(); if (force) { using (var s = new SettingsWindow(true)) { var res = s.Run(); s.Destroy(); if (res != (int)ResponseType.Accept) { Environment.Exit(0); } } } // Get our lists ready (and sync them) AnimeList = GetAnimeList(); MangaList = GetMangaList(); // we have a settings file! Spawn our notification icon and window _tray = new SystemTray(); Win = new MainWindow { Visible = Settings.ShowWindowOnStart }; Win.Fill(); Application.Run(); }
public async Task <IActionResult> PostUserMangaList(MangaList mangaList) { var name = User.FindFirstValue(ClaimTypes.Name); var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == name); mangaList.UserId = user.Id; var currentMangaList = await _context.MangaList.Where(a => a.UserId == user.Id).ToListAsync <MangaList>(); foreach (var listItem in currentMangaList) { if (listItem.MangaItemId == mangaList.MangaItemId) { return(BadRequest("Item already on list")); } } _context.MangaList.Add(mangaList); var updateManga = await _context.MangaItem.FirstOrDefaultAsync(a => a.Id == mangaList.MangaItemId); updateManga.Members += 1; _context.Entry(updateManga).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok("Added to list")); }
public void RemoveEntry(MangaList record) { _webScraperDataContext.Manga.Remove(record); }
protected virtual void StartScraping() { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Started WebScraper @(" + BaseURL + ")..."); for (var nextPage = 1; ; nextPage++) { var nextURL = CreateNextURL(nextPage); var doc = HtmlLoader.LoadDocument(nextURL); AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Processing page [" + nextPage.ToString() + "] @(" + nextURL + ")"); var rows = GetMangaRows(doc); var rowCount = rows.Count(); AppLogHelper.Log(AppLoggerBase.LogTarget.File, "[" + rowCount + "] rows found. Processing rows..."); if (rowCount == 0) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "No more titles found, exiting main loop..."); break; } foreach (var row in rows) { var title = GetMangaTitle(row); if (title == null) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Failed in extracting title, skipping..."); continue; } var titleURL = GetMangaURL(row); if (titleURL == null) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Failed in extracting URL, skipping..."); continue; } var author = GetMangaAuthor(row); if (author == null) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Failed in extracting author, skipping..."); continue; } var imagePath = GetMangaImagePath(row); if (imagePath == null) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Failed in extracting image URL, skipping..."); continue; } var pubStatus = GetMangaPublishingStatus(row); if (pubStatus == null) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Failed in extracting publishing status, skipping..."); continue; } AppLogHelper.Log(AppLoggerBase.LogTarget.File, title + ", " + titleURL); var mangaEntry = new MangaList { Title = title, Site = titleURL, Author = author, ImagePath = imagePath, PubStatus = pubStatus }; ScraperRepo.AddEntry(mangaEntry); } ScraperRepo.SaveChanges(); AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Successfully added [" + rowCount + "] records to repository"); var hasOnePageOnly = HasOnePageOnly(); if (hasOnePageOnly) { break; } AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Finished scraping page [" + nextPage + "]"); } AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Finished scraping @(" + BaseURL + ")"); }