changeset 64fb0af1f66b in bugs.tryton.org:default
details: https://hg.tryton.org/bugs.tryton.org?cmd=changeset;node=64fb0af1f66b
description:
Remove irker detector
diffstat:
detectors/config.ini | 2 -
detectors/irker.py | 92 ----------------------------------------------------
2 files changed, 0 insertions(+), 94 deletions(-)
diffs (105 lines):
diff -r 142e39a73dce -r 64fb0af1f66b detectors/config.ini
--- a/detectors/config.ini Wed Dec 02 10:13:56 2020 +0100
+++ b/detectors/config.ini Fri Dec 11 13:58:19 2020 +0100
@@ -11,5 +11,3 @@
# a new message and add information without setting the status
# to chatting.
chatting_requires_two_users = True
-[irker]
-channels = irc://chat.freenode.net/tryton-commit
diff -r 142e39a73dce -r 64fb0af1f66b detectors/irker.py
--- a/detectors/irker.py Wed Dec 02 10:13:56 2020 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-# Detector for sending changes to irker
-# Written by Ezio Melotti
-
-import re
-import json
-import socket
-import logging
-
-IRKER_HOST = 'localhost'
-IRKER_PORT = 6659
-
-max_content = 120
-logger = logging.getLogger(__name__)
-
-TEMPLATE = ('%(green)s%(author)s%(reset)s '
- '%(bluish)s#%(nodeid)s%(reset)s/%(title)s%(bold)s:%(bold)s '
- '%(log)s %(url)s')
-
-
-def sendmsg(msg):
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- try:
- sock.connect((IRKER_HOST, IRKER_PORT))
- sock.sendall(msg.encode('utf-8') + b"\n")
- finally:
- sock.close()
-
-
-def notify_irker(db, cl, nodeid, oldvalues):
- typeid = cl.get(nodeid, 'type')
- if typeid and db.type.get(typeid, 'name') == 'security':
- return
- messages = set(cl.get(nodeid, 'messages'))
- if oldvalues:
- messages -= set(oldvalues.get('messages',()))
- if not messages:
- return
- messages = list(messages)
-
- if oldvalues:
- oldstatus = oldvalues['status']
- else:
- oldstatus = None
- newstatus = db.issue.get(nodeid, 'status')
- if oldstatus != newstatus:
- if oldvalues:
- status = db.status.get(newstatus, 'name')
- else:
- status = 'new'
- log = '[' + status + '] '
- else:
- log = ''
- for msg in messages:
- log += db.msg.get(msg, 'content')
- if len(log) > max_content:
- log = log[:max_content-3] + '...'
- log = re.sub('\s+', ' ', log)
-
- # include irc colors
- params = {
- 'bold': '\x02',
- 'green': '\x0303',
- 'blue': '\x0302',
- 'bluish': '\x0310',
- 'yellow': '\x0307',
- 'brown': '\x0305',
- 'reset': '\x0F'
- }
- # extend with values used in the template
- params['author'] = db.user.get(db.getuid(), 'username')
- params['nodeid'] = nodeid
- params['title'] = db.issue.get(nodeid, 'title')
- params['log'] = log
- params['url'] = '%sissue%s' % (db.config.TRACKER_WEB, nodeid)
-
- # create the message and use the list of channels defined in
- # detectors/config.ini
- msg = json.dumps({
- 'to': db.config.detectors.IRKER_CHANNELS.split(','),
- 'privmsg': TEMPLATE % params,
- })
-
- try:
- sendmsg(msg)
- except Exception as e:
- # Ignore any errors in sending the irker;
- # if the server is down, that's just bad luck
- logger.error('* Sending message to irker failed', exc_info=True)
-
-def init(db):
- db.issue.react('create', notify_irker)
- db.issue.react('set', notify_irker)