コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        public MediaSelectionPage(XMLConfig config)
        {
            InitializeComponent();
            DataContext = this;

            xmlConfig        = config;
            inputDirectories = new ObservableCollection <InputDirectory>(xmlConfig.InputDirectories);
        }
コード例 #4
0
 /// <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);
     }
 }
コード例 #5
0
 /// <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);
     }
 }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        /// <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;
        }
コード例 #8
0
 /// <summary> Constructor </summary>
 /// <param name="p"></param>
 public ConfigurationPage(XMLConfig config)
 {
     xmlConfig = config;
     InitializeComponent();
     DataContext = config;
 }