public void Init(XElement xe, XmlConfig config)
        {
            //XElement xe;
            //if (!test)
            //    _xeConfig = XmlConfig.CurrentConfig.GetElement("DownloadAutomateManager");
            //else
            //{
            //    Trace.WriteLine("CreateDownloadAutomateManager init for test");
            //    _xeConfig = XmlConfig.CurrentConfig.GetElement("DownloadAutomateManager_Test");
            //}
            //_test = test;
            _xeConfig = xe;
            _version = xe.zXPathValue("Version").zTryParseAs(_version);
            _useTestManager = xe.zXPathValue("UseTestManager").zTryParseAs(false);
            _traceLevel = xe.zXPathValue("TraceLevel").zTryParseAs<int?>();
            //_dailyPrintManager = xe.zXPathValue("DailyPrintManager").zTryParseAs(false);
            //_gapDayBefore = xe.zXPathValue("GapDayBefore").zTryParseAs(0);
            //_gapDayAfter = xe.zXPathValue("GapDayAfter").zTryParseAs(0);

            //_config = XmlConfig.CurrentConfig;
            _config = config;
            _localConfig = _config.GetConfig("LocalConfig");
            //_localConfig = _config.GetConfig("LocalConfig", optional: true);
            _printList1Config = _config.GetConfig("PrintList1Config");
            _printList2Config = _config.GetConfig("PrintList2Config");
        }
        //public static PrintTitleManager Create(int version = 3, int gapDayBefore = 0, int gapDayAfter = 0)
        //{
        //    CreatePrintTitleManager create = new CreatePrintTitleManager();
        //    create._version = version;
        //    create._gapDayBefore = gapDayBefore;
        //    create._gapDayAfter = gapDayAfter;
        //    return create._Create();
        //}

        public void Init(XElement xe)
        {
            _xeConfig = xe;
            if (xe != null)
            {
                _version = xe.zXPathValue("Version").zTryParseAs(_version);
                _gapDayBefore = xe.zXPathValue("GapDayBefore").zTryParseAs(0);
                _gapDayAfter = xe.zXPathValue("GapDayAfter").zTryParseAs(0);
            }
            _printList1Config = XmlConfig.CurrentConfig.GetConfig("PrintList1Config");
        }
Example #3
0
 public static void InitImage(XElement xe)
 {
     UrlCache urlCache = UrlCache.Create(xe);
     //if (xe.zXPathValue("UseUrlCache").zTryParseAs(false))
     if (urlCache != null)
     {
         // xe.zXPathValue("CacheDirectory")
         __imageCacheManager = new WebImageMongoCacheManager(xe.zXPathValue("MongoServer"), xe.zXPathValue("MongoDatabase"), xe.zXPathValue("MongoCollection"), urlCache);
     }
     __imageFilterMinHeight = xe.zXPathValue("ImageFilterMinHeight").zParseAs<int>();
 }
Example #4
0
 public static UrlCache Create(XElement xe)
 {
     if (xe != null && xe.zXPathValue("UseUrlCache").zTryParseAs(false))
     {
         UrlCache urlCache = new UrlCache(xe.zXPathExplicitValue("CacheDirectory"));
         urlCache._urlFileNameType = zurl.GetUrlFileNameType(xe.zXPathValue("CacheUrlFileNameType", "Path"));
         urlCache._saveRequest = xe.zXPathValue("CacheSaveRequest").zTryParseAs(false);
         return urlCache;
     }
     else
         return null;
 }
Example #5
0
 private static void ClassInit(XElement xe)
 {
     bool useUrlCache = xe.zXPathValue("UseUrlCache").zTryParseAs(false);
     UrlCache urlCache = null;
     if (useUrlCache)
     {
         string cacheDirectory = xe.zXPathValue("CacheDirectory");
         urlCache = new UrlCache(cacheDirectory);
         urlCache.UrlFileNameType = UrlFileNameType.Path | UrlFileNameType.Query;
         //urlCache.GetUrlSubDirectoryFunction = httpRequest => (Ebookdz_LoadPostDetailFromWebManager.GetPostDetailKey(httpRequest) / 1000 * 1000).ToString();
     }
     __currentLoadForumFromWebManager = new Ebookdz_LoadForumFromWebManager(urlCache);
 }
Example #6
0
 public static void InitImage(XElement xe)
 {
     //if (xe.zXPathValueBool("UseUrlCache", false))
     if (xe.zXPathValue("UseUrlCache").zTryParseAs(false))
         __imageCacheManager = new WebImageMongoCacheManager_v1(xe.zXPathValue("MongoServer"), xe.zXPathValue("MongoDatabase"), xe.zXPathValue("MongoCollection"), xe.zXPathValue("CacheDirectory"));
     __imageFilterMinHeight = xe.zXPathValue("ImageFilterMinHeight").zParseAs<int>();
 }
Example #7
0
        public static void ClassInit(XElement xe)
        {
            __useUrlCache = xe.zXPathValue("UseUrlCache").zTryParseAs(false);
            __cacheDirectory = xe.zXPathValue("CacheDirectory");

            __useXml = xe.zXPathValue("UseXml").zTryParseAs(__useXml);
            __xmlNodeName = xe.zXPathValue("XmlNodeName");
            __useMongo = xe.zXPathValue("UseMongo").zTryParseAs(__useMongo);
            __mongoServer = xe.zXPathValue("MongoServer", __mongoServer);
            __mongoDatabase = xe.zXPathValue("MongoDatabase");
            __mongoCollectionName = xe.zXPathValue("MongoCollection");
            __mongoDocumentItemName = xe.zXPathValue("MongoDocumentItemName");

            IDocumentStore_v1<RapideDdl_PostDetail> documentStore = null;
            if (__useMongo)
            {
                documentStore = new MongoDocumentStore_v1<RapideDdl_PostDetail>(__mongoServer, __mongoDatabase, __mongoCollectionName, __mongoDocumentItemName);
                RapideDdl.InitMongoClassMap();
            }
            _load = new pb.Web.v1.LoadWebData_v2<RapideDdl_PostDetail>(new pb.Web.v1.LoadDataFromWeb_v2<RapideDdl_PostDetail>(LoadPostDetailFromWeb, GetUrlCache()), documentStore);
            //_load.SetXmlParameters(__useXml, __xmlNodeName);
        }
Example #8
0
 public static MongoDataStore Create(XElement xe)
 {
     MongoDataStore mongoDataStore = new MongoDataStore(xe.zXPathExplicitValue("MongoServer"), xe.zXPathExplicitValue("MongoDatabase"), xe.zXPathExplicitValue("MongoCollection"), xe.zXPathValue("MongoDocumentItemName"));
     mongoDataStore.DefaultSort = xe.zXPathValue("MongoDefaultSort");
     if (xe.zXPathValue("MongoGenerateId").zTryParseAs(false))
     {
         string type = xe.zXPathValue("MongoGenerateId/@type").ToLowerInvariant();
         if (type == "int")
         {
             mongoDataStore._idGenerator = new MongoIdGeneratorInt(mongoDataStore.GetCollection());
             mongoDataStore._generateId = true;
         }
         else
             throw new PBException("unknow id type generator \"{0}\"", type);
     }
     return mongoDataStore;
 }
Example #9
0
 public string Format(XElement xe)
 {
     if (gFormatValues == null || xe == null) return null;
     string[] values = new string[gFormatValues.Count];
     int i = 0;
     foreach (XValueFormat valueFormat in gFormatValues)
     {
         if (valueFormat.Values != null)
         {
             string s = "";
             foreach (XElement xe2 in xe.zXPathElements(valueFormat.XPath))
             {
                 string[] values2 = new string[valueFormat.Values.Count];
                 int i2 = 0;
                 foreach (XValueFormat valueFormat2 in valueFormat.Values)
                 {
                     values2[i2++] = xe2.zXPathValue(valueFormat2.XPath);
                 }
                 s += string.Format(valueFormat.Format, values2);
             }
             values[i++] = s;
         }
         else
             values[i++] = xe.zXPathValue(valueFormat.XPath);
     }
     return string.Format(gsStringFormat, values);
 }
Example #10
0
        //public static FindPrintManager Create(int version = 3, bool dailyPrintManager = false, int gapDayBefore = 0, int gapDayAfter = 0)
        //{
        //    CreateFindPrintManager create = new CreateFindPrintManager();
        //    create._version = version;
        //    create._dailyPrintManager = dailyPrintManager;
        //    create._gapDayBefore = gapDayBefore;
        //    create._gapDayAfter = gapDayAfter;
        //    return create._Create();
        //}

        public void Init(XElement xe)
        {
            _xeConfig = xe;
            if (xe != null)
            {
                _version = xe.zXPathValue("Version").zTryParseAs(_version);
                _dailyPrintManager = xe.zXPathValue("DailyPrintManager").zTryParseAs(false);
                _gapDayBefore = xe.zXPathValue("GapDayBefore").zTryParseAs(0);
                _gapDayAfter = xe.zXPathValue("GapDayAfter").zTryParseAs(0);
                _trySplitTitle = xe.zXPathValue("TrySplitTitle").zTryParseAs(false);
            }
        }
Example #11
0
        private void init(XElement xelement)
        {
            _directory = xelement.zXPathValue("Directory");

            Dictionary<string, RegexValuesModel> regexModels = new Dictionary<string, RegexValuesModel>();
            // zElements("FilenamesModel/FilenameModel")
            foreach (XElement xe in xelement.zXPathElements("FilenamesModel/FilenameModel"))
            {
                RegexValuesModel rvm = new RegexValuesModel(xe);
                regexModels.Add(rvm.key, rvm);
            }

            _regexModels = new Dictionary<string, RegexValuesModel>();
            // zElements("FilenameModels/FilenameModel")
            foreach (XElement xe in xelement.zXPathElements("FilenameModels/FilenameModel"))
            {
                RegexValuesModel rvm = new RegexValuesModel(xe);
                _regexModels.Add(rvm.key, rvm);
            }
            // zElements("FilenameDates/FilenameDate")
            _dateRegexList = new RegexValuesList(xelement.zXPathElements("FilenameDates/FilenameDate"));
            //if (_trace)
            //    Trace.CurrentTrace.WriteLine("_dateRegexList {0}", _dateRegexList.Count);

            _printRegexList = new RegexValuesList();
            _printRegexList2 = new RegexValuesList();
            _prints = new Dictionary<string, Print1>();
            // zElements("Prints/Print")
            foreach (XElement xe in xelement.zXPathElements("Prints/Print"))
            {
                Print1 print = null;
                switch (xe.zXPathValue("Class"))
                {
                    case "LeMonde":
                        print = new LeMonde(xe, _directory, _regexModels);
                        break;
                    case "LeParisien":
                        print = new LeParisien(xe, _directory, _regexModels);
                        break;
                    case "LeVifExpress":
                        print = new LeVifExpress(xe, _directory, _regexModels);
                        break;
                    default:
                        print = new Print1(xe, _directory, _regexModels);
                        break;
                }
                string name = print.Name;
                _prints.Add(name, print);
                int n = 1;
                // zElements("Filenames/Filename")
                foreach (XElement xe2 in xe.zXPathElements("Filenames/Filename"))
                {
                    string key = name + n++.ToString();
                    //string name = xe2.zExplicitAttributeValue("name");
                    //string model = xe2.zExplicitAttributeValue("model");
                    string model = xe2.zAttribValue("model");
                    if (model != null)
                    {
                        if (!regexModels.ContainsKey(model))
                            throw new PBException("unknow filename model \"{0}\"", model);
                        RegexValuesModel rvm = regexModels[model];
                        //Dictionary<string, string> attribs = (from xa in xe2.Attributes() where xa.Name.ToString().StartsWith("v_") select xa).zAttribs();
                        Dictionary<string, string> attribs = new Dictionary<string, string>();
                        attribs.zAdd(from xa in xe2.Attributes() where xa.Name.ToString().StartsWith("v_") select xa);
                        string pattern = rvm.pattern.zSetTextVariables(attribs, true);
                        //Trace.CurrentTrace.WriteLine("\"{0}\" - \"{1}\"", rvm.pattern, pattern);
                        //string values = xe2.zAttribValue("values");
                        //if (values != null)
                        //{
                        //    if (rvm.values != null && rvm.values != "")
                        //        values = rvm.values + ", " + values;
                        //}
                        //else
                        //    values = rvm.values;
                        string values = rvm.values;
                        if (values != null)
                            values = values.zSetTextVariables(attribs, true);
                        _printRegexList.Add(key, new RegexValues(key, name, pattern, rvm.options, values));
                    }
                    else
                    {
                        string regex = xe2.zExplicitAttribValue("regex");
                        string values = xe2.zExplicitAttribValue("values");
                        string options = xe2.zAttribValue("options");
                        _printRegexList.Add(key, new RegexValues(key, name, regex, options, values));
                    }
                }

                n = 1;
                // zElements("Filenames2/Filename")
                foreach (XElement xe2 in xe.zXPathElements("Filenames2/Filename"))
                {
                    string key = name + n++.ToString();
                    string regex = xe2.zExplicitAttribValue("regex");
                    string values = xe2.zAttribValue("values");
                    string options = xe2.zAttribValue("options");
                    _printRegexList2.Add(key, new RegexValues(key, name, regex, options, values));
                }
            }
        }
Example #12
0
        public Print1(XElement xe, string baseDirectory, Dictionary<string, RegexValuesModel> regexModels = null)
        {
            _name = xe.zXPathValue("Name");
            _title = xe.zXPathValue("Title");
            _frequency = GetFrequency(xe.zXPathValue("Frequency"));
            if (_frequency == PrintFrequency.Weekly || _frequency == PrintFrequency.EveryTwoWeek)
                _weekday = zdate.GetDayOfWeek(xe.zXPathValue("Weekday"));
            _directory = xe.zXPathValue("Directory").zRootPath(baseDirectory);
            //if (!Path.IsPathRooted(_directory))
            //    _directory = Path.Combine(baseDirectory, _directory);
            SetOption(xe.zXPathValue("Option"));
            if (!_noDateAndNumberCalculate)
            {
                string dateRef = xe.zXPathValue("DateReference");
                string numberRef = xe.zXPathValue("NumberReference");
                if (dateRef == null && numberRef != null)
                    throw new PBException("error missing reference number \"{0}\"", _name);
                if (dateRef != null && numberRef == null)
                    throw new PBException("error missing reference date \"{0}\"", _name);
                if (dateRef == null)
                    _noDateAndNumberCalculate = true;
                else
                {
                    _refPrintDate = Date.Parse(dateRef);
                    _refPrintNumber = int.Parse(numberRef);
                    GetNoPrintDays(xe.zXPathValues("NoPrintDays/NoPrintDay"));
                    GetNoPrintMonths(xe.zXPathValues("NoPrintMonths/NoPrintMonth"));
                }
            }
            //if (regexModels != null)
            //{
            //    string model;
            //    if (_frequency == PrintFrequency.Daily || _frequency == PrintFrequency.Weekly || _frequency == PrintFrequency.EveryTwoWeek)
            //    {
            //        if (!_noNumber)
            //            model = "name_day_number";
            //        else
            //            model = "name_day";
            //    }
            //    else
            //        model = "name_month_number";
            //    RegexValuesModel rvm = regexModels[model];
            //    Dictionary<string, string> textValues = new Dictionary<string, string>();
            //    textValues.Add("v_title", _title);
            //    XElement xe2 = xe.zXPathElement("NormalizedFilename");
            //    if (xe2 != null)
            //        (from xa in xe2.Attributes() where xa.Name.ToString().StartsWith("v_") select xa).zAttribs(textValues);
            //    string pattern = rvm.pattern.zSetTextValues(textValues, true);
            //    string values = rvm.values.zSetTextValues(textValues, true);
            //    _normalizedFilename = new RegexValues(rvm.key, rvm.name, pattern, rvm.options, values);

            //    if (_specialNoDate)
            //        model = "special_name_number";
            //    else
            //        model = "special_name_month_number";
            //    rvm = regexModels[model];
            //    textValues = new Dictionary<string, string>();
            //    textValues.Add("v_title", _title);
            //    xe2 = xe.zXPathElement("NormalizedSpecialFilename");
            //    if (xe2 != null)
            //        (from xa in xe2.Attributes() where xa.Name.ToString().StartsWith("v_") select xa).zAttribs(textValues);
            //    pattern = rvm.pattern.zSetTextValues(textValues, true);
            //    values = rvm.values.zSetTextValues(textValues, true);
            //    _normalizedSpecialFilename = new RegexValues(rvm.key, rvm.name, pattern, rvm.options, values);
            //}
        }
Example #13
0
        private void init(XElement xelement)
        {
            _directory = xelement.zXPathValue("Directory");

            _regexModels = new Dictionary<string, RegexValuesModel>();
            // zElements("FilenameInfos/FilenameModel")
            foreach (XElement xe in xelement.zXPathElements("FilenameInfos/FilenameModel"))
            {
                RegexValuesModel rvm = new RegexValuesModel(xe);
                _regexModels.Add(rvm.key, rvm);
            }
            // zElements("FilenameInfos/FilenameDate")
            _dateRegexList = new RegexValuesList(xelement.zXPathElements("FilenameInfos/FilenameDate"));

            //XElement xe3 = xelement.zXPathElement("FilenameInfos/FilenameDay");
            //if (xe3 != null)
            //    _dayRegex = new RegexValues(xe3);
            // zElements("FilenameInfos/FilenameDay")
            _dayRegexList = new RegexValuesList(xelement.zXPathElements("FilenameInfos/FilenameDay"));

            // zElements("FilenameInfos/FilenameNumber")
            _numberRegexList = new RegexValuesList(xelement.zXPathElements("FilenameInfos/FilenameNumber"));

            //xe3 = xelement.zXPathElement("FilenameInfos/FilenameSpecial");
            //if (xe3 != null)
            //    _specialRegex = new RegexValues(xe3);
            // zElements("FilenameInfos/FilenameSpecial")
            _specialRegexList = new RegexValuesList(xelement.zXPathElements("FilenameInfos/FilenameSpecial"));

            _printRegexList = new RegexValuesList();
            _prints = new Dictionary<string, Print>();
            // zElements("Prints/Print")
            foreach (XElement xe in xelement.zXPathElements("Prints/Print"))
            {
                Print print = null;
                switch (xe.zXPathValue("Class"))
                {
                    case "LeMonde":
                        print = new PrintLeMonde(xe, _directory, _regexModels);
                        break;
                    case "LeParisien":
                        print = new PrintLeParisien(xe, _directory, _regexModels);
                        break;
                    case "LExpress":
                        print = new PrintLExpress(xe, _directory, _regexModels);
                        break;
                    case "LeVifExpress":
                        print = new PrintLeVifExpress(xe, _directory, _regexModels);
                        break;
                    default:
                        print = new Print(xe, _directory, _regexModels);
                        break;
                }
                string name = print.Name;
                _prints.Add(name, print);
                int n = 1;
                // zElements("Filename")
                foreach (XElement xe2 in xe.zXPathElements("Filename"))
                {
                    string key = name + n++.ToString();
                    string regex = xe2.zExplicitAttribValue("regex");
                    string values = xe2.zAttribValue("values");
                    string options = xe2.zAttribValue("options");
                    _printRegexList.Add(key, new RegexValues(key, name, regex, options, values));
                }
            }
        }
Example #14
0
        private void InitBackup(XElement xe)
        {
            _backup = new Backup();
            //_backupDirectory = xe.zXPathValue("BackupDirectory");
            _backup.TempBackupDirectory = xe.zXPathValue("TempBackupDirectory");
            _backup.BackupDirectory = xe.zXPathValue("BackupDirectory");
            _backup.ZipFilename = xe.zXPathValue("ZipFilename", "BackupAutomate");

            //_backup.Add(dir => MongoBackup.Backup(_mongoDownloadAutomateManager.GetCollection(), dir));
            //_downloadManager.InitBackup(_backup);
            //foreach (ServerManager server in _servers.Values)
            //{
            //    _backup.Add(dir => server.Backup(dir));
            //}
        }
Example #15
0
 public void Init(XElement xe)
 {
     //if (!test)
     //    xe = XmlConfig.CurrentConfig.GetElement("DownloadAutomateManager");
     //else
     //{
     //    Trace.WriteLine("DownloadAutomateManager (v2) init for test");
     //    xe = XmlConfig.CurrentConfig.GetElement("DownloadAutomateManager_Test");
     //}
     _waitTimeBetweenOperation = xe.zXPathValue("WaitTimeBetweenOperation").zTryParseAs(TimeSpan.FromSeconds(5));
     _mailWaitDownloadFinish = xe.zXPathValue("MailWaitDownloadFinish").zTryParseAs(TimeSpan.FromMinutes(10));
     _postDownloadServerLimit = xe.zXPathValue("PostDownloadServerLimit").zTryParseAs(0);
     InitBackup(xe);
 }