def prof_on_chat_win_focus(barejid): if not ProfActiveOmemoChats.account_is_registered(barejid): # get remembered user sessions u_sess = prof.settings_string_list_get(SETTINGS_GROUP, 'omemo_sessions') if u_sess and barejid in u_sess: _start_omemo_session(barejid)
def _string_list(op, group, key, value): if op != "get" and op != "add" and op != "remove" and op != "remove_all": prof.cons_bad_cmd_usage("/python-test") return if op == "get": if group == None or key == None: prof.cons_bad_cmd_usage("/python-test") return res = prof.settings_string_list_get(group, key) prof.win_focus(plugin_win) if res is None: prof.win_show(plugin_win, "No list found") return prof.win_show(plugin_win, "String list:") for el in res: prof.win_show(plugin_win, " " + el) return if op == "add": if group == None or key == None or value == None: prof.cons_bad_cmd_usage("/python-test") return prof.settings_string_list_add(group, key, value) prof.win_focus(plugin_win) prof.win_show(plugin_win, "Added '" + value + "' to [" + group + "]" + " " + key) return if op == "remove": if group == None or key == None or value == None: prof.cons_bad_cmd_usage("/python-test") return res = prof.settings_string_list_remove(group, key, value) prof.win_focus(plugin_win) if res: prof.win_show( plugin_win, "Removed '" + value + "' from [" + group + "]" + " " + key) else: prof.win_show(plugin_win, "Error removing string item from list") return if op == "remove_all": if group == None or key == None: prof.cons_bad_cmd_usage("/python-test") return res = prof.settings_string_list_clear(group, key) prof.win_focus(plugin_win) if res: prof.win_show(plugin_win, "Removed all items from [" + group + "]" + " " + key) else: prof.win_show(plugin_win, "Error removing list") return
def prof_pre_chat_message_send(barejid, message): enabled = prof.settings_string_get("autocorrector", "enabled", "on") if enabled == "off": return message else: replacements = prof.settings_string_list_get("autocorrector", "replacements") for replacement in replacements: repl = replacement.split(':') message = message.replace(repl[0], repl[1]) return message
def _cmd_autocorrector(arg1=None, arg2=None): if arg1 == "on": prof.settings_string_set("autocorrector", "enabled", "on") prof.cons_show("autocorrector plugin enabled") elif arg1 == "off": prof.settings_string_set("autocorrector", "enabled", "off") prof.cons_show("autocorrector plugin disabled") elif arg1 == "clearall": prof.settings_string_list_clear("autocorrector", "replacements") prof.cons_show("autocorrector plugin replacement list cleared.") elif arg1 == "showlist": replacements = prof.settings_string_list_get("autocorrector", "replacements") prof.cons_show("Replacement string list:") for replacement in replacements: prof.cons_show(replacement) elif arg1 == "add": if arg2 == None: prof.cons_bad_cmd_usage("/autocorrector") else: if len(arg2.split(':')) == 2: prof.settings_string_list_add("autocorrector", "replacements", arg2) prof.cons_show("Replacement String added.") else: prof.cons_show( "Invalid replacement String. Please use the following format to specify replacements: pattern:replacement." ) elif arg1 == "rm": if arg2 == None: prof.cons_bad_cmd_usage("/autocorrector") else: if len(arg2.split(':')) == 2: prof.settings_string_list_remove("autocorrector", "replacements", arg2) prof.cons_show("Replacement String removed.") else: prof.cons_show( "Invalid replacement String. Please use the following format to specify replacements: pattern:replacement." ) else: enabled = prof.settings_string_get("autocorrector", "enabled", "on") if enabled == "off": prof.cons_show("autocorrector inactive.") else: prof.cons_show("autocorrector active.")
def _show_settings(): prof.cons_show("") prof.cons_show("Presence notify plugin settings:") mode = prof.settings_string_get("presence_notify", "mode", "all") prof.cons_show("Mode: {mode}".format(mode=mode)) resource = prof.settings_boolean_get("presence_notify", "resource", False) if resource: prof.cons_show("Resource: ON") else: prof.cons_show("Resource: OFF") ignored_list = prof.settings_string_list_get("presence_notify", "ignored") if ignored_list and len(ignored_list) > 0: prof.cons_show("Ignored:") for contact in ignored_list: prof.cons_show(" {barejid}".format(barejid=contact))
def prof_post_room_message_display(barejid, nick, message): my_nick = prof.get_room_nick(barejid) if not my_nick: return if my_nick == nick: return; enabled = prof.settings_boolean_get("sounds", "enabled", False) if not enabled: return soundfile = prof.settings_string_get("sounds", "room", None) if not soundfile: return roomlist = prof.settings_string_list_get("sounds", "rooms") if roomlist and (barejid not in roomlist): return _play_sound(soundfile)
def _do_notify(barejid, presence): ignored = prof.settings_string_list_get("presence_notify", "ignored") if ignored and barejid in ignored: return False mode = prof.settings_string_get("presence_notify", "mode", "all") if mode == "all": return True elif mode == "online": if barejid in online: if presence == "offline": online.remove(barejid) return True else: return False else: if presence != "offline": online.add(barejid) return True else: return False else: # off return False
def _cmd_sounds(arg1=None, arg2=None, arg3=None): if not arg1: prof.cons_show("") enabled = prof.settings_boolean_get("sounds", "enabled", False) chatsound = prof.settings_string_get("sounds", "chat", None) roomsound = prof.settings_string_get("sounds", "room", None) privatesound = prof.settings_string_get("sounds", "private", None) roomlist = prof.settings_string_list_get("sounds", "rooms") if chatsound or roomsound or privatesound: if enabled: prof.cons_show("Sounds: ON") else: prof.cons_show("Sounds: OFF") if chatsound: prof.cons_show(" Chat : " + chatsound) if roomsound: prof.cons_show(" Room : " + roomsound) if roomlist and len(roomlist) > 0: for room in roomlist: prof.cons_show(" " + room) else: prof.cons_show(" All rooms") if privatesound: prof.cons_show(" Private : " + privatesound) else: prof.cons_show("No sounds set.") return if arg1 == "on": prof.settings_boolean_set("sounds", "enabled", True) prof.cons_show("Sounds enabled") return if arg1 == "off": prof.settings_boolean_set("sounds", "enabled", False) prof.cons_show("Sounds disabled") return if arg1 == "set": if arg2 == "chat": prof.settings_string_set("sounds", "chat", arg3) prof.cons_show("Set chat sound: " + arg3) elif arg2 == "room": prof.settings_string_set("sounds", "room", arg3) prof.cons_show("Set room sound: " + arg3) elif arg2 == "private": prof.settings_string_set("sounds", "private", arg3) prof.cons_show("Set private sound: " + arg3) else: prof.cons_bad_cmd_usage("/sounds") return if arg1 == "clear": if arg2 == "chat": prof.settings_string_set("sounds", "chat", "") prof.cons_show("Removed chat sound.") elif arg2 == "room": prof.settings_string_set("sounds", "room", "") prof.cons_show("Removed room sound.") elif arg2 == "private": prof.settings_string_set("sounds", "private", "") prof.cons_show("Removed private sound.") else: prof.cons_bad_cmd_usage("/sounds") return if arg1 == "rooms": if arg2 == "add": if not arg3: prof.cons_bad_cmd_usage("/sounds") else: prof.settings_string_list_add("sounds", "rooms", arg3) prof.cons_show("Sounds enabled for room: " + arg3) elif arg2 == "remove": if not arg3: prof.cons_bad_cmd_usage("/sounds") else: prof.settings_string_list_remove("sounds", "rooms", arg3) roomlist = prof.settings_string_list_get("sounds", "rooms") if roomlist and len(roomlist) > 0: prof.cons_show("Sounds disabled for room: " + arg3) else: prof.cons_show("Empty room list for sounds, playing in all rooms.") elif arg2 == "clear": prof.settings_string_list_clear("sounds", "rooms") prof.cons_show("Cleared sounds room list, playing in all rooms.") else: prof.cons_bad_cmd_usage("/sounds") return prof.cons_bad_cmd_usage("/sounds")