Пример #1
0
 /// <summary>
 /// Complète l'objet Manga avec la liste des tous les chapitres à télécharger
 /// </summary>
 /// <param name="manga"></param>
 public static void getChapsToDlList(Manga manga, object o)
 {
     //si le dossier existe, on à déjà téléchargé des choses pour ce manga
     //on va analyser pour exclure ce qu'on à déjà téléchargé
     //sinon on prends toute la liste
     if (Directory.Exists(manga.MangaPath))
     {
         //pour chaque chapitre on vérifie s'il existe ou pas
         foreach (var chap in manga.MangaChapCompleteLst)
         {
             Outils.checkFicChap(chap);
             //si le chapitre à déjà été rappatrié, on s'arrête la, on prends le partie pris de considérer que si le dossier / fichier existe, il est complet
             if (!chap.chapAlreadyDled)
             {
                 //Sinon, on récupère la liste des pages du chapitre et on ajoute le chapitre dans la liste à dl
                 Chapitre.getChapPages(chap, o);
                 manga.MangaChapToDlLst.Add(chap);
                 manga.MangaNbrPagesToDl += chap.ChapNbrPage;
             }
         }
     }
     else
     {
         //le répertoire n'existe pas il faut tout télécharger
         foreach (var chap in manga.MangaChapCompleteLst)
         {
             Chapitre.getChapPages(chap, o);
             manga.MangaChapToDlLst.Add(chap);
             manga.MangaNbrPagesToDl += chap.ChapNbrPage;
         }
     }
 }
Пример #2
0
        internal static void infDlZip(List <Manga> mangaLst)
        {
            LelScan lel = new LelScan();

            Manga.getInfosMangas(mangaLst, lel);
            Outils.dlMangaWebClient(mangaLst);
            Outils.zipAndDel(mangaLst);
        }
Пример #3
0
 /// <summary>
 /// Récupère tout ce qui est nécéssaire sur les mangas à partir d'une liste
 /// </summary>
 /// <param name="mangaLst"></param>
 /// <returns></returns>
 internal static List <Manga> getInfosMangas(List <Manga> mLst, object o)
 {
     foreach (Manga m in mLst)
     {
         Chapitre.getChapsFromManga(m, o);
         Outils.getChapsToDlList(m, o);
     }
     return(mLst);
 }
Пример #4
0
 public static void dlMangaWebClient(List <Manga> mangaLst)
 {
     foreach (Manga m in mangaLst)
     {
         DirectoryInfo mangaDir = Directory.CreateDirectory(m.MangaPath);
         //foreach (var c in m.MangaChapToDlLst) Outils.dlChapWebClient(c);
         Outils.dlChapWebClient(m.MangaChapToDlLst);
     }
 }
Пример #5
0
 internal static void getInfoChapitres(Chapitre c, object o)
 {
     Outils.checkFicChap(c);
     //si le chapitre à déjà été rappatrié, on s'arrête la, on prends le partie pris de considérer que si le dossier / fichier existe, il est complet
     if (!c.chapAlreadyDled)
     {
         //Sinon, on récupère la liste des pages du chapitre et on ajoute le chapitre dans la liste à dl
         Chapitre.getChapPages(c, o);
     }
 }
Пример #6
0
 private void f_main_Shown(object sender, EventArgs e)
 {
     // si on a pas trouvé le RP dans le fichier de config, on demande au user de le définir
     if (!Program._rpChanged)
     {
         Program._rootPath = Program.userDefineRootPath(sender, fbd_selectRootPath);
         Outils.updateFicLineWithMotif(Program._cfg, Program._rootPath, Program._motifRootPath);
         Outils.updateFicLineWithMotif(Program._cfg, Program._rpChanged, Program._motifRootPath);
     }
 }
Пример #7
0
        private void btn_downloadMangaFollowed_Click(object sender, EventArgs e)
        {
            allButtonDisable();
            List <Manga> mLst = (List <Manga>)lb_mangaFollowed.DataSource;

            Manga.infDlZip(mLst);
            //on met à jour la liste des mangas suivis avec le chapitre le plus haut DL
            Outils.updateFicMangaFollowed(mLst);
            MessageBox.Show("Les téléchargements des mangas suivis sont terminés", "Cool", MessageBoxButtons.OK, MessageBoxIcon.Information);
            allButtonEnable();
        }
Пример #8
0
        private void btn_downloadSelectedChapters_Click(object sender, EventArgs e)
        {
            allButtonDisable();
            LelScan         lel    = new LelScan();
            List <Chapitre> cDlLst = new List <Chapitre>();

            foreach (Chapitre c in lb_chap.SelectedItems)
            {
                cDlLst.Add(c);
            }
            Chapitre.getInfoChapitres(cDlLst, lel);
            Outils.dlChapWebClient(cDlLst);
            Outils.zipAndDel(cDlLst);
            MessageBox.Show("Les téléchargements des chapitres selectionnés sont terminés", "Cool", MessageBoxButtons.OK, MessageBoxIcon.Information);
            allButtonEnable();
        }
Пример #9
0
        private void btn_changeMangaDir_Click(object sender, EventArgs e)
        {
            string origin = Program._rootPath;

            Program._rootPath = Program.userDefineRootPath(sender, fbd_selectRootPath);
            if (Program._rpChanged)
            {
                l_mangaDir.Text = "Changer le répertoire de téléchargement (" + Program._rootPath + ")";
                Outils.updateFicLineWithMotif(Program._cfg, Program._rootPath, Program._motifRootPath);
                Outils.updateFicLineWithMotif(Program._cfg, Program._rpChanged, Program._motifRootPath);
                Program.updFavPath();
                string end = Program._rootPath;
                if (!String.IsNullOrEmpty(origin) && !String.IsNullOrEmpty(end) && !end.Equals(origin))
                {
                    Outils.moveAllDir(origin, end);
                }
            }
        }
Пример #10
0
        public static List <Manga> getFavAndPopulateLB()
        {
            String[]     lines        = Outils.readTxtFile(Program._followedManga);
            List <Manga> mFollowedLst = new List <Manga>();

            foreach (String l in lines)
            {
                String   site = l.Substring(0, 1);
                String   url  = Outils.searchSite(site).ToString();
                String[] s    = l.Substring(1).Split(new[] { Program._separator }, StringSplitOptions.RemoveEmptyEntries);
                int.TryParse(s[2], out int nbrHigherChap);
                url += s[0];
                Manga m = new Manga(new Uri(url));
                m.MangaPath  = s[1];
                m.HigherChap = nbrHigherChap;
                mFollowedLst.Add(m);
            }
            return(mFollowedLst);
        }
Пример #11
0
        private void updateMangaFollowedListFic(List <Manga> mangaFollowedList)
        {
            if (!File.Exists(Program._followedManga))
            {
                throw new Exception();
            }
            string[] lines = new string[mangaFollowedList.Count];
            int      i     = 0;

            foreach (Manga m in mangaFollowedList)
            {
                String site = Outils.reencodeSite(m.MangaUrl);
                lines[i] = site + m.MangaTitleFromUrl + Program._separator + m.MangaPath + Program._separator + m.HigherChap;
                i++;
            }
            try
            {
                File.WriteAllLines(Program._followedManga, lines);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
Пример #12
0
        /// <summary>
        /// Télécharge un chapitre à partir d'un objet Chapitre
        /// </summary>
        /// <param name="chap"></param>
        /// <returns></returns>
        public static void dlChapWebClient(Chapitre c)
        {
            DirectoryInfo cDir    = Directory.CreateDirectory(c.ChapPath);
            int           lgtNeed = c.ChapPicLst.Count().ToString().Length;

            foreach (var p in c.ChapPicLst)
            {
                String path   = p.PicPath;
                String picNbr = p.PicNumber.ToString();
                int    diff   = lgtNeed - picNbr.Length;
                if (diff > 0)
                {
                    for (int i = 0; i < diff; i++)
                    {
                        picNbr = "0" + picNbr;
                    }
                    path = Path.Combine(p.ChapPath, picNbr + p.PicExt);
                }
                Outils.downloadFile(p.PicUrl.ToString(), path);
            }
        }
Пример #13
0
        public static List <Manga> updFavPath()
        {
            String[]     lines        = Outils.readTxtFile(Program._followedManga);
            List <Manga> mFollowedLst = new List <Manga>();

            for (int i = 0; i < lines.Length; i++)
            {
                String   site   = lines[i].Substring(0, 1);
                String[] s      = lines[i].Substring(1).Split(new[] { Program._separator }, StringSplitOptions.RemoveEmptyEntries);
                Manga    m      = new Manga(new Uri(s[0]));
                String   number = s[2];
                int.TryParse(number, out int nbrHigherChap);
                s[1]         = m.MangaPath;
                m.HigherChap = nbrHigherChap;
                mFollowedLst.Add(m);
                Outils.reencodeSite(m.MangaUrl);
                lines[i] = m.MangaUrl.ToString() + Program._separator + m.MangaPath + Program._separator + number;
            }
            File.WriteAllLines(Program._followedManga, lines);
            return(mFollowedLst);
        }
Пример #14
0
 private void cb_compress_CheckedChanged(object sender, EventArgs e)
 {
     Program._compress = cb_compress.Checked;
     Outils.updateFicLineWithMotif(Program._cfg, cb_compress.Checked, Program._motifCompress);
 }