Move feed processing to per game

This commit is contained in:
Quality Coder 2022-01-05 20:49:03 -06:00
parent 415aad8bff
commit f77a0efbed
7 changed files with 47 additions and 26 deletions

View file

@ -6,6 +6,7 @@ class Ticket:
self.my_special_ball = my_special_ball self.my_special_ball = my_special_ball
self.winning_numbers = [] self.winning_numbers = []
self.special_ball = None self.special_ball = None
self.special_ball_name = 'Special Ball'
self.multiplier = None self.multiplier = None
self.matched_numbers = [] self.matched_numbers = []
self.matched_special_ball = None self.matched_special_ball = None
@ -50,7 +51,7 @@ class Ticket:
self.output_ticket() self.output_ticket()
def output_ticket(self): def output_ticket(self):
special_ball = self.feed.game_entries["special_ball"] special_ball = self.special_ball_name
print(f'Winning Numbers: {self.winning_numbers}') print(f'Winning Numbers: {self.winning_numbers}')
print(f'Winning {special_ball}: {self.special_ball}') print(f'Winning {special_ball}: {self.special_ball}')
print(f'Your Numbers: {self.my_picks}') print(f'Your Numbers: {self.my_picks}')

View file

@ -3,19 +3,18 @@ import feedparser
class Feed: class Feed:
def __init__(self, feed): def __init__(self):
self.feed = 'https://www.texaslottery.com/export/sites/lottery/rss/tlc_latest.xml' self.feed = 'https://www.texaslottery.com/export/sites/lottery/rss/tlc_latest.xml'
self.parsed_feed = feedparser.parse(self.feed) self.parsed_feed = feedparser.parse(self.feed)
self.game_entries = feed
self.modifiers = { self.modifiers = {
'Billion': 1000000000, 'Billion': 1000000000,
'Million': 1000000 'Million': 1000000
} }
def get_winning_numbers(self): def get_winning_numbers(self):
entry = self.game_entries nums_pre = self.parsed_feed.entries[2].summary
nums_pre = self.parsed_feed.entries[entry['winning_numbers']].summary nums_pre = nums_pre.replace('MegaBall', '-').replace(' Megaplier', '-')
nums_pre = nums_pre.replace(entry['special_ball'], '-').replace(f' {entry["multiplier"]}', '-')
nums = nums_pre.split(' - ') nums = nums_pre.split(' - ')
winning_numbers = nums[:5] winning_numbers = nums[:5]
@ -28,8 +27,7 @@ class Feed:
return {'numbers': winning_numbers, 'special_ball': special_ball, 'multiplier': multiplier} return {'numbers': winning_numbers, 'special_ball': special_ball, 'multiplier': multiplier}
def get_jackpot(self): def get_jackpot(self):
entry = self.game_entries jp_pre = self.parsed_feed.entries[3].summary
jp_pre = self.parsed_feed.entries[entry['jackpot']].summary
jp_pre = jp_pre[jp_pre.index('Cash'):] jp_pre = jp_pre[jp_pre.index('Cash'):]
jp_pre = jp_pre[jp_pre.index(':') + 3:] jp_pre = jp_pre[jp_pre.index(':') + 3:]
jp_data = jp_pre.split() jp_data = jp_pre.split()

View file

@ -1,6 +1,5 @@
from lib.Ticket import Ticket from lib.Ticket import Ticket
from lib.Feed import Feed from .Feed import Feed
from .feed import feed
from .winning_structure import get_winnings_mb, get_winnings_no_mb from .winning_structure import get_winnings_mb, get_winnings_no_mb
@ -8,7 +7,8 @@ class MegaMillions(Ticket):
def __init__(self, my_picks, my_special_ball): def __init__(self, my_picks, my_special_ball):
super().__init__(my_picks, my_special_ball) super().__init__(my_picks, my_special_ball)
self.feed = Feed(feed) self.special_ball_name = 'MegaBall'
self.feed = Feed()
self.get_winning_numbers() self.get_winning_numbers()
def get_winnings_with_special_ball(self, jp): def get_winnings_with_special_ball(self, jp):

View file

@ -1,6 +0,0 @@
feed = {
'winning_numbers': 2,
'jackpot': 3,
'special_ball': 'MegaBall',
'multiplier': 'Megaplier'
}

34
powerball/Feed.py Normal file
View file

@ -0,0 +1,34 @@
import feedparser
class Feed:
def __init__(self):
self.feed = 'https://www.texaslottery.com/export/sites/lottery/rss/tlc_latest.xml'
self.parsed_feed = feedparser.parse(self.feed)
self.modifiers = {
'Billion': 1000000000,
'Million': 1000000
}
def get_winning_numbers(self):
nums_pre = self.parsed_feed.entries[0].summary
nums_pre = nums_pre.replace('Powerball', '-').replace(' Power Play', '-')
nums = nums_pre.split(' - ')
winning_numbers = nums[:5]
for idx, num in enumerate(nums[:5]):
winning_numbers[idx] = int(num)
special_ball = int(nums[5])
multiplier = int(nums[6])
return {'numbers': winning_numbers, 'special_ball': special_ball, 'multiplier': multiplier}
def get_jackpot(self):
jp_pre = self.parsed_feed.entries[1].summary
jp_pre = jp_pre[jp_pre.index('Cash'):]
jp_pre = jp_pre[jp_pre.index(':') + 3:]
jp_data = jp_pre.split()
return float(jp_data[0]) * self.modifiers[jp_data[1]]

View file

@ -1,6 +1,5 @@
from lib.Ticket import Ticket from lib.Ticket import Ticket
from lib.Feed import Feed from .Feed import Feed
from .feed import feed
from .winning_structure import get_winnings_pb, get_winnings_no_pb from .winning_structure import get_winnings_pb, get_winnings_no_pb
@ -8,7 +7,8 @@ class Powerball(Ticket):
def __init__(self, my_picks, my_special_ball): def __init__(self, my_picks, my_special_ball):
super().__init__(my_picks, my_special_ball) super().__init__(my_picks, my_special_ball)
self.feed = Feed(feed) self.special_ball_name = 'Powerball'
self.feed = Feed()
self.get_winning_numbers() self.get_winning_numbers()
def get_winnings_with_special_ball(self, jp): def get_winnings_with_special_ball(self, jp):

View file

@ -1,6 +0,0 @@
feed = {
'winning_numbers': 0,
'jackpot': 1,
'special_ball': 'Powerball',
'multiplier': 'Power Play'
}