Files
bet/main.py

69 lines
2.1 KiB
Python

import pandas as pd
from datetime import datetime
from pytz import timezone
from dao.Database import Database
from data_model import MysqlConfig, OddsJamOrder, OddjamsBet
def generate_oddjams_bet(data: OddsJamOrder):
# 怎么判断一个 oddjam order 是不是下单成功?
bet_name = data.home_bet_name
sport_books = data.home_sportsbooks
if data.away_price > data.away_no_vig_price:
bet_name = data.away_bet_name
sport_books = data.away_sportsbooks
market_name = data.market
sport = data.sport
league = data.league
game_id = data.game_id
notes = data.bet_id
bet_type = 'Normal'
event_name = ''
odds = 110
stake = 1
# 时区转换, mysql 中的 game start date 是 utc 时间?
game_start_date = data.start_date
my_datetime_with_tz = game_start_date.replace(tzinfo=timezone('UTC'))
eastern = timezone('US/Eastern')
eastern_datetime = my_datetime_with_tz.astimezone(eastern)
game_start_date = eastern_datetime.strftime('%m/%d/%Y, %H:%M EDT')
for sport_book in sport_books:
yield OddjamsBet(
Sportsbook=sport_book,
BetName=bet_name,
MarketName=market_name,
Odds=odds,
Stake=stake,
EventName=event_name,
Sport=sport,
League=league,
GameID=game_id,
GameStartDate=game_start_date,
BetType=bet_type,
Notes=notes
)
if __name__ == '__main__':
config_file_path = 'config\mysql_config.json'
mysql_config = MysqlConfig.parse_file(config_file_path)
dao = Database(mysql_config)
# query
select_query = "SELECT * FROM bet.oddsjam_order limit 10;"
raw_data_list = dao.fetchall(query=select_query)
order_data_list = [OddsJamOrder(**data) for data in raw_data_list]
bet_list = []
for order in order_data_list:
bet_list.extend(list(generate_oddjams_bet(order)))
bet_list = [data.model_dump() for data in bet_list]
bet_df = pd.DataFrame(bet_list)
bet_df.to_csv('bet.csv', index=False, encoding='utf-8-sig')