//------------------------------------------------------------------------------------------- // Grab URL Internet Movie Informations and update the XML database and refresh screen // -> Selection of grabber script //------------------------------------------------------------------------------------------- public static void grabb_Internet_Informations(string fullMovieName, int GetID, bool choosescript, string wscript, string fullMoviePath, GrabType grabtype, bool showAll, Searchtitles sTitles, GUIAnimation searchanimation) { LogMyFilms.Debug("(grabb_Internet_Informations) with grabtype = '" + grabtype + "', title = '" + fullMovieName + "', choosescript = '" + choosescript + "', grabberfile = '" + wscript + "'"); if (choosescript) { if (!Directory.Exists(MyFilmsSettings.GetPath(MyFilmsSettings.Path.GrabberScripts))) { GUIUtils.ShowOKDialog(string.Format(GUILocalizeStrings.Get(1079876), MyFilmsSettings.GetPath(MyFilmsSettings.Path.GrabberScripts)), GUILocalizeStrings.Get(1079877), "", ""); LogMyFilms.Info("My Films : The Directory grabber config files doesn't exists. Verify your Configuration !"); return; } if (!Directory.Exists(MyFilmsSettings.GetPath(MyFilmsSettings.Path.GrabberScripts) + @"\user")) { try { Directory.CreateDirectory(MyFilmsSettings.GetPath(MyFilmsSettings.Path.GrabberScripts) + @"\user"); } catch (Exception ex) { LogMyFilms.Debug("Error creating user script directory: '" + ex.Message + "'"); } } // Grabber Directory filled, search for XML scripts files var dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); dlg.Reset(); dlg.SetHeading(GUILocalizeStrings.Get(10798706)); // "Choose internet grabber script" if (dlg == null) return; var scriptfile = new ArrayList(); if (MyFilms.conf.StrGrabber_cnf.Length > 0 && (grabtype == GrabType.Details || grabtype == GrabType.All)) { try { var defaultScript = new GrabberScript(MyFilms.conf.StrGrabber_cnf); defaultScript.Load(MyFilms.conf.StrGrabber_cnf); scriptfile.Add(MyFilms.conf.StrGrabber_cnf); dlg.Add(MyFilms.conf.StrGrabber_cnf.Substring(MyFilms.conf.StrGrabber_cnf.LastIndexOf("\\", System.StringComparison.Ordinal) + 1) + " (default)"); dlg.SelectedLabel = 0; } catch (Exception) { LogMyFilms.Error("The default script is not compatible with current MyFilms version - please change your settings !"); } } var dirsInf = new DirectoryInfo(MyFilmsSettings.GetPath(MyFilmsSettings.Path.GrabberScripts)); FileSystemInfo[] sfiles = dirsInf.GetFileSystemInfos(); foreach (FileSystemInfo sfi in sfiles) { if ((sfi.Extension.ToLower() == ".xml") && (sfi.FullName != MyFilms.conf.StrGrabber_cnf)) { var script = new GrabberScript(sfi.FullName); script.Load(sfi.FullName); string displayName = ""; string displayNamePost = ""; switch (grabtype) { case GrabType.MultiCovers: displayNamePost = script.Type.ToLower().Contains("multicovers") ? " - (Multi Cover)" : " - (Single Cover)"; break; } if (ShouldGrabberBeAdded(script, grabtype, showAll)) { if (!string.IsNullOrEmpty(script.DBName)) { displayName += script.DBName; if (!string.IsNullOrEmpty(script.Language)) displayName += " (" + script.Language + ")"; displayName += displayNamePost; } else displayName += sfi.Name; dlg.Add(displayName); scriptfile.Add(sfi.FullName); } } } // add choice to show all languages if (!showAll && !string.IsNullOrEmpty(MyFilms.conf.ItemSearchGrabberScriptsFilter)) dlg.Add(GUILocalizeStrings.Get(10798765)); // Show all if (scriptfile.Count > 0) { dlg.DoModal(GetID); if (dlg.SelectedLabel == -1) return; if (dlg.SelectedLabelText == GUILocalizeStrings.Get(10798765)) { grabb_Internet_Informations(fullMovieName, GetID, true, wscript, fullMoviePath, grabtype, true, sTitles, searchanimation); return; } if (dlg.SelectedLabel > -1) wscript = scriptfile[dlg.SelectedLabel].ToString(); } } grabb_Internet_Informations_Search(fullMovieName, GetID, wscript, fullMoviePath, grabtype, sTitles, searchanimation); }