painful repo management

This commit is contained in:
2022-06-15 17:43:06 -04:00
parent de1d4c9255
commit fe831750d3
9 changed files with 316 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
# wvlottopy
THE WVLOTTOPY DEVELOPERS HAVE NO AFFILIATION WITH THE WEST VIRGINIA STATE LOTTERY
This script generates the most likely lottery numbers based off frequency of winning numbers.
Previously there were records dating back to 1992 that were removed by the website, which has lead me to rewrite and encourage the collaboration and sharing of this work. I will attach an excel file in the near future that includes the previous records and soon try to reincorperate them into the script. Originally excel functionality was stripped for performance.
I am welcoming anyone who wants to to port it to their own state/country to do so. I currently have a website www.wvlotterypredictor.xyz hosting my numbers to be refreshed daily. Collaboration and suggestion to a more accurate algorithm is also welcome.
#Good luck!
Executable
+45
View File
@@ -0,0 +1,45 @@
# WVLottopy: Matteo DiBiagio
from fractions import Fraction as frac
import pandas as pd
import requests
from collections import Counter
def get_data():
url = 'https://wvlottery.com/draw-games/cash-25/?game-analyze=cash-25&what-to-search=historysearch&date-range=-1'
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
# Get web data
r = requests.get(url, headers=header)
dfs = pd.read_html(r.text)
pd.set_option('display.max_rows', None)
# Specifies no max rows, otherwise only shows 10 records
df = dfs[0]
df2 = df[['Date', 'Numbers']]
date = list(df2['Date'])
nums = list(df2['Numbers'].astype('str'))
return date, nums
date, nums = get_data()
# Formatting
hyphenfree = []
for x in nums:
hyphenfree.append(x.replace('–',', '))
splitlist = ", ".join(hyphenfree)
sep = splitlist.split(", ")
for n in range(0, 25):
most_common= Counter(sep).most_common(6)
likely_nums = [v[0] for v in most_common]
frequency = [v[-1] for v in most_common]
sorted_nums = sorted(likely_nums)
total_freq = sum(frequency)
Chance = frac(total_freq, 177100) # Chance = number call freq / all possible numbers i.e. 177100
Winning_Numbers = str("-".join(sorted_nums))
print(f"Likely numbers are . . . {Winning_Numbers} \n"
f"With percent chance of winning being {Chance}")
Executable
+44
View File
@@ -0,0 +1,44 @@
# WVLottopy: Matteo DiBiagio
from fractions import Fraction as frac
import pandas as pd
import requests
from collections import Counter
def get_data():
url = 'https://wvlottery.com/draw-games/daily-3/?game-analyze=daily-3&what-to-search=historysearch&date-range=1'
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
# Get web data
r = requests.get(url, headers=header)
dfs = pd.read_html(r.text)
pd.set_option('display.max_rows', None)
# Specifies no max rows, otherwise only shows 10 records
df = dfs[0]
df2 = df[['Date', 'Numbers']]
date = list(df2['Date'])
nums = list(df2['Numbers'].astype('str'))
return date, nums
date, nums = get_data()
# Formatting
hyphenfree = []
for x in nums:
hyphenfree.append(x.replace('–',', '))
splitlist = ", ".join(hyphenfree)
sep = splitlist.split(", ")
for n in range(0, 10):
most_common= Counter(sep).most_common(3)
likely_nums = [v[0] for v in most_common]
frequency = [v[-1] for v in most_common]
sorted_nums = sorted(likely_nums)
total_freq = sum(frequency)
Chance = frac(total_freq, 1000) # Chance = number call freq / all possible numbers i.e. 1000
Winning_Numbers = str("-".join(sorted_nums))
print(f"Likely numbers are . . . {Winning_Numbers} \n"
f"With percent chance of winning being {Chance}")
Executable
+44
View File
@@ -0,0 +1,44 @@
# WVLottopy: Matteo DiBiagio
from fractions import Fraction as frac
import pandas as pd
import requests
from collections import Counter
def get_data():
url = 'https://wvlottery.com/draw-games/daily-4/?game-analyze=daily-4&what-to-search=historysearch&date-range=-1'
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
# Get web data
r = requests.get(url, headers=header)
dfs = pd.read_html(r.text)
pd.set_option('display.max_rows', None)
# Specifies no max rows, otherwise only shows 10 records
df = dfs[0]
df2 = df[['Date', 'Numbers']]
date = list(df2['Date'])
nums = list(df2['Numbers'].astype('str'))
return date, nums
date, nums = get_data()
# Formatting
hyphenfree = []
for x in nums:
hyphenfree.append(x.replace('–',', '))
splitlist = ", ".join(hyphenfree)
sep = splitlist.split(", ")
for n in range(0, 9):
most_common= Counter(sep).most_common(4)
likely_nums = [v[0] for v in most_common]
frequency = [v[-1] for v in most_common]
sorted_nums = sorted(likely_nums)
total_freq = sum(frequency)
Chance = frac(total_freq, 10000) # Chance = number call freq / all possible numbers i.e. 10000
Winning_Numbers = str("-".join(sorted_nums))
print(f"Likely numbers are . . . {Winning_Numbers}, \n"
f"With percent chance of winning being {Chance}")
+51
View File
@@ -0,0 +1,51 @@
# WVLottopy: Matteo DiBiagio
from fractions import Fraction as frac
import pandas as pd
import requests
from collections import Counter
def get_data():
url = 'https://wvlottery.com/draw-games/lotto-america/?game-analyze=lotto-america&what-to-search=historysearch&date-range=-1'
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
# Get web data
r = requests.get(url, headers=header)
dfs = pd.read_html(r.text)
pd.set_option('display.max_rows', None)
# Specifies no max rows, otherwise only shows 10 records
df = dfs[0]
df2 = df[['Date', 'Numbers', 'SB', 'All Star']]
date = list(df2['Date'])
nums = list(df2['Numbers'].astype('str'))
SBs = list(df2['SB'].astype('int'))
return date, nums, SBs
date, nums, SBs = get_data()
# Formatting
hyphenfree = []
for x in nums:
hyphenfree.append(x.replace('–',', '))
splitlist = ", ".join(hyphenfree)
sep = splitlist.split(", ")
for n in range(0, 52):
most_common= Counter(sep).most_common(5)
likely_nums = [v[0] for v in most_common]
frequency = [v[-1] for v in most_common]
for n in range(0, 10):
most_common_sb = Counter(SBs).most_common(1)
SB = [v[0] for v in most_common_sb]
frequency_sb = [v[-1] for v in most_common_sb]
sorted_nums = sorted(likely_nums)
total_freq = sum(frequency + frequency_sb)
Chance = frac(total_freq, 25989600) # Chance = number call freq / all possible numbers i.e. 25,989,600
Winning_Numbers = str("-".join(sorted_nums))
print(f"Likely numbers are . . . {Winning_Numbers} SB: {SB}\n"
f"With percent chance of winning being {Chance}")
Executable
+50
View File
@@ -0,0 +1,50 @@
# WVLottopy: Matteo DiBiagio
from fractions import Fraction as frac
import pandas as pd
import requests
from collections import Counter
def get_data():
url = 'https://wvlottery.com/draw-games/powerball/?game-analyze=powerball&what-to-search=historysearch&date-range=-1'
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
# Get web data
r = requests.get(url, headers=header)
dfs = pd.read_html(r.text)
pd.set_option('display.max_rows', None)
# Specifies no max rows, otherwise only shows 10 records
df = dfs[0]
df2 = df[['Date', 'Numbers', 'PB', 'PPX', 'Winners WV Only', 'Payout WV Only']]
date = list(df2['Date'])
nums = list(df2['Numbers'].astype('str'))
PBs = list(df2['PB'].astype('int'))
return date, nums, PBs
date, nums, PBs = get_data()
# Formatting
hyphenfree = []
for x in nums:
hyphenfree.append(x.replace('–',', '))
splitlist = ", ".join(hyphenfree)
sep = splitlist.split(", ")
for n in range(0, 69):
most_common = Counter(sep).most_common(5)
likely_nums = [v[0] for v in most_common]
frequency = [v[-1] for v in most_common]
for n in range(0, 26):
most_common_pb = Counter(PBs).most_common(1)
PB = [v[0] for v in most_common_pb]
frequency_pb = [v[-1] for v in most_common_pb]
sorted_nums = sorted(likely_nums)
total_freq = sum(frequency + frequency_pb)
Chance = frac(total_freq, 292201338) # Chance = number call freq / all possible numbers i.e. 292201338
Winning_Numbers = str("-".join(sorted_nums))
print(f"Likely numbers are . . . {Winning_Numbers} PB: {PB}\n"
f"With percent chance of winning being {Chance}")
Executable
+51
View File
@@ -0,0 +1,51 @@
# WVLottopy megamil: Matteo DiBiagio
from fractions import Fraction as frac
import pandas as pd
import requests
from collections import Counter
def get_data():
url = 'https://wvlottery.com/draw-games/mega-millions/?game-analyze=mega-millions&what-to-search=historysearch&date-range=-1'
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
# Get web data
r = requests.get(url, headers=header)
dfs = pd.read_html(r.text)
pd.set_option('display.max_rows', None)
# Specifies no max rows, otherwise only shows 10 records
df = dfs[0]
df2 = df[['Date', 'Numbers', 'MB', 'MP']]
date = list(df2['Date'])
nums = list(df2['Numbers'].astype('str'))
MBs = list(df2['MB'].astype('int'))
return date, nums, MBs
date, nums, MBs = get_data()
# Formatting
hyphenfree = []
for x in nums:
hyphenfree.append(x.replace('–',', '))
splitlist = ", ".join(hyphenfree)
sep = splitlist.split(", ")
for n in range(0, 70):
most_common= Counter(sep).most_common(5)
likely_nums = [v[0] for v in most_common]
frequency = [v[-1] for v in most_common]
for n in range(0, 25):
most_common_mb = Counter(MBs).most_common(1)
MB = [v[0] for v in most_common_mb]
frequency_mb = [v[-1] for v in most_common_mb]
sorted_nums = sorted(likely_nums)
total_freq = sum(frequency + frequency_mb)
Chance = frac(total_freq, 302575350) # Chance = number call freq / all possible numbers i.e. 11238513
Winning_Numbers = str("-".join(sorted_nums))
print(f"Likely numbers are . . . {Winning_Numbers} MB: {MB}\n"
f"With percent chance of winning being {Chance}")
+2
View File
@@ -0,0 +1,2 @@
pandas==1.3.5
requests==2.26.0
Executable
+18
View File
@@ -0,0 +1,18 @@
#!/bin/bash
# Simple start script for lottopy designed by Matteo DiBiagio
# www.wvlotterypredictor.xyz
# MIT License
# Edit to your need
echo "Powerball" &&
python lottopy_pb.py &&
echo "MegaMillions" &&
python megamil.py &&
echo "Lotto America" &&
python lotto_america.py &&
echo "Daily3" &&
python daily3.py &&
echo "Daily4" &&
python daily4.py &&
echo "Cash25" &&
python cash25.py