예제 #1
0
 //  分配SeasonTable任务
 public void SeasonTableAssignTask(BRBaseParam param, Dictionary <string, List <string> > taskDic)
 {
     foreach (var kv in taskDic)
     {
         if (kv.Key == "add")
         {
             kv.Value.ForEach(o =>
             {
                 SeasonTableParam st = param.CopyCreateParam <SeasonTableParam>();
                 st.SeasonTypeId     = "21";
                 st.TableId          = o;
                 LeagueManager.AddOrUpdateParam(st);
             });
         }
         else
         {
             kv.Value.ForEach(o =>
             {
                 SeasonTableParam st = param.CopyCreateParam <SeasonTableParam>();
                 st.SeasonTypeId     = "21";
                 st.TableId          = o;
                 LeagueManager.RemoveParam(st);
             });
         }
     }
 }
예제 #2
0
 public void CheckSetHistoryParam(BRBaseParam param)
 {
     if (param.IsHistoryParam)
     {
         param.IsHistoryComplete = true;
     }
 }
예제 #3
0
 //  分配SeasonType任务
 public void SeasonTypeAssignTask(BRBaseParam param, Dictionary <string, List <string> > taskDic)
 {
     //  更新SeasonType任务,除了21类型,将在后面添加,因为需要tableId参数
     foreach (var kv in taskDic)
     {
         if (kv.Key == "add")
         {
             kv.Value.ForEach(o =>
             {
                 SeasonTypeParam st = param.CopyCreateParam <SeasonTypeParam>();
                 st.SeasonTypeId    = o;
                 if (o != "21")
                 {
                     LeagueManager.AddOrUpdateParam(st);
                 }
             });
         }
         else
         {
             kv.Value.ForEach(o =>
             {
                 SeasonTypeParam st = param.CopyCreateParam <SeasonTypeParam>();
                 st.SeasonTypeId    = o;
                 LeagueManager.RemoveParam(st);
             });
         }
     }
 }
예제 #4
0
        public override void ProcessData(BaseData data)
        {
            BRBaseParam param = data.Param as BRBaseParam;
            BRData      bd    = data as BRData;

            var handle = HandleFactory.CreateHandle(param.HandleType);

            handle.Process(bd);
        }
예제 #5
0
        public override void ExecuteTask(BaseParam param)
        {
            BRBaseParam bp = param as BRBaseParam;

            var url = bp.GetUrl();

            var html = RequestPage(url);

            BRData data = new BRData()
            {
                Param = param, Html = html
            };

            EnQueueData(data);
        }
예제 #6
0
        public override void ExecuteTask(BaseParam baseParam)
        {
            BRBaseParam bp = baseParam as BRBaseParam;

            var url = bp.GetUrl();

            var html = RequestPage(url);

            BRData data = new BRData()
            {
                Param = baseParam, Html = html
            };

            EnQueueData(data);

            //  测试调整请求间隔时间
            //IntervalsTime = 5 * 1000;

            //  最佳射手不需要请求数据,可以根据球员参赛记录加上最佳名单的点球数生成最佳射手名单
        }
예제 #7
0
        private void ProcessTeamIdsTxt(BRBaseParam param, string txt)
        {
            var xml       = new XmlHelper(txt);
            var cdataFlag = "//c";
            var cdata     = xml.GetValues(cdataFlag);

            //  获取赛季名称
            var title      = xml.GetAttributeValue("//page", "title");
            var seasonName = title.Split('>').Last();

            SeasonEntity currentSeasonEntity = new SeasonEntity();

            currentSeasonEntity.SportId    = param.SportId;
            currentSeasonEntity.SeasonId   = param.SeasonId;
            currentSeasonEntity.SeasonName = seasonName;
            var se = SeasonEntityManager.AddOrGetCacheEntity <SeasonEntity>(param.SeasonId);

            se.CompareSetSeasonInfo(currentSeasonEntity);

            //  获取赛季teamIds
            var root = GetHtmlRoot(cdata[1]);
            var ul   = root.SelectSingleNode("//ul[@class='slickselect']");

            if (ul == null || ul.ChildNodes == null)
            {
                return;
            }

            List <string> teamIdList = new List <string>();

            foreach (var li in ul.ChildNodes)
            {
                var teamId = RegexGetStr(li.OuterHtml, "teamid','", "',");
                teamIdList.Add(teamId);
            }
            var dic = se.CompareSetTeamIdList(teamIdList);

            TeamAssignTask(param, dic);
        }
예제 #8
0
 //  分配Team任务
 private void TeamAssignTask(BRBaseParam param, Dictionary <string, List <string> > taskDic)
 {
     foreach (var kv in taskDic)
     {
         if (kv.Key == "add")
         {
             kv.Value.ForEach(o =>
             {
                 TeamParam tp = param.CopyCreateParam <TeamParam>();
                 tp.TeamId    = o;
                 TeamManager.AddOrUpdateParam(tp);
             });
         }
         else
         {
             kv.Value.ForEach(o =>
             {
                 TeamParam tp = param.CopyCreateParam <TeamParam>();
                 tp.TeamId    = o;
                 TeamManager.RemoveParam(tp);
             });
         }
     }
 }
예제 #9
0
        private void ProcessTableIdsTxt(BRBaseParam param, string txt)
        {
            var xml       = new XmlHelper(txt);
            var cdataFlag = "//c";
            var cdata     = xml.GetValues(cdataFlag);
            //  解析SeasonType
            var root = GetHtmlRoot(cdata[1]);
            var ul   = root.SelectSingleNode("//ul[@class='navtabs gismo']");

            if (ul == null || ul.ChildNodes == null)
            {
                return;
            }

            List <string> list = new List <string>();

            foreach (var li in ul.ChildNodes)
            {
                var seasonTypeId   = RegexGetStr(li.OuterHtml, "seasontypeid','", "',");
                var seasonTypeName = li.InnerText;
                if (!string.IsNullOrEmpty(seasonTypeId))
                {
                    var sti = SeasonTypeInfoManager.AddOrGetCacheEntity <SeasonTypeInfo>(param.SeasonId + "_" + seasonTypeId);
                    sti.CompareSet(new SeasonTypeInfo()
                    {
                        SeasonId = param.SeasonId, SeasonType = seasonTypeId, Name = seasonTypeName
                    });
                    list.Add(seasonTypeId);
                }
            }
            var se  = SeasonEntityManager.AddOrGetCacheEntity <SeasonEntity>(param.SeasonId);
            var dic = se.CompareSetSeasonTypeList(list);
            //  SeasonTypeAssignTask(param, dic);   除了type=21外的其他类型无需要的数据暂时不用请求处理

            //  解析21类型即分组信息,并添加任务
            var tableData = GetDataLikeKey(cdata, "template_cornerbox template_First");

            if (string.IsNullOrEmpty(tableData))
            {
                return;
            }

            root = GetHtmlRoot(tableData);
            var tableIdList = new List <string>();
            var h2s         = root.SelectNodes("//div[@class='multiview_wrap']/h2");

            if (h2s == null)
            {
                return;
            }

            foreach (var h2 in h2s)
            {
                var tableId = RegexGetStr(h2.InnerHtml, "tableid','", "',");
                tableIdList.Add(tableId);
            }
            var st = SeasonTypeInfoManager.AddOrGetCacheEntity <SeasonTypeInfo>(param.SeasonId + "_" + "21");

            dic = st.CompareSetTabelIdList(tableIdList);
            SeasonTableAssignTask(param, dic);
        }