def get_winning_data(begin_date, end_date): ## ========== GET DATA FROM WEBSITE ========== ## date_begin = begin_date date_end = end_date print "Parsing data from " + date_begin + " to " + date_end raw_data = get_data(date_begin, date_end) ## ========== CONVERT RAW DATA INTO USABLE FORM ==========## combined_data = combine(raw_data) #combine separated data for one number into one element i24 = num_cat_sort_module.get_i24(combined_data) i12 = num_cat_sort_module.get_i12(combined_data) i6 = num_cat_sort_module.get_i6(combined_data) i4 = num_cat_sort_module.get_i4(combined_data) #separate combined_data into respective num_cat i24_num = [] for each in i24: i24_num.append(each[0]) i12_num = [] for each in i12: i12_num.append(each[0]) i6_num = [] for each in i6: i6_num.append(each[0]) i4_num = [] for each in i4: i4_num.append(each[0]) # we extract 4D number from each num_cat i24_winnings = analyze_num_bought(i24_num[20:30]) i12_winnings = analyze_num_bought(i12_num[:10]) i6_winnings = analyze_num_bought(i6_num[:10]) i4_winnings = analyze_num_bought(i4_num[:10]) #put each num_cat into calculator to get #[total_winning, draw_count, sorted_num_hit] return [i24_winnings,i12_winnings,i6_winnings,i4_winnings]
result_2m_raw = get_data("2015/07/01", "2015/07/31") print "result_1m : 2015/08/01 to 2015/08/31\n" result_1m_raw = get_data("2015/08/01", "2015/08/31") result_raw = [result_24m_raw,result_23m_raw,result_22m_raw,result_21m_raw,result_20m_raw, result_19m_raw,result_18m_raw,result_17m_raw,result_16m_raw,result_15m_raw, result_14m_raw,result_13m_raw,result_12m_raw,result_11m_raw,result_10m_raw, result_9m_raw,result_8m_raw,result_7m_raw,result_6m_raw,result_5m_raw, result_4m_raw,result_3m_raw,result_2m_raw,result_1m_raw] ## ===== Number Analysis ===== ## result_combined = [] for each in result_raw: new = combine(each) result_combined.append(new) ## each num cat gets its own list i24 = [] for each in result_combined: new = num_cat_sort_module.get_i24(each) i24.append(new) i12 = [] for each in result_combined: new = num_cat_sort_module.get_i12(each) i12.append(new) i6 = [] for each in result_combined: new = num_cat_sort_module.get_i6(each) i6.append(new)
def analyze_num_bought(num_bought): ## ========== WEB PARSING STAGE ========== ## start = "2015/08/01" end = "2015/08/31" print "Getting winnings data: " + start + " - " + end raw_result = get_data(start, end) combined_result = combine(raw_result) i24 = num_cat_sort_module.get_i24(combined_result) i12 = num_cat_sort_module.get_i12(combined_result) i6 = num_cat_sort_module.get_i6(combined_result) i4 = num_cat_sort_module.get_i4(combined_result) ## ========== CALCULATE THE NUM OF DRAW WITHIN STIPULATED RANGE ==========# draw_count = 0 for each_draw in combined_result: draw_count += each_draw[3] ## ========== GET WINNING FOR EACH NUM ========== ## i24_num_winning = {} for each_draw in i24: num = each_draw[0] amount = prize_calc.i24_prize_calc(each_draw) if num in i24_num_winning: i24_num_winning[num] += amount else: i24_num_winning[num] = amount i12_num_winning = {} for each_draw in i12: num = each_draw[0] amount = prize_calc.i12_prize_calc(each_draw) if num in i12_num_winning: i12_num_winning[num] += amount else: i12_num_winning[num] = amount i6_num_winning = {} for each_draw in i6: num = each_draw[0] amount = prize_calc.i6_prize_calc(each_draw) if num in i6_num_winning: i6_num_winning[num] += amount else: i6_num_winning[num] = amount i4_num_winning = {} for each_draw in i4: num = each_draw[0] amount = prize_calc.i4_prize_calc(each_draw) if num in i4_num_winning: i4_num_winning[num] += amount else: i4_num_winning[num] = amount ## ========== CHECK NUM-WINNING DICT AGAINST GIVEN NUM LIST ========== ## num_hit = [] #list of num that hit total_winning = 0 # store total winning all_num_cat_winning = {24:i24_num_winning,12:i12_num_winning,6:i6_num_winning,4:i4_num_winning} #dict mapping each num_cat to its winning for each_num in num_bought: each_num_perm = gen_perm(each_num) # generate all possible permutations for num bought num_cat = check_num_cat(each_num) num_winning = all_num_cat_winning[num_cat] for each_perm in each_num_perm: str_each_num = str(each_perm) if str_each_num in num_winning: total_winning += num_winning[str_each_num] new = [str_each_num, num_winning[str_each_num]] num_hit.append(new) sorted_num_hit = sorted(num_hit, key=getKey, reverse=True) return_lst = [total_winning, draw_count, sorted_num_hit] return return_lst
def combine_result(self): # combine raw result into a list containing combined result for all num cat for each in self.result_raw: new = combine(each) self.result_combined.append(new)
# [0] = i24 [1] = i12 [2] = i6 # [3] = i4 [4] = i1 count_i24 = [] count_i12 = [] count_i6 = [] count_i4 = [] # we want to know i12 draw count for each draw past_draw_date = [[3,4,6,7,10,11,14,17,18,21,24,25,27,28,31],[1,3,4,7,8,11,14,15,17,18,21,22,24,25,28],[1,3,4,7,8,11,14,15,18,21,22,25,28,29,31],[1,4,5,7,8,11,12,15,18,19,22,25,26,28,29],[2,3,5,6,9,10,13,16,17,20,23,24,26,27,30,31],[2,3,6,7,10,13,14,17,20,21,24,27,28],[1,4,5,8,11,12,15,18,19,22,25,26,29],[1,2,4,5,8,9,12,15,16,19,22,23,26,29,30],[1]] month_counter = 1 while month_counter <= len(past_draw_date): for each_month in past_draw_date: for each_day in each_month: raw_result = get_data(month_counter, each_day) combined_result = combine(raw_result) separated_result = result_separator(combined_result) count_i24.append(len(separated_result[0])) count_i12.append(len(separated_result[1])) count_i6.append(len(separated_result[0])) count_i4.append(len(separated_result[3])) #we just want to know the count month_counter += 1 print "i24 len: ", len(count_i24) print "i12 len: ", len(count_i12) print "i6 len: ", len(count_i6) print "i4 len: ", len(count_i4) print "==========End of execution==========" #Below are Testing codes """