예제 #1
0
        private void toolStripMenuItemRun_Click(object sender, EventArgs e)
        {
            rtActivityLog.Clear();
            this.Cursor = Cursors.WaitCursor;
            var builder = new XmlTVBuilder(config, cache, null);

            builder.ActivityLogUpdate += updateActivityLog;
            builder.StatusUpdate      += statusUpdate;
            builder.Init();
            builder.LoadXmlTV(config.XmlTVFileName);
            builder.RunProcess();
            builder.SaveXmlTV();
            this.Cursor      = Cursors.Default;
            builder          = null;
            tsProgress.Value = 0;
            tsStatus.Text    = Strings.tsStatusDefaultText;
        }
예제 #2
0
파일: Program.cs 프로젝트: M0OPK/SDJSharp
        private static void Main(string[] args)
        {
            cliVersion    = typeof(SDGrabSharp.CLI.Program).Assembly.GetName().Version.ToString();
            commonVersion = typeof(SDGrabSharp.Common.XmlTVBuilder).Assembly.GetName().Version.ToString();
            jsonVersion   = typeof(SchedulesDirect.SDJson).Assembly.GetName().Version.ToString();
            xmltvVersion  = typeof(XMLTV.XmlTV).Assembly.GetName().Version.ToString();

            // Read arguments
            var argData = processArgs(args);

            // Check specified config file exists
            if (!File.Exists(argData.configFile))
            {
                Console.WriteLine(string.Format(Strings.ConfigNotFound, argData.configFile));
                Environment.Exit(1);
            }

            Console.WriteLine($"SDGrabSharp CLI {cliVersion}. Common lib {commonVersion}. JSONLib {jsonVersion}. XMLTVLib {xmltvVersion}");

            // Check any specified XMLTV files exist
            var badXmlTV = false;

            foreach (var xmlTvFile in argData.xmlTVList)
            {
                if (!File.Exists(xmlTvFile))
                {
                    Console.WriteLine(string.Format(Strings.XmlTVFileNotFound, xmlTvFile));
                    badXmlTV = true;
                }
            }
            if (badXmlTV)
            {
                Environment.Exit(1);
            }

            // Initialize objects
            config = new Config();
            cache  = new DataCache(config.CacheExpiryHours);

            // Load configuration
            LoadConfig(argData.configFile);

            // Initialize XMLTV builder
            builder = new XmlTVBuilder(config, cache);

            // If not quiet mode, add feedback event
            if (!argData.quiet)
            {
                builder.ActivityLogUpdate += updateActivityLog;
            }
            needcr = false;

            // Initialize data
            builder.Init();

            // Load existing XML TV file
            builder.LoadXmlTV(config.XmlTVFileName);

            // Run process
            builder.RunProcess();

            // Import extra xml files
            foreach (var xmlTvFile in argData.xmlTVList)
            {
                if (!builder.mergeXmlTV(xmlTvFile))
                {
                    if (builder.GetXmlTVErrors().Any())
                    {
                        foreach (var error in builder.GetXmlTVErrors())
                        {
                            Console.WriteLine($"{error.code}: {error.description}");
                        }
                    }
                    Console.WriteLine(string.Format(Strings.XmlTVMergeFailed, xmlTvFile));
                    Environment.Exit(1);
                }
            }

            // Save final XMLTV
            builder.SaveXmlTV();

            if (needcr)
            {
                Console.WriteLine("");
            }
            Console.WriteLine(Strings.ProcessComplete);
            Environment.Exit(0);
        }