diff --git a/example.py b/example.py index b536ea7..c17d66b 100644 --- a/example.py +++ b/example.py @@ -4,84 +4,66 @@ import logging from colorama import Fore from TwitchChannelPointsMiner import TwitchChannelPointsMiner from TwitchChannelPointsMiner.logger import LoggerSettings, ColorPalette -from TwitchChannelPointsMiner.classes.Telegram import Telegram from TwitchChannelPointsMiner.classes.Discord import Discord +from TwitchChannelPointsMiner.classes.Telegram import Telegram from TwitchChannelPointsMiner.classes.Settings import Priority, Events, FollowersOrder -from TwitchChannelPointsMiner.classes.entities.Bet import ( - Strategy, - BetSettings, - Condition, - OutcomeKeys, - FilterCondition, - DelayMode, -) -from TwitchChannelPointsMiner.classes.entities.Streamer import ( - Streamer, - StreamerSettings, -) +from TwitchChannelPointsMiner.classes.entities.Bet import Strategy, BetSettings, Condition, OutcomeKeys, FilterCondition, DelayMode +from TwitchChannelPointsMiner.classes.entities.Streamer import Streamer, StreamerSettings twitch_miner = TwitchChannelPointsMiner( username="your-twitch-username", - password="write-your-secure-psw", # If no password will be provided, the script will ask interactively - claim_drops_startup=False, # If you want to auto claim all drops from Twitch inventory on the startup - priority=[ # Custom priority in this case for example: - Priority.STREAK, # - We want first of all to catch all watch streak from all streamers - Priority.DROPS, # - When we don't have anymore watch streak to catch, wait until all drops are collected over the streamers - Priority.ORDER, # - When we have all of the drops claimed and no watch-streak available, use the order priority (POINTS_ASCENDING, POINTS_DESCEDING) + password="write-your-secure-psw", # If no password will be provided, the script will ask interactively + claim_drops_startup=False, # If you want to auto claim all drops from Twitch inventory on the startup + priority=[ # Custom priority in this case for example: + Priority.STREAK, # - We want first of all to catch all watch streak from all streamers + Priority.DROPS, # - When we don't have anymore watch streak to catch, wait until all drops are collected over the streamers + Priority.ORDER # - When we have all of the drops claimed and no watch-streak available, use the order priority (POINTS_ASCENDING, POINTS_DESCEDING) ], logger_settings=LoggerSettings( - save=True, # If you want to save logs in a file (suggested) - console_level=logging.INFO, # Level of logs - use logging.DEBUG for more info - file_level=logging.DEBUG, # Level of logs - If you think the log file it's too big, use logging.INFO - emoji=True, # On Windows, we have a problem printing emoji. Set to false if you have a problem - less=False, # If you think that the logs are too verbose, set this to True - colored=True, # If you want to print colored text - color_palette=ColorPalette( # You can also create a custom palette color (for the common message). - STREAMER_online="GREEN", # Don't worry about lower/upper case. The script will parse all the values. - streamer_offline="red", # Read more in README.md - BET_wiN=Fore.MAGENTA, # Color allowed are: [BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET]. + save=True, # If you want to save logs in a file (suggested) + console_level=logging.INFO, # Level of logs - use logging.DEBUG for more info + file_level=logging.DEBUG, # Level of logs - If you think the log file it's too big, use logging.INFO + emoji=True, # On Windows, we have a problem printing emoji. Set to false if you have a problem + less=False, # If you think that the logs are too verbose, set this to True + colored=True, # If you want to print colored text + color_palette=ColorPalette( # You can also create a custom palette color (for the common message). + STREAMER_online="GREEN", # Don't worry about lower/upper case. The script will parse all the values. + streamer_offline="red", # Read more in README.md + BET_wiN=Fore.MAGENTA # Color allowed are: [BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET]. ), - telegram=Telegram( # You can omit or leave None if you don't want to receive updates on Telegram - chat_id=123456789, # Chat ID to send messages @GiveChatId - token="123456789:shfuihreuifheuifhiu34578347", # Telegram API token @BotFather - events=[ - Events.STREAMER_ONLINE, - Events.STREAMER_OFFLINE, - "BET_LOSE", - ], # Only these events will be sent to the chat - disable_notification=True, # Revoke the notification (sound/vibration) + telegram=Telegram( # You can omit or leave None if you don't want to receive updates on Telegram + chat_id=123456789, # Chat ID to send messages @GiveChatId + token="123456789:shfuihreuifheuifhiu34578347", # Telegram API token @BotFather + events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE, "BET_LOSE"], # Only these events will be sent to the chat + disable_notification=True, # Revoke the notification (sound/vibration) ), discord=Discord( webhook_api="https://discord.com/api/webhooks/0123456789/0a1B2c3D4e5F6g7H8i9J", # Discord Webhook URL - events=[ - Events.STREAMER_ONLINE, - Events.STREAMER_OFFLINE, - Events.BET_LOSE, - ], # Only these events will be sent to the chat - ), + events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE, Events.BET_LOSE], # Only these events will be sent to the chat + ) ), streamer_settings=StreamerSettings( - make_predictions=True, # If you want to Bet / Make prediction - follow_raid=True, # Follow raid to obtain more points - claim_drops=True, # We can't filter rewards base on stream. Set to False for skip viewing counter increase and you will never obtain a drop reward from this script. Issue #21 - watch_streak=True, # If a streamer go online change the priority of streamers array and catch the watch streak. Issue #11 - join_chat=True, # Join irc chat to increase watch-time + make_predictions=True, # If you want to Bet / Make prediction + follow_raid=True, # Follow raid to obtain more points + claim_drops=True, # We can't filter rewards base on stream. Set to False for skip viewing counter increase and you will never obtain a drop reward from this script. Issue #21 + watch_streak=True, # If a streamer go online change the priority of streamers array and catch the watch streak. Issue #11 + join_chat=True, # Join irc chat to increase watch-time bet=BetSettings( - strategy=Strategy.SMART, # Choose you strategy! - percentage=5, # Place the x% of your channel points - percentage_gap=20, # Gap difference between outcomesA and outcomesB (for SMART strategy) - max_points=50000, # If the x percentage of your channel points is gt bet_max_points set this value - stealth_mode=True, # If the calculated amount of channel points is GT the highest bet, place the highest value minus 1-2 points Issue #33 - delay_mode=DelayMode.FROM_END, # When placing a bet, we will wait until `delay` seconds before the end of the timer + strategy=Strategy.SMART, # Choose you strategy! + percentage=5, # Place the x% of your channel points + percentage_gap=20, # Gap difference between outcomesA and outcomesB (for SMART strategy) + max_points=50000, # If the x percentage of your channel points is gt bet_max_points set this value + stealth_mode=True, # If the calculated amount of channel points is GT the highest bet, place the highest value minus 1-2 points Issue #33 + delay_mode=DelayMode.FROM_END, # When placing a bet, we will wait until `delay` seconds before the end of the timer delay=6, - minimum_points=20000, # Place the bet only if we have at least 20k points. Issue #113 + minimum_points=20000, # Place the bet only if we have at least 20k points. Issue #113 filter_condition=FilterCondition( - by=OutcomeKeys.TOTAL_USERS, # Where apply the filter. Allowed [PERCENTAGE_USERS, ODDS_PERCENTAGE, ODDS, TOP_POINTS, TOTAL_USERS, TOTAL_POINTS] - where=Condition.LTE, # 'by' must be [GT, LT, GTE, LTE] than value - value=800, - ), - ), - ), + by=OutcomeKeys.TOTAL_USERS, # Where apply the filter. Allowed [PERCENTAGE_USERS, ODDS_PERCENTAGE, ODDS, TOP_POINTS, TOTAL_USERS, TOTAL_POINTS] + where=Condition.LTE, # 'by' must be [GT, LT, GTE, LTE] than value + value=800 + ) + ) + ) ) # You can customize the settings for each streamer. If not settings were provided, the script would use the streamer_settings from TwitchChannelPointsMiner. @@ -94,93 +76,18 @@ twitch_miner = TwitchChannelPointsMiner( twitch_miner.mine( [ - Streamer( - "streamer-username01", - settings=StreamerSettings( - make_predictions=True, - follow_raid=False, - claim_drops=True, - watch_streak=True, - bet=BetSettings( - strategy=Strategy.SMART, - percentage=5, - stealth_mode=True, - percentage_gap=20, - max_points=234, - filter_condition=FilterCondition( - by=OutcomeKeys.TOTAL_USERS, where=Condition.LTE, value=800 - ), - ), - ), - ), - Streamer( - "streamer-username02", - settings=StreamerSettings( - make_predictions=False, - follow_raid=True, - claim_drops=False, - bet=BetSettings( - strategy=Strategy.PERCENTAGE, - percentage=5, - stealth_mode=False, - percentage_gap=20, - max_points=1234, - filter_condition=FilterCondition( - by=OutcomeKeys.TOTAL_POINTS, where=Condition.GTE, value=250 - ), - ), - ), - ), - Streamer( - "streamer-username03", - settings=StreamerSettings( - make_predictions=True, - follow_raid=False, - watch_streak=True, - bet=BetSettings( - strategy=Strategy.SMART, - percentage=5, - stealth_mode=False, - percentage_gap=30, - max_points=50000, - filter_condition=FilterCondition( - by=OutcomeKeys.ODDS, where=Condition.LT, value=300 - ), - ), - ), - ), - Streamer( - "streamer-username04", - settings=StreamerSettings( - make_predictions=False, follow_raid=True, watch_streak=True - ), - ), - Streamer( - "streamer-username05", - settings=StreamerSettings( - make_predictions=True, - follow_raid=True, - claim_drops=True, - watch_streak=True, - bet=BetSettings( - strategy=Strategy.HIGH_ODDS, - percentage=7, - stealth_mode=True, - percentage_gap=20, - max_points=90, - filter_condition=FilterCondition( - by=OutcomeKeys.PERCENTAGE_USERS, where=Condition.GTE, value=300 - ), - ), - ), - ), + Streamer("streamer-username01", settings=StreamerSettings(make_predictions=True , follow_raid=False , claim_drops=True , watch_streak=True , bet=BetSettings(strategy=Strategy.SMART , percentage=5 , stealth_mode=True, percentage_gap=20 , max_points=234 , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_USERS, where=Condition.LTE, value=800 ) ) )), + Streamer("streamer-username02", settings=StreamerSettings(make_predictions=False , follow_raid=True , claim_drops=False , bet=BetSettings(strategy=Strategy.PERCENTAGE , percentage=5 , stealth_mode=False, percentage_gap=20 , max_points=1234 , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_POINTS, where=Condition.GTE, value=250 ) ) )), + Streamer("streamer-username03", settings=StreamerSettings(make_predictions=True , follow_raid=False , watch_streak=True , bet=BetSettings(strategy=Strategy.SMART , percentage=5 , stealth_mode=False, percentage_gap=30 , max_points=50000 , filter_condition=FilterCondition(by=OutcomeKeys.ODDS, where=Condition.LT, value=300 ) ) )), + Streamer("streamer-username04", settings=StreamerSettings(make_predictions=False , follow_raid=True , watch_streak=True )), + Streamer("streamer-username05", settings=StreamerSettings(make_predictions=True , follow_raid=True , claim_drops=True , watch_streak=True , bet=BetSettings(strategy=Strategy.HIGH_ODDS , percentage=7 , stealth_mode=True, percentage_gap=20 , max_points=90 , filter_condition=FilterCondition(by=OutcomeKeys.PERCENTAGE_USERS, where=Condition.GTE, value=300 ) ) )), Streamer("streamer-username06"), Streamer("streamer-username07"), Streamer("streamer-username08"), "streamer-username09", "streamer-username10", - "streamer-username11", - ], # Array of streamers (order = priority) - followers=False, # Automatic download the list of your followers - followers_order=FollowersOrder.ASC, # Sort the followers list by follow date. ASC or DESC + "streamer-username11" + ], # Array of streamers (order = priority) + followers=False, # Automatic download the list of your followers + followers_order=FollowersOrder.ASC # Sort the followers list by follow date. ASC or DESC )