/// <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; } } }
internal static void infDlZip(List <Manga> mangaLst) { LelScan lel = new LelScan(); Manga.getInfosMangas(mangaLst, lel); Outils.dlMangaWebClient(mangaLst); Outils.zipAndDel(mangaLst); }
/// <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); }
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); } }
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); } }
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); } }
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(); }
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(); }
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); } } }
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); }
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); } }
/// <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); } }
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); }
private void cb_compress_CheckedChanged(object sender, EventArgs e) { Program._compress = cb_compress.Checked; Outils.updateFicLineWithMotif(Program._cfg, cb_compress.Checked, Program._motifCompress); }