Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <forenjunkie@chello.at>2017-10-14 17:00:26 +0300
committerPhilipp Hörist <forenjunkie@chello.at>2017-10-14 17:00:51 +0300
commit55c3cf781c5fce647a68d9b508abeb637cdb141c (patch)
tree9fa741f69841d0be0d0763276719e23d17152cc7
parent786efee2e57907b405250b229596a20aac22af23 (diff)
Add AcronymExpanderPlugin
-rw-r--r--acronyms_expander/__init__.py1
-rw-r--r--acronyms_expander/acronyms69
-rw-r--r--acronyms_expander/acronyms_expander.py110
-rw-r--r--acronyms_expander/manifest.ini7
4 files changed, 187 insertions, 0 deletions
diff --git a/acronyms_expander/__init__.py b/acronyms_expander/__init__.py
new file mode 100644
index 0000000..6b85dc7
--- /dev/null
+++ b/acronyms_expander/__init__.py
@@ -0,0 +1 @@
+from .acronyms_expander import AcronymsExpanderPlugin
diff --git a/acronyms_expander/acronyms b/acronyms_expander/acronyms
new file mode 100644
index 0000000..7cbe8e5
--- /dev/null
+++ b/acronyms_expander/acronyms
@@ -0,0 +1,69 @@
+{"afaik": "as far as I know",
+"afaict": "as far as I can tell",
+"afk": "away from keyboard",
+"atm": "at the moment",
+"bbiab": "be back in a bit",
+"bbiaf": "be back in a few (minutes)",
+"bbl": "be back later",
+"bbs": "be back soon",
+"b/c": "because",
+"bf": "boyfriend",
+"bfo": "blinding flash of the obvious",
+"brb": "be right back",
+"bsod": "blue screen of death",
+"btw": "by the way",
+"ciao": "Italian for goodbye",
+"ctrn": "can't talk right now",
+"cul8r": "see you later",
+"cya": "see ya",
+"dhtb": "don't have the bandwidth",
+"f2f": "face to face",
+"fubar": "fucked up beyond all recognition",
+"fwiw": "for what it's worth",
+"fyi": "for your information",
+"gmta": "great minds think alike",
+"iam": "in a meeting",
+"ianal": "I am not a lawyer",
+"ihmb": "I hate my boss",
+"iirc": "if I recall correctly",
+"imho": "in my humble opinion",
+"imo": "in my opinion",
+"iow": "in other words",
+"irl": "in real life",
+"<g>": "grin",
+"*g*": "grin",
+"gf": "girlfriend",
+"gmta": "great minds think alike",
+"g2g": "got to go",
+"jid": "jabber identifier",
+"j/k": "just kidding",
+"ok": "okay",
+"lol": "laugh out loud",
+"l8r": "later",
+"msg": "message",
+"n/m": "never mind",
+"n/p": "no problem",
+"oAo": "over and out!",
+"omg": "oh my god",
+"oob": "out of band",
+"otoh": "on the other hand",
+"oww": "oops, wrong window!",
+"otp": "on the phone",
+"pita": "pain in the ass",
+"pov": "point of view",
+"pw": "password",
+"rotfl": "rolling on the floor laughing",
+"rsn": "real soon now",
+"rtfm": "read the friendly manual",
+"slap": "sounds like a plan",
+"thx": "thanks",
+"tia": "thanks in advance",
+"tla": "three-letter arconym",
+"ttfn": "ta ta for now",
+"ttyl": "talk to you later",
+"wb": "welcome back",
+"wfm": "works for me",
+"wtf": "what the fuck?!",
+"wtg": "way to go!",
+"xfer": "transfer",
+"ymmv": "your mileage may vary",}
diff --git a/acronyms_expander/acronyms_expander.py b/acronyms_expander/acronyms_expander.py
new file mode 100644
index 0000000..cbfd334
--- /dev/null
+++ b/acronyms_expander/acronyms_expander.py
@@ -0,0 +1,110 @@
+# -*- coding: utf-8 -*-
+
+## 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/>.
+##
+
+'''
+Acronyms expander plugin.
+
+:author: Mateusz Biliński <mateusz@bilinski.it>
+:since: 9th June 2008
+:copyright: Copyright (2008) Mateusz Biliński <mateusz@bilinski.it>
+:license: GPL
+'''
+
+import sys
+import os
+
+from gi.repository import Gtk
+from gi.repository import GObject
+
+from gajim.plugins import GajimPlugin
+from gajim.plugins.helpers import log, log_calls
+
+class AcronymsExpanderPlugin(GajimPlugin):
+
+ @log_calls('AcronymsExpanderPlugin')
+ def init(self):
+ self.description = _('Replaces acronyms (or other strings) '
+ 'with given expansions/substitutes.')
+ self.config_dialog = None
+
+ self.gui_extension_points = {
+ 'chat_control_base': (self.connect_with_chat_control_base,
+ self.disconnect_from_chat_control_base)
+ }
+
+ self.config_default_values = {
+ 'INVOKER': (' ', ''),
+ 'ACRONYMS': ({'/slap': '/me slaps',
+ 'PS-': 'plug-in system',
+ 'G-': 'Gajim',
+ 'GNT-': 'https://dev.gajim.org/gajim/gajim/issues',
+ 'GW-': 'https://dev.gajim.org/gajim/gajim/wikis/home',
+ },
+ ''),
+ }
+ if 'ACRONYMS' not in self.config:
+ myAcronyms = self.get_own_acronyms_list()
+ self.config['ACRONYMS'].update(myAcronyms)
+
+ @log_calls('AcronymsExpanderPlugin')
+ def get_own_acronyms_list(self):
+ data_file = self.local_file_path('acronyms')
+ if not os.path.isfile(data_file):
+ return {}
+ data = open(data_file, 'r')
+ acronyms = eval(data.read())
+ data.close()
+ return acronyms
+
+ @log_calls('AcronymsExpanderPlugin')
+ def textbuffer_live_acronym_expander(self, tb):
+ """
+ @param tb gtk.TextBuffer
+ """
+ #assert isinstance(tb,gtk.TextBuffer)
+ ACRONYMS = self.config['ACRONYMS']
+ INVOKER = self.config['INVOKER']
+ t = tb.get_text(tb.get_start_iter(), tb.get_end_iter(), True)
+ #log.debug('%s %d'%(t, len(t)))
+ if t and t[-1] == INVOKER:
+ #log.debug('changing msg text')
+ base, sep, head=t[:-1].rpartition(INVOKER)
+ log.debug('%s | %s | %s'%(base, sep, head))
+ if head in ACRONYMS:
+ head = ACRONYMS[head]
+ #log.debug('head: %s'%(head))
+ t = ''.join((base, sep, head, INVOKER))
+ #log.debug("setting text: '%s'"%(t))
+ GObject.idle_add(tb.set_text, t)
+
+ @log_calls('AcronymsExpanderPlugin')
+ def connect_with_chat_control_base(self, chat_control):
+ d = {}
+ tv = chat_control.msg_textview
+ tb = tv.get_buffer()
+ h_id = tb.connect('changed', self.textbuffer_live_acronym_expander)
+ d['h_id'] = h_id
+
+ chat_control.acronyms_expander_plugin_data = d
+
+ return True
+
+ @log_calls('AcronymsExpanderPlugin')
+ def disconnect_from_chat_control_base(self, chat_control):
+ d = chat_control.acronyms_expander_plugin_data
+ tv = chat_control.msg_textview
+ tv.get_buffer().disconnect(d['h_id'])
diff --git a/acronyms_expander/manifest.ini b/acronyms_expander/manifest.ini
new file mode 100644
index 0000000..4f2a00e
--- /dev/null
+++ b/acronyms_expander/manifest.ini
@@ -0,0 +1,7 @@
+[info]
+name: Acronyms Expander
+short_name: acronyms_expander
+version: 0.1
+description: Replaces acronyms (or other strings) with given expansions/substitutes.
+authors: Mateusz Biliński <mateusz@bilinski.it>
+homepage: http://blog.bilinski.it