Beispiel #1
0
 //
 #region 最新开奖信息
 private void RefreshLatestOpenData(string html)
 {
     Response.Write("-----最新开奖-----" + "<br/>");
     try
     {
         PK10_List list = new PK10().GetCurrentOpenDataByHtml2(html); //从付费网站,比较快开奖
         if (list != null)
         {
             list.ValidDate = list.Date.AddDays(myValidDays);
             Response.Write("第" + list.No + "期" + "<br/>");
             Response.Write("开奖时间:" + list.EndTime.ToString() + "<br/>");
             Response.Write("开奖号码:" + list.Nums + "<br/>");
             //更新开奖
             string cSave = new PK10().SaveOpenData(list);
             if (cSave == "")
             {
                 new PK10().SetNextGetOpenData(myOpenTimes, mySaleTimes);
             }
             else
             {
                 Response.Write("【更新开奖出错】:" + cSave);
             }
         }
     }
     catch (Exception ex)
     {
         Response.Write("[最新开奖信息]出错:" + ex.Message.Replace("\n", "</br>") + "<br/>");
     }
 }
    //public JNDKL8 getJNDKL8(DateTime dt)
    //{
    //    string url = "http://www.168kai.com/History/HisList?id=10041&date=" + dt.ToString("yyyy-MM-dd") + "&_=0.6148420795228382";
    //    string webresource = getWebresource(url);
    //    if (webresource == "")
    //    {
    //        return null;
    //    }
    //    JNDKL8 jNDKL = JsonConvert.DeserializeObject<JNDKL8>(webresource);
    //    //jNDKL.list.Reverse();
    //    return null;
    //}

    public List <PK10> getPK10(DateTime dt)
    {
        // http://kaijiang.500.com/static/info/kaijiang/xml/bjpkshi/20180508.xml?_A=BYLAPNGF1525816892243
        string url         = "http://kaijiang.500.com/static/info/kaijiang/xml/bjpkshi/" + dt.ToString("yyyyMMdd") + ".xml";
        string webresource = getWebresource(url);

        if (webresource == "")
        {
            return(null);
        }
        // 解析 webresource
        XmlControl xmlControl = new XmlControl();

        xmlControl.LoadXmlString(webresource);
        XmlNodeList xmlNodeList = xmlControl.SelectNodes("row");
        List <PK10> pK10List    = new List <PK10>();

        foreach (XmlNode item in xmlNodeList)
        {
            PK10 pK10 = new PK10();
            pK10.Expect   = int.Parse(item.SelectSingleNode("@expect").Value);
            pK10.Opentime = Convert.ToDateTime(item.SelectSingleNode("@opentime").Value);
            string[]   sArr = item.SelectSingleNode("@opencode").Value.Split(',');
            List <int> list = new List <int>();
            foreach (string item1 in sArr)
            {
                list.Add(int.Parse(item1));
            }
            pK10.ListOpencode = list;
            pK10List.Add(pK10);
        }
        pK10List.Reverse();
        return(pK10List);
    }
    // 从 https://168kai.com/ 获取
    public List <PK10> getPK10_by168kai(DateTime dt)
    {
        // https://api.api68.com/pks/getPksHistoryList.do?lotCode=10001&date=2018-05-01
        string url         = "https://api.api68.com/pks/getPksHistoryList.do?lotCode=10001&date=" + dt.ToString("yyyy-MM-dd");
        string webresource = getWebresource(url);

        if (webresource == "")
        {
            return(null);
        }
        // 解析json  webresource
        JObject jo = (JObject)JsonConvert.DeserializeObject(webresource);

        //Console.WriteLine(jo["errorCode"]);
        //Console.WriteLine(jo["message"]);
        //Console.WriteLine(jo["result"]["businessCode"]);
        //Console.WriteLine(jo["result"]["data"]);
        //Console.WriteLine(jo["result"]["data"][0]["preDrawCode"]);

        if (jo["errorCode"].ToString() != "0" || jo["result"]["businessCode"].ToString() != "0")
        {
            return(null);
        }
        List <PK10> Pk10List = new List <PK10>();

        foreach (JObject item in jo["result"]["data"])
        {
            PK10 pK10 = new PK10();
            pK10.Expect   = int.Parse(item["preDrawIssue"].ToString());
            pK10.Opentime = Convert.ToDateTime(item["preDrawTime"].ToString());
            string[] sArr = item["preDrawCode"].ToString().Split(',');
            if (sArr.Length < 2)
            {
                continue;
            }
            List <int> list = new List <int>();
            foreach (string item1 in sArr)
            {
                list.Add(int.Parse(item1));
            }
            pK10.ListOpencode = list;
            Pk10List.Add(pK10);
        }
        Pk10List.Reverse();
        return(Pk10List);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        _logic       = new PK10();
        GameName     = ub.GetSub("GameName", xmlPath);
        Master.Title = GameName;
        string act = Utils.GetRequest("act", "all", 1, "", "");

        switch (act)
        {
        case "save":
            SaveSetting();
            break;

        default:
            ShowSettings();
            break;
        }
    }
Beispiel #5
0
    private PK10_BuyType GetBuyType() //随机取到购买的类型
    {
        PK10_BuyType buytype = new PK10_BuyType();

        try
        {
            List <PK10_BuyType> lists = new PK10().GetBuyTypes3();
            if (lists != null)
            {
                Random rd = new Random();
                buytype = lists[rd.Next(lists.Count)];
            }
        }
        catch
        {
            buytype = null;
        }
        return(buytype);
    }
Beispiel #6
0
 private void CalcOpenData()
 {
     Response.Write("【派奖计算】" + "<br/>");
     try
     {
         string cFlag = new PK10().CalcOpenData();
         if (cFlag != "")
         {
             Response.Write("[派奖计算]出错:" + cFlag.Replace("\n", "</br>") + "<br/>");
         }
         else
         {
             Response.Write("派奖完成!");
         }
     }
     catch (Exception ex)
     {
         Response.Write("[派奖计算]出错:" + ex.Message.Replace("\n", "</br>") + "<br/>");
     }
 }
Beispiel #7
0
    private void GetLatestOpenDatas(string html, string beginNo)
    {
        Response.Write("-----最近开奖-----" + "<br/>");
        try
        {
            IList <PK10_List> openList = new PK10().GetLatestOpenDataByHtml(html);

            if (openList.Count > 0)
            {
                int beginno = int.Parse(beginNo);
                for (int i = openList.Count - 1; i >= 0; i--)
                {
                    int no = int.Parse(openList[i].No.ToString());
                    if (no >= beginno)//已经读取过的开奖记录,不计算
                    {
                        openList[i].ValidDate = openList[i].Date.AddDays(myValidDays);
                        Response.Write("第" + openList[i].No + "期" + openList[i].Nums + "<br/>");
                    }
                }
            }
            else
            {
                Response.Write("无开奖记录" + "<br/>");
                return;
            }
            //更新最近开奖记录
            string cSave = new PK10().SaveOpenDatas(openList, beginNo);
            if (cSave == "")
            {
                new PK10().SetNextGetOpenData(myOpenTimes, mySaleTimes);
            }
            else
            {
                Response.Write("【更新开奖出错】:" + cSave);
            }
        }
        catch (Exception ex)
        {
            Response.Write("[最近开奖记录]出错:" + ex.Message.Replace("\n", "</br>") + "<br/>");
        }
    }
Beispiel #8
0
    protected int defaultOpenTimes    = 179;        //每人销售的期数
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string   GameName = ub.GetSub("GameName", xmlPath);
            DateTime GameBeginTime, GameEndTime, CurrentTime;
            int      GameOpenTimes, SaleTimes, OpenTimes, ValidDays;
            int      StopSec  = defaultStopSec;
            bool     AutoCalc = false;
            #region 读取配置项,并初始化变量
            try
            {
                int.TryParse(ub.GetSub("StopSaleSec", xmlPath), out StopSec);
                if (StopSec <= defaultStopSecMin)
                {
                    StopSec = defaultStopSec;
                }
                //
                string ct1 = ub.GetSub("GameBeginTime", xmlPath);
                string ct2 = ub.GetSub("GameEndTime", xmlPath);
                GameBeginTime = Convert.ToDateTime(ct1);
                GameEndTime   = Convert.ToDateTime(ct2);
                CurrentTime   = DateTime.Now;
                GameOpenTimes = int.Parse(ub.GetSub("GameOpenTimes", xmlPath)); //游戏每天开奖期数
                SaleTimes     = int.Parse(ub.GetSub("SaleTimes", xmlPath));     //每期游戏开售分钟数
                OpenTimes     = int.Parse(ub.GetSub("OpenTimes", xmlPath));     //每期游戏开奖分钟数(在上期停售后N秒后开奖)
                ValidDays     = int.Parse(ub.GetSub("ValidDays", xmlPath));     //当期的兑奖有效日期天数
                myOpenTimes   = OpenTimes;
                mySaleTimes   = SaleTimes;
                myValidDays   = ValidDays;
                int autocalc = int.Parse(ub.GetSub("AutoCalc", xmlPath));
                if (autocalc == 1)
                {
                    AutoCalc = true;
                }
            }
            catch (Exception ex)
            {
                Response.Write("error1“读取配置项并初始化变量”出错!!!" + "</br>");
                Response.Write(ex.Message.Replace("\n", "</br>"));
                return;
            }
            #endregion
            Response.Write("PK10每天的销售时间为" + GameBeginTime.ToShortTimeString() + "至" + GameEndTime.ToShortTimeString() + ",每" + SaleTimes.ToString() + "分钟一期,每天" + GameOpenTimes.ToString().Trim() + "期" + "<br/>");
            //
            PK10_Base _base = new PK10().GetSaleBase();
            #region 判断是否已有初始化(tb_PK10_Base表添加一行ID=0的记录)
            if (_base == null)
            {
                Response.Write("ok1 没有初始化游戏数据" + "<br/>");
                return;
            }
            #endregion

            if (_base.CurrentSaleDate < DateTime.Parse(CurrentTime.ToShortDateString()))
            {
                int newNo = new PK10().GetTodayFistCreateNo();
                if (newNo > 0)
                {
                    #region 初始化新的一天数据
                    //新的一天,从网页抓取正在开售的期
                    Response.Write("初始化新的一天数据...." + "<br/>");
                    string    html = new PK10().GetHtmlByURL();
                    PK10_List list = new PK10().GetCurrentSaleDataByHtml(html);
                    if (list != null)
                    {
                        //初始化当天销售数据(生成将要开售的期号)
                        string cInitFlag = new PK10().InitSaleData(GameBeginTime, newNo, mySaleTimes, myValidDays, GameOpenTimes, StopSec);
                        if (cInitFlag == "")
                        {
                            GetLatestOpenDatas(html, "0");//获取当天已经开奖的数据(补填当天的销售记录)(从百度彩票抓,可以抓到整日的数据)
                        }
                        else
                        {
                            Response.Write("error1 :初始化当天销售数据失败!" + "<br/>");
                        }
                    }
                    else
                    {
                        Response.Write("error1 :抓取网页数据失败!" + "<br/>");
                    }
                    #endregion
                }
                else
                {
                    Response.Write("error1“数据隔了1天以上没抓取过,请先设置今天的开始期号!”" + "</br>");
                    //向上一天插入一跳最后一期的记录,例如:insert into tb_PK10_List(No,date) values('584063','2016-10-30'),不用设置begintime,endtime等。
                }
                return;
            }
            else
            {
                Response.Write("<a href =\"" + Utils.getPage("PK10Get.aspx" + "?act=getall") + "\">" + "手动抓取最近所有开奖数据" + "</a><br/>");
                Response.Write("<a href =\"" + Utils.getPage("PK10Get.aspx") + "\">" + "自动抓取开奖数据" + "</a><br/>");
                Response.Write("<br/>");
                string act = Utils.GetRequest("act", "get", 1, "", "");
                if (act == "getall")
                {
                    Response.Write("【手动抓取最近所有开奖数据...】" + " <br/>");
                    string html = new PK10().GetHtmlByURL();
                    RefreshLatestOpenData(html);
                    GetLatestOpenDatas(html, "0"); //(从百度彩票抓,可以抓到整日的数据)
                }
                else
                {
                    Response.Write("【自动抓取第" + _base.GetOpenDataNo.ToString() + "期】" + "<br/>");
                    #region 读取开奖记录
                    if (CurrentTime < _base.GetOpenDataBeginTime) //未到公布开奖时间
                    {
                        Response.Write("等待开奖公布..." + "<br/>");
                    }
                    else
                    {
                        if (CurrentTime <= _base.GetOpenDataEndTime) //处于本期公布开奖时间,读取开奖记录,并重置下次读取的时间段
                        {
                            string html = new PK10().GetHtmlByURL2();
                            RefreshLatestOpenData(html);
                        }
                        else //超过指定的开奖公布时间,读取最新开奖记录,并重置下次读取的时间段;然后读取已开奖的记录更新开奖(刷新机可能停止运作了一段长的时间)
                        {
                            string html = new PK10().GetHtmlByURL2();
                            RefreshLatestOpenData(html);
                            html = new PK10().GetHtmlByURL();
                            GetLatestOpenDatas(html, _base.GetOpenDataNo); //(从百度彩票抓,可以抓到整日的数据)
                        }
                    }
                    #endregion
                }
            }
            if (AutoCalc)
            {
                CalcOpenData(); //派奖计算
            }
            Response.Write("ok1");
        }
        catch (Exception ex)
        {
            Response.Write("error1" + "<br/>" + ex.Message);
            return;
        }
    }
Beispiel #9
0
    private void CreateBuyNums(PK10_Buy buy, PK10_BuyType buytype)//生成号码组号
    {
        string strAll   = "01,02,03,04,05,06,07,08,09,10";
        string newNums  = "";
        int    nums     = buytype.NumsCount;
        int    parentid = buytype.ParentID;

        switch (parentid)
        {
        case 1:
            #region 号码买法
            if (buy.NumType == 0)    //单式,例子(直选前三):02|04|03
            {
                #region 直接生成号码组号
                newNums        = CreateRandomString(null, strAll, nums, "");
                newNums        = newNums.Replace(',', '|');
                buy.Nums       = newNums;
                buy.NumsDetail = newNums;
                buy.BuyCount   = 1;
                #endregion
            }
            else     //复式,例子(前三复式):02,03|03,05,06|09
            {
                #region 生成号码组号
                Random rd0 = new Random();
                Random rd1 = new Random();
                for (int i = 0; i < nums; i++)
                {
                    int    randNums = rd0.Next(1, 3);
                    string result   = CreateRandomString(rd1, strAll, randNums, "");   //随机选择几个数字(机器人复式的每一位最多为3个号码)
                    if (i == 0)
                    {
                        newNums = result;
                    }
                    else
                    {
                        newNums += "|" + result;
                    }
                }
                buy.Nums = newNums;
                #endregion
                #region 拆分复式成每一注有效的单式号码,并变换成字符串格式,例猜前二位:01|02#01|03#01#04
                List <string> list = new PK10().GenBuyNums(newNums, buytype.NumsCount);
                buy.BuyCount = list.Count;
                if (list.Count > 0)
                {
                    string details = "";
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (i == 0)
                        {
                            details = list[i];
                        }
                        else
                        {
                            details += "#" + list[i];
                        }
                        Response.Write(list[i] + " </br>");
                    }
                    buy.NumsDetail = details;
                }
                #endregion
            }
            #endregion
            break;

        case 2:                                   //大小玩法
        case 3:                                   //单双玩法
        case 4:                                   //龙虎玩法
            #region 大小/单双/龙虎玩法
            int ntype = new Random().Next(1, 10); //用Random().Next(0,1)总返回0;
            newNums        = (ntype > 5) ? "1" : "0";
            buy.Nums       = newNums;
            buy.NumsDetail = newNums;
            buy.BuyCount   = 1;
            #endregion
            break;

        case 5:    //任选
            #region 直接生成号码组号
            newNums        = CreateRandomString(null, strAll, nums, "");
            newNums        = newNums.Replace(',', '|');
            buy.Nums       = newNums;
            buy.NumsDetail = newNums;
            buy.BuyCount   = 1;
            #endregion
            break;

        case 6:
            #region 冠亚军玩法
            switch (buytype.Type)
            {
            case 2:                                        //和值大小
            case 3:                                        //和值单双
                #region
                ntype          = new Random().Next(1, 10); //用Random().Next(0,1)总返回0;
                newNums        = (ntype > 5) ? "1" : "0";
                buy.Nums       = newNums;
                buy.NumsDetail = newNums;
                buy.BuyCount   = 1;
                #endregion
                break;

            default:         //和值
                #region 直接生成号码组号
                strAll         = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19";
                newNums        = CreateRandomString(null, strAll, nums, "");
                newNums        = newNums.Replace(',', '|');
                buy.Nums       = newNums;
                buy.NumsDetail = newNums;
                buy.BuyCount   = 1;
                #endregion
                break;
            }
            #endregion
            break;
        }
    }
Beispiel #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            _logic = new PK10();
            string   GameName = ub.GetSub("GameName", xmlPath);
            DateTime GameBeginTime, GameEndTime, CurrentTime;
            int      GameOpenTimes, SaleTimes, OpenTimes, isRobot;
            string   Robots;
            #region 读取配置项,并初始化变量
            try
            {
                #region 游戏状态判断
                string GameStatus = ub.GetSub("GameStatus", xmlPath);
                switch (GameStatus)
                {
                case "1":     //维护
                    Utils.Safe(GameName);
                    break;

                case "2":    //内测(PK币)
                case "3":    //公测(PK币)
                    myIsTest = 1;
                    break;

                case "4":    //内测(酷币)
                    myIsTest = 0;
                    break;

                default:      //正常
                    myIsTest = 0;
                    break;
                }
                #endregion
                string ct1 = ub.GetSub("GameBeginTime", xmlPath);
                string ct2 = ub.GetSub("GameEndTime", xmlPath);
                GameBeginTime = Convert.ToDateTime(ct1);
                GameEndTime   = Convert.ToDateTime(ct2);
                CurrentTime   = DateTime.Now;
                GameOpenTimes = int.Parse(ub.GetSub("GameOpenTimes", xmlPath)); //游戏每天开奖期数
                SaleTimes     = int.Parse(ub.GetSub("SaleTimes", xmlPath));     //每期游戏开售分钟数
                OpenTimes     = int.Parse(ub.GetSub("OpenTimes", xmlPath));     //每期游戏开奖分钟数(在上期停售后N分钟后开奖)
                isRobot       = int.Parse(ub.GetSub("isRobot", xmlPath));       //是否启用机器人的标志
                Robots        = ub.GetSub("Robots", xmlPath);                   //机器人列表
                myIsRobot     = (isRobot == 1) ? true : false;
                myRobots      = Robots;
                myMinPayPrice = int.Parse(ub.GetSub("MinPayPrice", xmlPath)); //游戏最小下注单价
                myMaxPayPrice = int.Parse(ub.GetSub("MaxPayPrice", xmlPath)); //游戏最大下注单价
            }
            catch (Exception ex)
            {
                Response.Write("eror1:“读取配置项并初始化变量”出错!!!" + "</br>");
                Response.Write(ex.Message.Replace("\n", "</br>"));
                return;
            }
            #endregion
            Response.Write("PK10每天的销售时间为" + GameBeginTime.ToShortTimeString() + "至" + GameEndTime.ToShortTimeString() + ",每" + SaleTimes.ToString() + "分钟一期,每天" + GameOpenTimes.ToString().Trim() + "期" + "<br/>");
            if (!myIsRobot)
            {
                Response.Write("close1:" + "没设置开启机器人!");
                return;
            }
            #region 排除非销售时间
            //if (CurrentTime < GameBeginTime || CurrentTime > GameEndTime.AddMinutes(SaleTimes))
            //{
            //    Response.Write("ok1:" + "非销售时间!");
            //    return;
            //}
            #endregion
            #region 机器人下注、兑奖
            try
            {
                Response.Write("机器人...下注!" + "</br>");
                OpenRobot();
                Response.Write("ok1");
            }
            catch (Exception ex)
            {
                Response.Write("error1:“机器人下注、兑奖”出错!!!" + "</br>");
                Response.Write(ex.Message.Replace("\n", "</br>"));
                return;
            }
            #endregion
        }
        catch
        {
            Response.Write("error1");
        }
    }
Beispiel #11
0
    private void OpenRobot()
    {
        #region 取到机器人
        int RobotID = GetRobot();
        if (RobotID == 0)
        {
            Response.Write("没有可用的机器人!!!" + "</br>");
            return;
        }
        string RobotName = new BCW.BLL.User().GetUsName(RobotID);
        #endregion

        #region 更新机器人在线时间
        try
        {
            new BCW.BLL.User().UpdateTime(RobotID, 5);
        }
        catch { }
        #endregion
        //
        #region  注
        PK10_List list = new PK10().GetCurrentSaleData();//取到可下注的期号记录
        if (list == null)
        {
            Response.Write("没有开售记录!" + "</br>");
        }
        else
        {
            PK10_Stutas status = new PK10().GetListStatus(list);
            if (status != PK10_Stutas.在售)
            {
                Response.Write("没有开售记录!" + "</br>");
            }
            else
            {
                Response.Write("第" + list.No.Trim() + "期" + "</br>");
                #region  注
                PK10_Buy buy = CreateBuy(RobotID, RobotName, list);//生成购买记录
                if (buy == null)
                {
                    Response.Write("不能生成购买记录!" + "</br>");
                }
                else
                {
                    Response.Write(buy.BuyDescript + ",每注下:" + buy.BuyPrice.ToString().Trim() + "</br>");
                    #region 付款
                    string cPay = new PK10().Pay(buy, Utils.getPageUrl());
                    if (string.IsNullOrEmpty(cPay))
                    {
                        Response.Write("成功付款!" + "</br>");
                    }
                    else
                    {
                        Response.Write("付款失败...." + "</br>");
                        Response.Write(cPay.Replace("\n", "</br>") + "</br>");
                    }
                    #endregion
                }
                #endregion
            }
        }
        #endregion
        //
        #region 兑奖
        string caseFlag = _logic.CaseRobot(Utils.getPageUrl());
        if (caseFlag == "")
        {
            Response.Write("成功兑奖!" + "</br>");
        }
        else
        {
            Response.Write("兑奖失败...." + "</br>");
            Response.Write(caseFlag.Replace("\n", "</br>") + "</br>");
        }
        #endregion
    }