def _on_say_command(word, word_eol, userdata): channel = ffi.string(lib.hexchat_get_info(lib.ph, b'channel')) if channel == b'>>python<<': python = ffi.string(word_eol[1]) lib.hexchat_print(lib.ph, b'>>> ' + python) exec_in_interp(__decode(python)) return 0
def _on_say_command(word, word_eol, userdata): channel = ffi.string(lib.hexchat_get_info(lib.ph, b'channel')) if channel == b'>>python<<': python = ffi.string(word_eol[1]) lib.hexchat_print(lib.ph, b'>>> ' + python) exec_in_interp(__decode(python)) return 1 return 0
def get_info(name): ret = lib.hexchat_get_info(lib.ph, name.encode()) if ret == ffi.NULL: return None if name in ('gtkwin_ptr', 'win_ptr'): # Surely there is a less dumb way? ptr = repr(ret).rsplit(' ', 1)[1][:-1] return ptr return __decode(ffi.string(ret))
def get_info(name): ret = lib.hexchat_get_info(lib.ph, name.encode()) if ret == ffi.NULL: return None if name in ('gtkwin_ptr', 'win_ptr'): # Surely there is a less dumb way? ptr = repr(ret).rsplit(' ', 1)[1][:-1] return ptr return __decode(ffi.string(ret))
def load_filename(filename): filename = os.path.expanduser(filename) if not os.path.isabs(filename): configdir = __decode(ffi.string(lib.hexchat_get_info(lib.ph, b'configdir'))) filename = os.path.join(configdir, 'addons', filename) if filename and not any(plugin.filename == filename for plugin in plugins): plugin = Plugin() if plugin.loadfile(filename): plugins.add(plugin) return True return False
def load_filename(filename): filename = os.path.expanduser(filename) if not os.path.isabs(filename): configdir = __decode(ffi.string(lib.hexchat_get_info(lib.ph, b'configdir'))) filename = os.path.join(configdir, 'addons', filename) if filename and not any(plugin.filename == filename for plugin in plugins): plugin = Plugin() if plugin.loadfile(filename): plugins.add(plugin) return True return False
def autoload(): configdir = __decode(ffi.string(lib.hexchat_get_info(lib.ph, b'configdir'))) addondir = os.path.join(configdir, 'addons') try: with change_cwd(addondir): # Maintaining old behavior for f in os.listdir(addondir): if f.endswith('.py'): log('Autoloading', f) # TODO: Set cwd load_filename(os.path.join(addondir, f)) except FileNotFoundError as e: log('Autoload failed', e)
def autoload(): configdir = __decode(ffi.string(lib.hexchat_get_info(lib.ph, b'configdir'))) addondir = os.path.join(configdir, 'addons') try: with change_cwd(addondir): # Maintaining old behavior for f in os.listdir(addondir): if f.endswith('.py'): log('Autoloading', f) # TODO: Set cwd load_filename(os.path.join(addondir, f)) except FileNotFoundError as e: log('Autoload failed', e)