示例#1
0
        private static bool CheckExistence(DbSession session, Guid spiderId, EGrabType grabType, string issueName)
        {
            var query = IORMProvider.GetDbQueryBuilder(session).SelectBuilder;

            query.ComponentSelect.Add(new ComponentValueOfSelect("1"));
            query.ComponentWhere.Add(new ComponentValueOfWhere(TGrabRequestProperties.SpiderId, spiderId, LocateType.Equal));
            query.ComponentWhere.Add(new ComponentValueOfWhere(TGrabRequestProperties.GrabType, grabType, LocateType.Equal));
            query.ComponentWhere.Add(new ComponentValueOfWhere(TGrabRequestProperties.IssueName, issueName, LocateType.Equal));
            var result = IORMProvider.GetQueryOperator(session).SelectAsInt <TGrabRequest>(session, query);

            return(result != null);
        }
示例#2
0
 public CreateGrabRequestResult Create(DbSession session, Guid spiderId, EGrabType grabType, string issueName, string spiderName)
 {
     if (CheckExistence(session, spiderId, grabType, issueName))
     {
         return(CreateGrabRequestResult.Existed);
     }
     RequestId     = Guid.NewGuid();
     SpiderId      = spiderId;
     GrabType      = grabType;
     IssueName     = issueName;
     SpiderName    = spiderName;
     ProcessStatus = EProcessStatus.Ready;
     Message       = "";
     return(this.DbInsert(session) ? CreateGrabRequestResult.Success : CreateGrabRequestResult.DbOperationFailed);
 }
示例#3
0
        public static IGrabConfig GetGrabConfig(XElement element, ConfigOfSpider spiderConfig)
        {
            EGrabType grabType = (EGrabType)Enum.Parse(typeof(EGrabType), element.Attribute(nameof(EGrabType)).Value);

            switch (grabType)
            {
            case EGrabType.File:
                return(new GrabConfigOfFile(spiderConfig, element));

            case EGrabType.StaticList:
                return(new GrabConfigOfStaticList(element, spiderConfig));

            case EGrabType.DynamicList:
                return(new GrabConfigOfDynamicList(element, spiderConfig));

            default:
                throw new NotImplementedException("暂未实现该类型的抓取配置" + grabType);
            }
        }
示例#4
0
        public static IGrabConfig GetGrabConfig(EGrabType grabType, ConfigOfSpider spiderConfig)
        {
            switch (grabType)
            {
            case EGrabType.File:
                return(new GrabConfigOfFile(spiderConfig));

            case EGrabType.StaticList:
                return(new GrabConfigOfStaticList(spiderConfig));

            case EGrabType.DynamicList:
                return(new GrabConfigOfDynamicList(spiderConfig));

            case EGrabType.Detail:
                return(new GrabConfigOfDetail(spiderConfig));

            default:
                throw new NotImplementedException("暂未实现该类型的抓取配置" + grabType);
            }
        }
示例#5
0
        private void SetDetailForGrabConfig(object sender, RoutedEventArgs e)
        {
            string    type       = (e.OriginalSource as Button).Content.ToString();
            EGrabType grabType   = (EGrabType)Enum.Parse(typeof(EGrabType), type);
            var       grabConfig = SpiderManager.CurrentConfigOfSpider.GrabConfigs.FirstOrDefault(c => c.GetGrabType() == grabType);

            switch (grabType)
            {
            case EGrabType.File:
                new GrabManageOfFileGrab(this, SpiderManager, grabConfig == null ? new GrabConfigOfFile(SpiderManager.CurrentConfigOfSpider) : grabConfig as GrabConfigOfFile).Show();
                break;

            case EGrabType.StaticList:
                new GrabManageOfSListContent(this, SpiderManager, grabConfig == null ? new GrabConfigOfStaticList(SpiderManager.CurrentConfigOfSpider) : grabConfig as GrabConfigOfStaticList).Show();
                break;

            case EGrabType.Detail:
            case EGrabType.DynamicList:
            default:
                MessageBox.Show("未实现该类型的编辑窗口");
                break;
            }
        }
示例#6
0
 public TGrabRequest(Guid spiderId, EGrabType grabType, String issueName)
 {
     SpiderId  = spiderId;
     GrabType  = grabType;
     IssueName = issueName;
 }