[regex_filter] Remove plugin

Plugin is currently not compatible with Gajim 1.5
This commit is contained in:
wurstsalat
2022-11-29 19:36:59 +01:00
parent 32c8534b1f
commit bb82b2a34d
4 changed files with 0 additions and 151 deletions

View File

@@ -1 +0,0 @@
from .regex_filter import RegexFilterPlugin

View File

@@ -1,20 +0,0 @@
{
"authors": [
"Yann Leboulanger <asterix@lagaule.org>"
],
"description": "Filter incoming messages using regex.",
"homepage": "https://dev.gajim.org/gajim/gajim-plugins/wikis/RegexFilterPlugin",
"config_dialog": false,
"name": "Regex Filter",
"platforms": [
"others",
"linux",
"darwin",
"win32"
],
"requirements": [
"gajim>=1.4.0"
],
"short_name": "regex_filter",
"version": "1.4.2"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

View File

@@ -1,130 +0,0 @@
# This file is part of Gajim.
#
# Gajim is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; version 3 only.
#
# Gajim is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
'''
Regex Filter plugin.
:author: Yann Leboulanger <asterix@lagaule.org>
:since: 23th September 2011
:copyright: Copyright (2011) Yann Leboulanger <asterix@lagaule.org>
:license: GPLv3
'''
import re
from gajim.plugins import GajimPlugin
from gajim.common import app
from gajim.common import ged
from gajim.command_system.framework import CommandContainer, command, doc
from gajim.command_system.implementation.hosts import ChatCommands
from gajim.command_system.implementation.hosts import GroupChatCommands
from gajim.command_system.implementation.hosts import PrivateChatCommands
from gajim.plugins.plugins_i18n import _
class RegexFilterPlugin(GajimPlugin):
def init(self):
self.description = _('Filter messages with regex')
self.config_dialog = None
self.events_handlers = {
'message-received': (ged.PREGUI1, self._on_message_received),
'gc-message-received': (ged.PREGUI1, self._on_gc_message_received),
}
self.create_rules()
def activate(self):
FilterCommands.enable()
def deactivate(self):
FilterCommands.disable()
def create_rules(self):
self.rules = {}
for num, c in self.config.items():
self.rules[int(num)] = [re.compile(c[0], re.MULTILINE), c[1]]
def add_rule(self, search, replace):
if self.rules:
num = max(self.rules.keys()) + 1
else:
num = 0
self.config[str(num)] = [search, replace]
self.create_rules()
def remove_rule(self, num):
if num in self.config:
del self.config[num]
self.create_rules()
return True
return False
def get_rules(self):
return self.config
def _nec_all(self, obj):
if not obj.msgtxt:
return
rules_num = sorted(self.rules.keys())
for num in rules_num:
rule = self.rules[num]
obj.msgtxt = rule[0].sub(rule[1], obj.msgtxt)
def _on_message_received(self, obj):
self._nec_all(obj)
def _on_gc_message_received(self, obj):
self._nec_all(obj)
class FilterCommands(CommandContainer):
AUTOMATIC = False
HOSTS = ChatCommands, PrivateChatCommands, GroupChatCommands
@command("add_filter", raw=True)
@doc(_("Add an incoming filter. First argument is the search regex, "
"second argument is the replace regex."))
def add_filter(self, search, replace):
plugin = app.plugin_manager.get_active_plugin('regex_filter')
plugin.add_rule(search, replace)
return _('Added rule to replace %(search)s by %(replace)s' % {
'search': search, 'replace': replace})
@command("remove_filter", raw=True)
@doc(_("Remove an incoming filter. Argument is the rule number. "
"See /list_rules command."))
def remove_filter(self, num):
plugin = app.plugin_manager.get_active_plugin('regex_filter')
if plugin.remove_rule(num):
return _('Rule number %s removed' % num)
return _('Rule number %s does not exist' % num)
@command("list_filters")
@doc(_("List incoming filters."))
def list_filters(self):
plugin = app.plugin_manager.get_active_plugin('regex_filter')
rules = plugin.get_rules()
st = ''
for num, rule in rules.items():
st += _('%(num)s: %(search)s -> %(replace)s') % {
'num': num,
'search': rule[0],
'replace': rule[1]} + '\n'
if st:
return st[:-1]
else:
return _('No rule defined')