コード例 #1
0
 internal static void zipAndDel(Manga m1)
 {
     foreach (Chapitre chap in m1.MangaChapToDlLst)
     {
         string startPath = chap.ChapPath;
         string zipPath   = chap.ChapPath + @".cbr";
         ZipFile.CreateFromDirectory(startPath, zipPath);
         Directory.Delete(chap.ChapPath, true);
     }
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: SfeirLoic/VacumConsole
        private static void writeCR(Manga m, String source)
        {
            String file = _rootPath + @"/_Lst";

            if (!File.Exists(file))
            {
                File.Create(file);
            }

            File.WriteAllText(file, "\n" + source + "#951753#" + m.MangaTitleClean + "#951753#" + m.HigherChap + "\n");
        }
コード例 #3
0
ファイル: LelScan.cs プロジェクト: SfeirLoic/VacumConsole
        /// <summary>
        /// Complète l'objet Manga avec la liste des tous les chapitres trouvés
        /// </summary>
        /// <param name="manga"></param>
        /// <returns></returns>
        private void getChapsFromManga(Manga manga)
        {
            HtmlWeb      web       = new HtmlWeb();
            HtmlDocument mangaPage = web.Load(manga.MangaUrl);
            var          chapters  = mangaPage.DocumentNode.Descendants("h5").Where(u => u.HasAttributes);

            foreach (var c in chapters)
            {
                String   ChapTitleUrl = c.Descendants("a").First().InnerText;
                String   ChapUrl      = c.Descendants("a").First().GetAttributeValue("href", null);
                Chapitre chap         = new Chapitre(manga, ChapTitleUrl, ChapUrl);
                manga.MangaChapCompleteLst.Add(chap);
            }
        }
コード例 #4
0
ファイル: LelScan.cs プロジェクト: SfeirLoic/VacumConsole
        /**********   Fin Constructeurs ***********/


        /**********   Méthodes ***********/
        /// <summary>
        /// TODO: lorsque d'autres sites seront fonctionnels, à voir ce qui est mutualisable
        /// Construit un objet manga complet à partir d'un titre tel que défini dans l'url
        /// </summary>
        /// <param name="manga"></param>
        /// <returns></returns>
        internal Manga getInfosManga(String titleUrl)
        {
            Manga manga = new Manga(titleUrl);

            manga.MangaUrl  = LelScanUrlMangaRoot + "/" + manga.MangaTitleUrl;
            manga.MangaPath = Program._rootPath + "/" + manga.MangaTitleClean;
            //manga.MangaPath = Path.Combine(Program._rootPath, manga.MangaTitleClean);
            Console.WriteLine("Récupération des informations du manga {0}.", manga.MangaTitleClean);
            Console.WriteLine("Veuillez patienter ...");
            getChapsFromManga(manga);
            getChapsToDlList(manga);
            Console.WriteLine("   {0} chapitre(s) à télécharger / {1}, soit {2} page(s) / {3}.", manga.MangaChapToDlLst.Count, manga.MangaChapCompleteLst.Count, manga.MangaNbrPagesToDl, manga.MangaNbrPagesTot);
            return(manga);
        }
コード例 #5
0
 public Chapitre(Manga manga, string chapTitleUrl, string chapUrl)
 {
     MangaPath    = manga.MangaPath;
     ChapTitleUrl = chapTitleUrl;
     ChapUrl      = chapUrl;
     ChapPicLst   = new List <Picture>();
     ChapPath     = manga.MangaPath + "/" + ChapTitleClean;
     int.TryParse(chapTitleUrl.Split(" ").Last(), out int i);
     ChapNumber             = i;
     ChapNbrPage            = 0;
     ChapNbrPageAlreadyDled = 0;
     chapAlreadyDled        = false;
     if (ChapNumber > HigherChap)
     {
         HigherChap = ChapNumber;
     }
 }
コード例 #6
0
ファイル: LelScan.cs プロジェクト: SfeirLoic/VacumConsole
        /// <summary>
        /// Téléchargement un manga à partir d'un objet Manga
        /// </summary>
        internal void dlMangaWebClient(Manga manga)
        {
            Console.WriteLine("Téléchargement en cours, veuillez partienter");
            // Création du chronomètre.
            //Stopwatch timeDl = new Stopwatch();
            // Démarrage du chronomètre.
            //timeDl.Start();
            DirectoryInfo mangaDir = Directory.CreateDirectory(manga.MangaPath);

            // on veux les télécharger dans l'ordre ascendant
            foreach (var c in manga.MangaChapToDlLst)
            {
                dlChapWebClient(c);
            }
            // Arrêt du chronomètre.
            //timeDl.Stop();
            // IHM.
            //Menu.Menu.next("Téléchargement terminé, durée du téléchargement: " + timeDl.Elapsed.TotalSeconds + " secondes");
        }
コード例 #7
0
ファイル: LelScan.cs プロジェクト: SfeirLoic/VacumConsole
        /// <summary>
        /// Complète l'objet Manga avec la liste des tous les chapitres à télécharger
        /// </summary>
        /// <param name="manga"></param>
        private void getChapsToDlListThread(Manga manga)
        {
            //Parallel.ForEach(manga.MangaChapCompleteLst, (chap) =>
            foreach (Chapitre chap in manga.MangaChapCompleteLst)
            {
                int nbPicDled = 0;

                if (Directory.Exists(chap.ChapPath))
                {
                    nbPicDled = Directory.GetFiles(chap.ChapPath, "*.*", SearchOption.AllDirectories).Length;
                }
                getChapPagesThread(chap);
                manga.MangaNbrPagesTot += chap.ChapNbrPage;
                // si on à plus d'images à dl que ce qu'on à déjà, on mets le chap dans la liste des chaps à dl (pas parfait comme méthode, on peut avoir des images qui n'ont rien à voir dans notre dossier ...)
                if (nbPicDled < chap.ChapNbrPage)
                {
                    manga.MangaChapToDlLst.Add(chap);
                    manga.MangaNbrPagesToDl += chap.ChapNbrPage;
                }
            }
            //});
        }
コード例 #8
0
ファイル: Manga.cs プロジェクト: SfeirLoic/VacumConsole
        /// <summary>
        /// a.compareTo(b) => [-1, a < b][0, a=b][1, a>b]
        /// 1 < a = A < b
        /// </summary>
        /// <param name="obj"></param>
        public int CompareTo(object obj)
        {
            Manga manga = (Manga)obj;

            return(String.Compare(MangaTitleUrl, manga.MangaTitleUrl, true));
        }