/// <summary> /// Builds proper input path for encoded file /// </summary> /// <param name="inputFile"></param> /// <returns></returns> public static string BuildInputString(FileInfo inputFile, XMLConfig config) { string strInput = string.Empty; if (inputFile.FullName.Contains("Movies")) { strInput = $@"'{config.RemoteInputDirectory}/Movies/{inputFile.Name}'"; } else { string[] folders = inputFile.FullName.Split('\\'); string strShow = folders[folders.Length - 3]; string strSeason = folders[folders.Length - 2]; if (inputFile.FullName.Contains("TV Shows")) { strInput = $@"'{config.RemoteInputDirectory}/TV Shows/{strShow}/{strSeason}/{inputFile.Name}'"; } else if (inputFile.FullName.Contains("Anime")) { strInput = $@"'{config.RemoteInputDirectory}/Anime/{strShow}/{strSeason}/{inputFile.Name}'"; } } return(strInput); }
/// <summary> /// Builds proper output path for encoded file /// </summary> /// <param name="inputFile"></param> /// <returns></returns> public static string BuildOutputString(FileInfo inputFile, XMLConfig config) { string outputDir = string.Empty; if (inputFile.FullName.Contains("Movies")) { outputDir = $@"'{config.OutputDirectory}/Movies (Encoded)/{inputFile.Name.Replace("mkv", "m4v")}'"; } else { string[] folders = inputFile.FullName.Split('\\'); string strShow = folders[folders.Length - 3]; string strSeason = folders[folders.Length - 2]; if (inputFile.FullName.Contains("TV Shows")) { outputDir = $@"'{config.OutputDirectory}/TV Shows (Encoded)/{strShow}/{strSeason}"; Directory.CreateDirectory($@"\\{config.PlexIP}\Media\TV Shows (Encoded)\{strShow}\{strSeason}"); // Uses mapped network drive Z:/ outputDir += $@"\{inputFile.Name.Replace("mkv", "m4v")}'"; } else if (inputFile.FullName.Contains("Anime")) { outputDir = $@"'{config.OutputDirectory}/Anime (Encoded)/{strShow}/{strSeason}"; Directory.CreateDirectory($@"\\{config.PlexIP}\Media\Anime (Encoded)\{strShow}\{strSeason}"); // Uses mapped network drive Z:/ outputDir += $@"\{inputFile.Name.Replace("mkv", "m4v")}'"; } } return(outputDir); }
public MediaSelectionPage(XMLConfig config) { InitializeComponent(); DataContext = this; xmlConfig = config; inputDirectories = new ObservableCollection <InputDirectory>(xmlConfig.InputDirectories); }
/// <summary> /// Loads config file through XML Serializer /// </summary> /// <param name="strFile"></param> /// <returns></returns> public static XMLConfig LoadConfig(string strFile) { try { XmlSerializer xs = new XmlSerializer(typeof(XMLConfig)); StreamReader reader = File.OpenText(strFile); XMLConfig xmlConfig = (XMLConfig)xs.Deserialize(reader); reader.Close(); return(xmlConfig); } catch { return(null); } }
/// <summary> /// Saves config file through XML Serializer /// </summary> /// <param name="strFile"> Full path and filename to be saved </param> /// <param name="xmlConfig"> The Config file object </param> /// <returns></returns> public static bool SaveConfig(string strFile, XMLConfig xmlConfig) { try { XmlSerializer xs = new XmlSerializer(xmlConfig.GetType()); Directory.CreateDirectory($@"{Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)}\RemoteHandbrakeController"); StreamWriter writer = File.CreateText(strFile); xs.Serialize(writer, xmlConfig); writer.Flush(); writer.Close(); return(true); } catch (Exception e) { Console.WriteLine(e.Message); return(false); } }
/// <summary> Constructor</summary> public MainWindow() { xmlConfig = Globals.LoadConfig(Globals.CONFIG_NAME); if (xmlConfig == null) { xmlConfig = new XMLConfig(); Globals.SaveConfig(Globals.CONFIG_NAME, xmlConfig); } timerStatus = new Timer(); timerStatus.Elapsed += new ElapsedEventHandler(OnTimedEvent); timerStatus.Interval = 1500; timerStatus.Start(); MediaSelectionPage mediaSelectionPage = new MediaSelectionPage(xmlConfig); InitializeComponent(); MainFrame.Navigate(mediaSelectionPage); }
/// <summary> /// Constructor /// </summary> /// <param name="lstFiles"></param> public EncodePage(List <FileInfo> lstFiles, XMLConfig config, MediaSelectionPage mediaPage) { lstFilesToEncode = new ObservableCollection <FileInfo>(lstFiles); lstPresets = new ObservableCollection <Preset>(); mediaSelectionPage = mediaPage; xmlConfig = config; foreach (Presets preset in Enum.GetValues(typeof(Presets))) { lstPresets.Add(new Preset(preset.GetDescription(), false)); } string[] customPresets = Directory.GetFiles(xmlConfig.CustomHandbrakePresetsDirectory, "*.json"); foreach (string preset in customPresets) { lstPresets.Add(new Preset(preset.Remove(0, xmlConfig.CustomHandbrakePresetsDirectory.Length), true)); } InitializeComponent(); this.DataContext = this; }
/// <summary> Constructor </summary> /// <param name="p"></param> public ConfigurationPage(XMLConfig config) { xmlConfig = config; InitializeComponent(); DataContext = config; }