import json

# 假设数据文件名为 'betting_data.txt',每行为一个时间戳和JSON数据
file_path = '分析开奖记录.log'

index = 0
total_payout_by_bet_odd = 0
total_payout_by_settle = 0
bet_101 = 0
bet_102 = 0
options_pay_out = {}


def process_settle(key, data):
    global total_payout_by_settle, total_payout_by_bet_odd
    player_settle = data["playerSettle"]
    for player in player_settle:
        total_payout_by_settle += player["totalWinAmount"]

    other_players = data["otherPlayers"]
    total_payout_by_settle += other_players["totalWinAmount"]

    # 开奖结果
    for result in data["optionResult"]:
        if result["result"] == 1:
            total_payout_by_bet_odd += options_pay_out[result["option"]]


def compare_obb_and_settle(key, data):
    global total_payout_by_settle, total_payout_by_bet_odd
    diff_value = (total_payout_by_settle - total_payout_by_bet_odd) / 100
    diff_value = round(diff_value, 2)
    if diff_value != 0:
        print(
            f"{key} odd结果:{total_payout_by_bet_odd} 开奖结果:{total_payout_by_settle} 差值:{diff_value}¥ 数值不同不予计入")
    else:
        # print(f"{key} odd结果:{total_payout_by_bet_odd} 开奖结果:{total_payout_by_settle} 差值:{diff_value}¥")
        pass


def clear():
    global bet_101, bet_102, total_payout_by_bet_odd, total_payout_by_settle
    bet_101 = 0
    bet_102 = 0
    total_payout_by_bet_odd = 0
    total_payout_by_settle = 0
    options_pay_out.clear()


def parse_data_from_file(file_path):
    global index
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            # print(line)
            line_strip = line.strip()
            line_strip = line_strip.replace("'", '"')
            line_strip = line_strip.replace("False", "false")
            line_strip = line_strip.replace("True", "true")
            timestamp = line_strip[:19]
            json_data = line_strip[20:]
            key = timestamp

            data = json.loads(json_data)
            if index % 2 == 0:
                process_obb(key, data)
            else:
                process_settle(key, data)
                compare_obb_and_settle(key, data)
                clear()
            index += 1


def process_obb(key, data):
    global total_payout_by_bet_odd, bet_101, bet_102
    for item in data.values():
        option_ = item["option"]
        odds_ = item["odds"]
        bet_ = item["total_bet"]
        odds__bet_ = odds_ * bet_
        options_pay_out[option_] = round(odds__bet_, 2)
        if option_ == 101:
            bet_101 = bet_
        elif option_ == 102:
            bet_102 = bet_
        elif option_ == 103:
            options_pay_out[option_] = bet_101 + bet_102


# 开始解析文件
if __name__ == '__main__':
    parse_data_from_file(file_path)