public static makeFilename ( JobDownloadViewModel job, NijieImage image, int currPage, FilenameFormatType type = FilenameFormatType.Image ) : string | ||
job | JobDownloadViewModel | |
image | NijieImage | |
currPage | int | |
type | FilenameFormatType | |
return | string |
private void processIllustration(JobDownloadViewModel job, NijieImage image) { if (isJobCancelled(job)) { return; } job.PauseEvent.WaitOne(Timeout.Infinite); var filename = MainWindow.makeFilename(job, image, type: MainWindow.FilenameFormatType.Image); job.Message = "Downloading: " + image.BigImageUrl; filename = filename + "." + Util.ParseExtension(image.BigImageUrl); filename = Properties.Settings.Default.RootDirectory + Path.DirectorySeparatorChar + Util.SanitizeFilename(filename); var result = downloadUrl(job, image.BigImageUrl, image.ViewUrl, filename, image.WorkDate); image.SavedFilename = filename; image.ServerFilename = Util.ExtractFilenameFromUrl(image.BigImageUrl); if (result == NijieException.OK) { image.Filesize = new FileInfo(filename).Length; if (Properties.Settings.Default.SaveDB) { SaveImageToDB(job, image); } if (Properties.Settings.Default.DumpDownloadedImagesToTextFile) { Util.WriteTextFile(filename + Environment.NewLine); } job.DownloadCount++; } else if (result == NijieException.DOWNLOAD_SKIPPED) { image.Filesize = new FileInfo(filename).Length; if (Properties.Settings.Default.SaveDB) { SaveImageToDB(job, image); } job.SkipCount++; } }
private void processManga(JobDownloadViewModel job, NijieImage image) { var downloaded = -1; MainWindow.Log.Debug("Processing Manga Images:" + image.ImageId); string lastFilename = "", lastUrl = ""; for (int i = 0; i < image.ImageUrls.Count; ++i) { downloaded = -1; if (isJobCancelled(job)) { return; } job.PauseEvent.WaitOne(Timeout.Infinite); var filename = MainWindow.makeFilename(job, image, i, MainWindow.FilenameFormatType.Manga); job.Message = "Downloading: " + image.ImageUrls[i]; var pagefilename = filename; if (!(job.SaveMangaFilenameFormat.Contains(MainWindow.FILENAME_FORMAT_PAGE) || job.SaveMangaFilenameFormat.Contains(MainWindow.FILENAME_FORMAT_PAGE_ZERO))) { pagefilename += "_p" + i; } pagefilename += "." + Util.ParseExtension(image.ImageUrls[i]); pagefilename = Properties.Settings.Default.RootDirectory + Path.DirectorySeparatorChar + Util.SanitizeFilename(pagefilename); var pages = image.MangaPages as List <NijieMangaInfo>; downloaded = downloadUrl(job, image.ImageUrls[i], image.Referer, pagefilename, image.WorkDate); pages[i].SavedFilename = pagefilename; pages[i].ServerFilename = Util.ExtractFilenameFromUrl(image.ImageUrls[i]); if (downloaded == NijieException.OK) { pages[i].Filesize = new FileInfo(pagefilename).Length; if (Properties.Settings.Default.DumpDownloadedImagesToTextFile) { Util.WriteTextFile(pagefilename + Environment.NewLine); } } lastFilename = pagefilename; lastUrl = image.ImageUrls[i]; } image.SavedFilename = lastFilename; image.ServerFilename = Util.ExtractFilenameFromUrl(lastUrl); if (downloaded == NijieException.OK) { image.Filesize = new FileInfo(lastFilename).Length; if (Properties.Settings.Default.SaveDB) { SaveImageToDB(job, image); } job.DownloadCount++; } else if (downloaded == NijieException.DOWNLOAD_SKIPPED) { image.Filesize = new FileInfo(lastFilename).Length; if (Properties.Settings.Default.SaveDB) { SaveImageToDB(job, image); } job.SkipCount++; } }
/// <summary> /// Process images from member page. /// </summary> /// <param name="job"></param> private void doMemberJob(JobDownloadViewModel job) { if (isJobCancelled(job)) { return; } MainWindow.Log.Debug("Running Member Job: " + job.Name); try { job.Message = "Parsing member page"; job.CurrentPage = job.StartPage; NijieMember memberPage = null; do { memberPage = MainWindow.Bot.ParseMember(job.MemberId, job.MemberMode, job.CurrentPage); job.TotalImages = memberPage.TotalImages; if (Properties.Settings.Default.DownloadAvatar) { var rootPath = Properties.Settings.Default.RootDirectory; var avatarFilename = MainWindow.makeFilename(job, new NijieImage() { Member = memberPage }, type: MainWindow.FilenameFormatType.Avatar); downloadUrl(job, memberPage.AvatarUrl, memberPage.MemberUrl, rootPath + Path.DirectorySeparatorChar + avatarFilename); } foreach (var imageTemp in memberPage.Images) { if (isJobCancelled(job)) { return; } try { if (job.MemberMode == MemberMode.Bookmark) { processImage(job, null, imageTemp); } else { processImage(job, memberPage, imageTemp); } } catch (NijieException ne) { if (ne.ErrorCode == NijieException.DOWNLOAD_ERROR) { job.Exceptions.Add(ne); continue; } else { throw; } } if (job.DownloadCount > job.Limit && job.Limit != 0) { job.Message = "Image limit reached: " + job.Limit; return; } } job.CurrentPage++; MainWindow.Log.Info("Moving to next page: " + job.CurrentPage); if (job.CurrentPage > job.EndPage && job.EndPage != 0) { job.Message = "Page limit reached: " + job.EndPage; return; } } while (memberPage != null && memberPage.IsNextAvailable); } catch (NijieException ne) { HandleJobException(job, ne); MainWindow.Log.Error("Error when processing Member Job: " + job.Name, ne); } }