From 5508c65d0d051eaa0590bcbd16cdb7f6eb381f66 Mon Sep 17 00:00:00 2001 From: aszerW Date: Sun, 11 Aug 2024 18:46:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=8EMySQL=20bet.oddsjam=5Forder=20?= =?UTF-8?q?=E4=B8=AD=E8=AF=BB=E6=95=B0=E6=8D=AE=E6=9E=84=E9=80=A0=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=20oddjam=20bet=20=E4=B8=8A=E4=BC=A0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..bbb9c09 --- /dev/null +++ b/main.py @@ -0,0 +1,68 @@ + +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')