from pywinauto.application import Application from src import data from src import config def send_text(text: str) -> None: app = Application() app.connect(title='Path of Exile') win = app.window(title_re='Path of Exile') text = escape_mods(text) win.type_keys('{ENTER}^A{DELETE}' + text + '{ENTER}', with_spaces=True, pause=config.conf['General']['after_sendkeys_key_wait']) def escape_mods(text: str) -> str: text = text.replace('%', '{%}') text = text.replace('+', '{+}') text = text.replace('^', '{^}') text = text.replace('(', '{(}') text = text.replace(')', '{)}') return text def send_to(user: str, text: str) -> None: send_text(f'@{user} {text}') def send_to_format(type: str, message: data.Message) -> None: """Send a message defined in the conf dict to a user Args: type (str): The type of message. This is defined in conf['Chat']. message (data.Message): Message data. Placeholders in the message type will be replaced with this data. conf (dict): Configution dictionary where the messages are stored. """ if message.trade: text = config.conf['Chat'][type].format(message=message.message, date=message.date, channel=message.channel.name, user=message.user, guild=message.guild, to_from=message.to_from, item=message.trade.item, amount=message.trade.amount, currency=message.trade.currency, tab=message.trade.tab, row=message.trade.row, col=message.trade.col, league=message.trade.league) else: text = config.conf['Chat'][type].format(message=message.message, date=message.date, channel=message.channel.name, user=message.user, guild=message.guild, to_from=message.to_from) send_to(message.user, text) def invite(message: data.Message) -> None: send_text(f'/invite {message.user}') def kick(message: data.Message) -> None: send_text(f'/kick {message.user}') def trade(message: data.Message) -> None: send_text(f'/tradewith {message.user}')