def main(): lines = open('config.yml').read() config = yaml.load(lines) twitch = config['twitch'] revlo = config['revlo'] irc = Irc(twitch) token = revlo['api_key'] reward_id = int(revlo['reward_id']) print("Press Ctrl+C to kill the bot") try: while True: songs = scan_song_redemptions(token, reward_id) request_songs_to_nightbot(irc, twitch, songs) songs = [] time.sleep(60) except KeyboardInterrupt: print("Leaving channel") finally: irc.leave(twitch['channel'])
def main(config): twitch = config['twitch'] irc = Irc(twitch) user = [] print("Press Ctrl+C to kill the bot") try: k = True challenger = ["", ""] points = 0 gap_time = time.time() while True: recv_msg = irc.get_socket() if (re.match(r'^[a-zA-Z0-9\.\_\-]+ .*$', str(recv_msg))): recv_arg = recv_msg.split(" ", 1) if (re.match(r'\!pk [a-zA-Z0-9\.\_\-]+', recv_arg[1]) and (k == True or (time.time() - gap_time) > 10)): args = recv_msg.split(" ", 2) point = get_userPoint(config['api']['JWT_token'], twitch['channel'], args[0]) if (point == 0): irc.send_message(twitch['channel'], "%s 您的戰鬥力不足!" % args[0]) time.sleep(10) else: users = get_userList(twitch['channel']) if (args[2].strip().lower() in users or args[2].strip() != args[0].strip()): irc.send_message( twitch['channel'], "%s 戰鬥力 %s 的 %s 向您發起挑戰,是否接受(y/n)?" % (args[2], point, args[0])) challenger[0] = args[0].strip() challenger[1] = args[2].strip() points = point k = False gap_time = time.time() else: irc.send_message( twitch['channel'], "%s 找不到使用者:%s" % (args[0], args[2])) time.sleep(10) elif (recv_arg[0].strip() == challenger[1] and recv_arg[1].strip().lower() == 'y'): point = get_userPoint(config['api']['JWT_token'], twitch['channel'], recv_arg[0].strip()) if (point == 0): irc.send_message("%s 您的戰鬥力不足!" % recv_arg[0]) k = True time.sleep(10) else: allpoint = points + point nums = random.randint(0, 101) if (nums <= math.ceil((points / allpoint) * 100)): change_userPoint(config['api']['JWT_token'], challenger[0], point * 0.2) change_userPoint(config['api']['JWT_token'], challenger[1], 0 - (point * 0.2)) irc.send_message( twitch['channel'], "%s 恭喜您獲勝,獲得 %d 戰鬥力" % (challenger[0], point * 0.2)) irc.send_message( twitch['channel'], "%s 戰鬥失敗,失去 %d 戰鬥力" % (challenger[1], point * 0.2)) else: change_userPoint(config['api']['JWT_token'], challenger[1], points * 0.2) change_userPoint(config['api']['JWT_token'], challenger[0], 0 - (points * 0.2)) irc.send_message( twitch['channel'], "%s 恭喜您獲勝,獲得 %d 戰鬥力" % (challenger[1], points * 0.2)) irc.send_message( twitch['channel'], "%s 戰鬥失敗,失去 %d 戰鬥力" % (challenger[0], points * 0.2)) k = True time.sleep(10) elif (recv_arg[0].strip() == challenger[1] and recv_arg[1].strip().lower() == 'n'): irc.send_message(twitch['channel'], "戰鬥發起失敗") k = True time.sleep(10) except KeyboardInterrupt: print("Leaving channel") finally: irc.leave(twitch['channel'])