|
| 1 | +import random |
| 2 | +from faker.providers import BaseProvider |
| 3 | + |
| 4 | +MIN_AMOUNT = 2 # Min betting amount |
| 5 | +MAX_AMOUNT = 1000 # Max betting amount |
| 6 | + |
| 7 | +ALPHA = 50 |
| 8 | + |
| 9 | +# Adding a UserBets with 3 methods: |
| 10 | +# * username to retrieve the username, |
| 11 | +# * bet_amount to retrieve the amount |
| 12 | +# * betting_channel_event to retrieve event and channel |
| 13 | +class UserBetsProvider(BaseProvider): |
| 14 | + |
| 15 | + def username(self): |
| 16 | + valid_usernames = [ |
| 17 | + 'nopineappleonpizza', |
| 18 | + 'catanzaro99', |
| 19 | + 'thedoctor', |
| 20 | + 'bettingexpert01', |
| 21 | + 'losingmoney66', |
| 22 | + 'manutd007', |
| 23 | + 'manutd009', |
| 24 | + 'citylife1', |
| 25 | + 'lysa_X', |
| 26 | + 'aiventest', |
| 27 | + ] |
| 28 | + return random.choice(valid_usernames) |
| 29 | + |
| 30 | + def bet_amount(self): |
| 31 | + #return int(random.triangular(MIN_AMOUNT, MID_AMOUNT, MAX_AMOUNT)) |
| 32 | + return int((random.paretovariate(ALPHA)-1)*(MAX_AMOUNT - MIN_AMOUNT))+1 |
| 33 | + |
| 34 | + def bet_category_event(self): |
| 35 | + valid_events = [ |
| 36 | + {'category': 'Sport', 'subcategory': 'Football', 'event': 'ManUTD vs Chelsea'}, |
| 37 | + {'category': 'Sport', 'subcategory': 'Box', 'event': 'Chicken Legs vs Power Kick'}, |
| 38 | + {'category': 'Sport', 'subcategory': 'Curling', 'event': 'Italy vs England'}, |
| 39 | + {'category': 'Sport', 'subcategory': 'Netball', 'event': 'Sydney vs Camberra'}, |
| 40 | + {'category': 'Lottery', 'subcategory': 'Bingo', 'event': 'Uk Bingo'}, |
| 41 | + {'category': 'Lottery', 'subcategory': 'WinForLife', 'event': 'Win For Life America'}, |
| 42 | + {'category': 'Event', 'subcategory': 'Music', 'event': 'Rick Astley #1 in World Charts'}, |
| 43 | + {'category': 'Event', 'subcategory': 'Politics', 'event': 'Mickey Mouse new Italian President'}, |
| 44 | + {'category': 'Event', 'subcategory': 'Celebrities', 'event': 'Donald Duck and Marge Simpson Wedding'}, |
| 45 | + ] |
| 46 | + return random.choice(valid_events) |
| 47 | + |
| 48 | + def produce_msg (self): |
| 49 | + username = self.username() |
| 50 | + bet_amount = self.bet_amount() |
| 51 | + bet_event = self.bet_category_event() |
| 52 | + |
| 53 | + # message composition |
| 54 | + message = { |
| 55 | + 'username': username, |
| 56 | + 'event': { |
| 57 | + 'category': bet_event['category'], |
| 58 | + 'subcategory': bet_event['subcategory'], |
| 59 | + 'name': bet_event['event'] |
| 60 | + }, |
| 61 | + 'amount': bet_amount |
| 62 | + } |
| 63 | + key = {'event': bet_event['event']} |
| 64 | + return message, key |
0 commit comments