一个查询双色球是否中奖的小程序

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
回复
头像
bcsflilong
帖子: 382
注册时间: 2010-07-24 15:18
系统: Arch Linux x86_x86_6
来自: 吉林省长春市
联系:

一个查询双色球是否中奖的小程序

#1

帖子 bcsflilong » 2019-02-20 15:30

直接查询中奖结果
是用go写的 源码如下

代码: 全选

// lottery project main.go
package main

import (
	"encoding/json"
	"flag"
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
)

const (
	key        = "××××××" //建议自己申请一个key
	lottery_id = "ssq"
)

func main() {
	lotteryNum := []string{}
	var src string
	flag.StringVar(&src, "n", "", "eg:03,06,12,18,21,27,03 查询:lottery -n 03,06,12,18,21,27@03 ")
	flag.Parse()
	flag.Usage()
	showEmail := false
	if src != "" {
		fmt.Println("查询自定义号码", src)
		lotteryNum = []string{src}
	} else {
		fmt.Println("执行默认号码")
		showEmail = true
		lotteryNum = []string{"03,06,12,18,21,27@03", "01,05,07,12,23,25@03"}
	}
	fmt.Println("======================================================================")
	//return
	for index, value := range lotteryNum {

		jsonStr := queryLotteryResult(value)

		var dataMap map[string]interface{}

		if err := json.Unmarshal([]byte(jsonStr), &dataMap); err != nil {
			fmt.Println(err)
		}
		fmt.Println(dataMap)
		result, ok := dataMap["result"]
		//fmt.Println(result)
		if ok == true {
			if result == nil {
				fmt.Println("查询失败")
			} else {

				isPrize := result.(map[string]interface{})["is_prize"]
				realRes := result.(map[string]interface{})["real_lottery_res"]
				lotteryDate := result.(map[string]interface{})["lottery_date"]
				fmt.Println("开奖时间:", lotteryDate)
				fmt.Println("当期中奖号码:", realRes)

				if v := isPrize.(string); v == "0" {
					fmt.Printf("查询第%d个号码[%s],结果:%s \n", index+1, value, "未中奖")
				} else {
					fmt.Printf("查询第%d个号码[%s],结果:%s \n", index+1, value, "中奖")
					prizeResult := result.(map[string]interface{})["lottery_prize"]
					//fmt.Println(prizeResult)

					for _, value := range prizeResult.([]interface{}) {
						name := value.(map[string]interface{})["prize_name"]
						money := value.(map[string]interface{})["prize_money"]

						fmt.Printf("中%s ,金额%s \n", name, money)
						if showEmail {
							fmt.Println("如果你不是作者本人,但看到此消息,请给我发个邮件吧,bcsflilong@yeah.net")
						}

					}

				}

			}
		} else {
			fmt.Println("不能取值")
		}
		fmt.Println("======================================================================")
	}

}
func queryLotteryResult(lotteryNum string) (reslut string) {
	clusterinfo := url.Values{}
	clusterinfo.Add("key", key)
	clusterinfo.Add("lottery_id", lottery_id)
	clusterinfo.Add("lottery_res", lotteryNum)

	resp, err := http.PostForm("http://apis.juhe.cn/lottery/bonus", clusterinfo)
	if err != nil {
		fmt.Println("请求错误", err)
	}
	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("解析错误", err)
	}
	//fmt.Println(string(body))

	return string(body)
}
附件
lottery.tar.gz
(3.07 MiB) 已下载 154 次
life's a struggle
回复