makeFilename() public static method

Create Filename based on format on job and image information.
public static makeFilename ( JobDownloadViewModel job, NijieImage image, int currPage, FilenameFormatType type = FilenameFormatType.Image ) : string
job JobDownloadViewModel
image NijieImage
currPage int
type FilenameFormatType
return string
Example #1
0
        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++;
            }
        }
Example #2
0
        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++;
            }
        }
Example #3
0
        /// <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);
            }
        }