def test_support(self, irc_msg):
        # Creating a Proposal
        irc_response = irc_msg("beginbot",
                               "!propose !iasip The Gang Steals Kappa")
        result = CommandRouter(irc_response, logger).build_response()

        # Supporting a Proposal
        irc_response = irc_msg("bill.evans", "!support beginbot")
        result = CommandRouter(irc_response, logger).build_response()
        assert "@beginbot Thanks You for the support @bill.evans" in result
    def test_bestcss(self, irc_msg):
        user = User("bill.evans")
        icon = User("miles.davis").save()
        irc_response = irc_msg("bill.evans", "!bestcss miles.davis")
        result = CommandRouter(irc_response, logger).build_response()
        assert CSSVote.count() == 1
        assert (
            result ==
            "Thank You @bill.evans for supporting Artists like @miles.davis")

        irc_response = irc_msg("bill.evans", "!homepage")
        result = CommandRouter(irc_response, logger).build_response()
        assert result == "@miles.davis: 1"
 def test_submitting_js(self, irc_msg):
     user = User("uzi")
     user.save()
     irc_response = irc_msg("uzi",
                            "!js https://gitlab.com/snippets/1990806/raw")
     result = CommandRouter(irc_response, logger).build_response()
     assert result == "Thanks for the custom JS @uzi!"
 def test_buying_insurance(self, irc_msg):
     user = User("uzi")
     user.update_cool_points(10)
     irc_response = irc_msg("uzi", "!insurance")
     result = CommandRouter(irc_response, logger).build_response()
     assert user.insured()
     assert result == "@uzi thank you for purchasing insurance"
Example #5
0
async def run_bot(server: socket.socket) -> None:
    chat_buffer = ""

    while True:
        raw_irc_response = await chat_response(server)

        chat_buffer = chat_buffer + raw_irc_response
        messages = chat_buffer.split("\r\n")
        chat_buffer = messages.pop()
        for message in messages:
            if message == "PING :tmi.twitch.tv":
                await pong(server)
            elif len(message.split()) < 2:
                continue
            elif CHAT_MSG in message:
                try:
                    if response := CommandRouter(message,
                                                 logger).build_response():
                        MESSAGE_LIMIT = 500

                        if isinstance(response, List):
                            for r in response:
                                await send_msg(server, f"{r}")
                        elif len(response) > MESSAGE_LIMIT:
                            # This is dumb!
                            await send_msg(server, f"{response[:500]}")
                            await send_msg(server, f"{response[500:]}")
                        else:
                            await send_msg(server, f"{response}")
                except:
                    print("\033[91m")
                    traceback.print_exc()
                    print("\033[0m")
Example #6
0
async def run_bot(server: socket.socket) -> None:
    while True:
        irc_response = await chat_response(server)

        if irc_response[0] == ARE_YOU_ALIVE:
            await pong(server)
        elif len(irc_response) < 2:
            pass
        elif irc_response[1] == CHAT_MSG:
            try:
                if response := CommandRouter(irc_response, logger).build_response():
                    MESSAGE_LIMIT = 500

                    if isinstance(response, List):
                        for r in response:
                            await send_msg(server, f"{r}")
                    elif len(response) > MESSAGE_LIMIT:
                        # This is dumb!
                        # await send_msg(server, f"{''.join(response[:500])}")
                        await send_msg(server, f"{response[:500]}")
                        await send_msg(server, f"{response[500:]}")
                    else:
                        await send_msg(server, f"{response}")
            except:
                print("\033[91m")
                traceback.print_exc()
                print("\033[0m")
 def test_buying_a_non_existent_sound(self, irc_msg):
     user = "******"
     User(user).update_cool_points(10)
     message = "!buy gibberish"
     irc_response = irc_msg(user, message)
     result = CommandRouter(irc_response, logger).build_response()
     assert result == "@thugga purchase failed, command !gibberish not found"
 def test_share_command(self, irc_msg):
     user = User("bill.evans")
     Command("damn").allow_user("bill.evans")
     irc_response = irc_msg("bill.evans", "!share damn")
     result = CommandRouter(irc_response, logger).build_response()
     assert (
         "@bill.evans Not enough cool_points (0/1) to share !damn with @"
         in result)
 def test_propose(self, irc_msg):
     irc_response = irc_msg("beginbot",
                            "!propose !iasip The Gang Steals Kappa")
     result = CommandRouter(irc_response, logger).build_response()
     assert "Thank you @beginbot for your proposal" in result
     last_proposal = Proposal.last()
     assert last_proposal["proposal"] == "The Gang Steals Kappa"
     assert last_proposal["command"] == "iasip"
 def test_buying_event(self, irc_msg):
     user = User("bill.evans")
     user.update_cool_points(10)
     irc_response = irc_msg("bill.evans", "!buy gcc")
     result = CommandRouter(irc_response, logger).build_response()
     last_event = UserEvent.last()
     assert last_event["user"] == "bill.evans"
     assert last_event["msg"] == "!buy gcc"
 def test_top_8_features(self, irc_msg):
     user = User("bill.evans")
     miles = User("miles.davis")
     miles.save()
     irc_response = irc_msg("bill.evans", "!top8 miles.davis")
     result = CommandRouter(irc_response, logger).build_response()
     assert result == "@miles.davis is now in @bill.evans's Top 8!"
     assert user.top_eight() == ["miles.davis"]
 def test_bot_survivor(self, irc_msg):
     user = User("uzi")
     user.save()
     User("uzibot").save()
     User.register_bot("uzibot", "don.cannon")
     irc_response = irc_msg("uzi", "!hatebot uzibot")
     result = CommandRouter(irc_response, logger).build_response()
     BotVote.count() == 1
     assert result == "Thank you for your vote @uzi"
    def test_transferring_a_command_already_owned(self, irc_msg):
        transferrer = User("thugga")
        transferee = User("wheezy")

        damn_command = Command("damn")
        damn_command.allow_user(transferee.name)

        message = "!transfer !damn @wheezy"
        irc_response = irc_msg(transferrer.name, message)
        result = CommandRouter(irc_response, logger).build_response()
        assert result == "@wheezy already has accesss to !damn @thugga"
    def test_user_events(self, irc_msg):
        user = User("bill.evans")
        miles = User("miles.davis")
        miles.save()
        irc_response = irc_msg("bill.evans", "!top8 miles.davis")
        result = CommandRouter(irc_response, logger).build_response()

        last_event = UserEvent.last()
        assert last_event["user"] == "bill.evans"
        assert last_event["msg"] == "!top8 miles.davis"
        assert last_event[
            "result"] == "@miles.davis is now in @bill.evans's Top 8!"
        assert last_event["command"] == "top8"
    def test_share_command(self, irc_msg, monkeypatch):
        def _mock_random_user(self):
            return "miles.davis"

        monkeypatch.setattr("EconomyRouter", "_random_user", _mock_random_user)

        user = User("bill.evans")
        Command("damn").allow_user("bill.evans")
        irc_response = irc_msg("bill.evans", "!share damn")
        result = CommandRouter(irc_response, logger).build_response()

        assert (
            "@bill.evans Not enough cool_points (0/1) to share !damn with @"
            in result)
Example #16
0
from chat_thief.models.user_code import UserCode
from chat_thief.data_scrubber import DataScrubber

DEFAULT_MSG = "!add_perm ha johnnyutah"
DEFAULT_MSG =  "nice"



def _fake_irc_msg_builder(user, msg):
    return [f":{user}!{user}@user.tmi.twitch.tv", "PRIVMSG", "#beginbot", f":{msg}"]


if __name__ == "__main__":
    parser = ArgumentParser()
    parser.add_argument("--message", "-m", dest="message", default=DEFAULT_MSG)
    parser.add_argument("--user", "-u", dest="user", default="beginbotbot")
    parser.add_argument(
        "--breakpoint", "-b", dest="breakpoint", action="store_true", default=False
    )
    args = parser.parse_args()
    irc_response = _fake_irc_msg_builder(args.user, args.message)

    if args.breakpoint:
        # found_command = Proposal.db().get(Query().name == name)
        # found_command = Proposal.db().search(Query().user == "beginbot")
        breakpoint()
    elif response := CommandRouter(irc_response, logger).build_response():
        print(response)
    else:
        print("No Response")
 def test_stealing_non_existent_sfx(self, irc_msg):
     User("bill.evans").update_cool_points(10)
     irc_response = irc_msg("bill.evans", "!steal fakesound")
     result = CommandRouter(irc_response, logger).build_response()
     assert result != "@bill.evans stole from @None"
Example #18
0
 def test_pokemon_game(self, irc_msg):
     irc_response = irc_msg("uzi", "!pokemon")
     result = CommandRouter(irc_response, logger).build_response()
     assert result == "Guess Which Pokemon This Is!!!"
 def test_iasip(self, irc_msg):
     irc_response = irc_msg("beginbot", "!iasip The Gang Steals Kappa")
     CommandRouter(irc_response, logger).build_response()
     news = BreakingNews.last()
     assert news["scope"] == "The Gang Steals Kappa"