public Request GetTTSRequest(int speed) { List <Chapter> chapters = NovelChapters.ToList(); if (chapters == null) { return(null); } Request request = null; Chapter c = null; string ttsVoice = Configuration.Instance.LanguageVoiceDictionary[OriginSource.NovelLanguage]; if (ttsVoice == "No Voice Selected") { return(request); } for (requestIndex = 0; requestIndex < chapters.Count; requestIndex++) { c = chapters[requestIndex]; if (ShouldMakeAudio(c, false)) { if (!queuedTTSChapters.ContainsKey(c)) { request = new Request(ttsVoice, c, GetReplaceSpecificationLocation(), GetDeleteSpecificationLocation(), speed, GetTTSPriority(c)); queuedTTSChapters.Add(c, request); break; } } } if (requestIndex >= chapters.Count || request == null) { requestIndex = 0; for (requestIndex = 0; requestIndex < chapters.Count; requestIndex++) { c = chapters[requestIndex]; if (ShouldMakeAudio(c, true)) { if (!queuedTTSChapters.ContainsKey(c)) { //request = new Request(Configuration.Instance.LanguageVoiceDictionary[NovelSource.NovelLanguage], c, GetReplaceSpecificationLocation(), GetDeleteSpecificationLocation(), speed, GetTTSPriority(c)); request = new Request(ttsVoice, c, GetReplaceSpecificationLocation(), GetDeleteSpecificationLocation(), speed, GetTTSPriority(c)); queuedTTSChapters.Add(c, request); break; } } } } return(request); }
public void DeleteChapter(Chapter deleteChapter, bool blackList, bool verifyData = true) { if (NovelLibrary.libraryData.Chapters.Any(chapter => chapter.ID == deleteChapter.ID)) { if (deleteChapter.HasAudio) { File.Delete(deleteChapter.GetAudioFileLocation()); } if (deleteChapter.HasText) { File.Delete(deleteChapter.GetTextFileLocation()); } if (deleteChapter.ID == LastReadChapterID) { Console.WriteLine(deleteChapter.ID + " " + deleteChapter.Index + " " + deleteChapter.ChapterTitle); if (deleteChapter.Index > 0) { LastReadChapter = GetChapter(deleteChapter.Index - 1); } else if (deleteChapter.Index == 0 && ChapterCount > 1) { LastReadChapter = GetChapter(1); } else { LastReadChapter = null; } } ChapterUrl[] urls = deleteChapter.ChapterUrls.ToArray <ChapterUrl>(); if (urls != null) { if (blackList) { deleteChapter.Valid = false; } else { NovelLibrary.libraryData.Chapters.DeleteOnSubmit(deleteChapter); NovelLibrary.libraryData.ChapterUrls.DeleteAllOnSubmit(deleteChapter.ChapterUrls); } } else { NovelLibrary.libraryData.Chapters.DeleteOnSubmit(deleteChapter); } if (chapterList.Contains(deleteChapter)) { chapterList.Remove(deleteChapter); } isDirty = true; NovelLibrary.libraryData.SubmitChanges(); //foreach (Chapter c in chapters) // Console.WriteLine(c.ChapterTitle + " " + c.Index +" " + c.ID); if (verifyData) { Chapter[] chapters = NovelChapters.ToArray <Chapter>(); } NotifyPropertyChanged("ChapterCountStatus"); } }