dmacias Posted May 21, 2016 Share Posted May 21, 2016 Quassel Notify Based on repository https://github.com/Zren/PyQuassel The Quassel Notify plugin allows you to receive Pushbullet notifications based on keywords from Quassel Core Server. It uses PyQuassel which is a pure python implementation of QuasselClient. Doesn't depend on any PySide or PyQt libraries. 1. Copy the plugin url: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/qnotify.plg 2. Paste url into install plugin text input and click install OptionsSettings/QNotify Host Address: Only localhost will work. Quassel Core has to be in HOST mode. Port: Quassel Core Port User Name: Username used to log in to Quassel Core Server Password: Password used to log in to Quassel Core Server Pushbullet access token: Access token for your Pushbullet Account. If unRAID notifications are setup it will pull the token from there. Pushbullet Device Name: Device name you wish to push to. Notification Keywords: Keywords to search Quassel Core messages. Known bugs: Need to check for Quassel Core running. Have to manually start on boot or after array stop. Change Log: ###2016.06.23 - fix: compile separate Python 3.5.1 for unRAID 6.1 ###2016.05.28 - add log file ###2016.05.22 - fix: get token from notification settings - fix: clear settings when stopping ###2016.05.20 - add dynamix plugin update api ###2016.05.19 - initial unRAID 6 release. Quote Link to comment
dmacias Posted May 21, 2016 Author Share Posted May 21, 2016 If someone could test this on 6.1.9. I'm not tottally positive it will work since I compiled python3 on 6.2. So I may have to compile for 6.1. Quote Link to comment
flaggart Posted June 23, 2016 Share Posted June 23, 2016 Installed, and it connects to quassel core OK. However, when it detects a keyword: Error while calling plugin_pushbullet.onMessageRecieved Traceback (most recent call last): File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselbot.py", line 45, in pluginCall fn(self, *args) File "plugins/pushbullet.py", line 37, in onMessageRecieved device = pushNotification.get_device(nickname=bot.config.pushbulletDeviceName) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 50, in get_device device_list = self.get_device_list() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 46, in get_device_list data = self.session.get('https://api.pushbullet.com/v2/devices') File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 26, in get return self.request(*args, method='GET', **kwargs) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 21, in request with urllib.request.urlopen(req) as res: File "/usr/lib64/python3.5/urllib/request.py", line 162, in urlopen return opener.open(url, data, timeout) File "/usr/lib64/python3.5/urllib/request.py", line 465, in open response = self._open(req, data) File "/usr/lib64/python3.5/urllib/request.py", line 488, in _open 'unknown_open', req) File "/usr/lib64/python3.5/urllib/request.py", line 443, in _call_chain result = func(*args) File "/usr/lib64/python3.5/urllib/request.py", line 1310, in unknown_open raise URLError('unknown url type: %s' % type) urllib.error.URLError: <urlopen error unknown url type: https> Quote Link to comment
dmacias Posted June 23, 2016 Author Share Posted June 23, 2016 Installed, and it connects to quassel core OK. However, when it detects a keyword: Error while calling plugin_pushbullet.onMessageRecieved Traceback (most recent call last): File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselbot.py", line 45, in pluginCall fn(self, *args) File "plugins/pushbullet.py", line 37, in onMessageRecieved device = pushNotification.get_device(nickname=bot.config.pushbulletDeviceName) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 50, in get_device device_list = self.get_device_list() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 46, in get_device_list data = self.session.get('https://api.pushbullet.com/v2/devices') File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 26, in get return self.request(*args, method='GET', **kwargs) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/pushbullet.py", line 21, in request with urllib.request.urlopen(req) as res: File "/usr/lib64/python3.5/urllib/request.py", line 162, in urlopen return opener.open(url, data, timeout) File "/usr/lib64/python3.5/urllib/request.py", line 465, in open response = self._open(req, data) File "/usr/lib64/python3.5/urllib/request.py", line 488, in _open 'unknown_open', req) File "/usr/lib64/python3.5/urllib/request.py", line 443, in _call_chain result = func(*args) File "/usr/lib64/python3.5/urllib/request.py", line 1310, in unknown_open raise URLError('unknown url type: %s' % type) urllib.error.URLError: <urlopen error unknown url type: https> What version unRAID are you on? Did you or are you able to select a Pushbullet Device Name? Quote Link to comment
flaggart Posted June 23, 2016 Share Posted June 23, 2016 6.1.7. Yes I set Pushbullet device name. Is this a Python issue? I have 2.7.9 installed for something else.. and this needs 3.x? Quote Link to comment
CHBMB Posted June 23, 2016 Share Posted June 23, 2016 6.1.7. Yes I set Pushbullet device name. Is this a Python issue? I have 2.7.9 installed for something else.. and this needs 3.x? Would recommed you update to 6.1.9 The base Slackware was changed from 14.1 for 6.1.9 to Slackware current for V6.2 onwards. So this requires different versions utilising depending on which version of Unraid is installed. Quote Link to comment
dmacias Posted June 23, 2016 Author Share Posted June 23, 2016 6.1.7. Yes I set Pushbullet device name. Is this a Python issue? I have 2.7.9 installed for something else.. and this needs 3.x? Python 2.7.9 is fine. This installs Python 3.5.1. However it was compiled on unRAID 6.2. So I guess you answered my question in the second post. I'll compile Python 3 on unRAID 6.1 and update the plugin. Any other precompiled Python 3 packages I tried won't work. They are either compiled without SSL or with a version that's not compatible with unRAID's SSL version. Quote Link to comment
dmacias Posted June 23, 2016 Author Share Posted June 23, 2016 6.1.7. Yes I set Pushbullet device name. Is this a Python issue? I have 2.7.9 installed for something else.. and this needs 3.x? Would recommed you update to 6.1.9 The base Slackware was changed from 14.1 for 6.1.9 to Slackware current for V6.2 onwards. So this requires different versions utilising depending on which version of Unraid is installed. Do you know if there's a native docker command or something to check if a docker is running? If not I'll look through the docker man code. That may not work completely either though. It would still fail if Quassel Core was running but not ready to receive a connection yet. I may have to try and modify the python code. Quote Link to comment
flaggart Posted June 23, 2016 Share Posted June 23, 2016 It would be nice if there was another way, as my Quassel core is on a remote machine. I rigged your plugin to connect to it through a ssh tunnel I expect this isn't your typical use-case though. Quote Link to comment
dmacias Posted June 23, 2016 Author Share Posted June 23, 2016 It would be nice if there was another way, as my Quassel core is on a remote machine. I rigged your plugin to connect to it through a ssh tunnel I expect this isn't your typical use-case though. That may be a problem too. I couldn't get the python script to work if my Quassel Core docker was not set to host mode using localhost. I compiled python 3 for unRAID 6.1 and updated the plugin. Give it a try and let me know. Also you could just export the PyQuassel folder from the plugin and run it on the remote machine, replace the symlink to config.py with the config file and just start quasselbot.py with Quassel Core. Quote Link to comment
flaggart Posted June 24, 2016 Share Posted June 24, 2016 It seems unable to connect to the core now, where as before that part worked. Plugin "plugins/pushbullet.py" loaded. Traceback (most recent call last): File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselbot.py", line 74, in <module> quasselClient.run() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 269, in run self.createSession() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 262, in createSession self.readSessionState() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 114, in readSessionState data = self.stream.read() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 309, in read buf = self.device.read(4) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 72, in read buf = self.socket.recv(maxSize) socket.timeout: timed out Quote Link to comment
dmacias Posted June 27, 2016 Author Share Posted June 27, 2016 It seems unable to connect to the core now, where as before that part worked. Plugin "plugins/pushbullet.py" loaded. Traceback (most recent call last): File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselbot.py", line 74, in <module> quasselClient.run() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 269, in run self.createSession() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 262, in createSession self.readSessionState() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 114, in readSessionState data = self.stream.read() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 309, in read buf = self.device.read(4) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 72, in read buf = self.socket.recv(maxSize) socket.timeout: timed out I'll try compiling python3 again maybe I missed a dependency. Quote Link to comment
bnevets27 Posted November 29, 2016 Share Posted November 29, 2016 It seems unable to connect to the core now, where as before that part worked. Plugin "plugins/pushbullet.py" loaded. Traceback (most recent call last): File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselbot.py", line 74, in <module> quasselClient.run() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 269, in run self.createSession() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 262, in createSession self.readSessionState() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 114, in readSessionState data = self.stream.read() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 309, in read buf = self.device.read(4) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 72, in read buf = self.socket.recv(maxSize) socket.timeout: timed out I get the same error, I'm running unraid version 6.2.4 Quote Link to comment
dmacias Posted December 11, 2016 Author Share Posted December 11, 2016 It seems unable to connect to the core now, where as before that part worked. Plugin "plugins/pushbullet.py" loaded. Traceback (most recent call last): File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselbot.py", line 74, in <module> quasselClient.run() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 269, in run self.createSession() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 262, in createSession self.readSessionState() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/quasselclient.py", line 114, in readSessionState data = self.stream.read() File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 309, in read buf = self.device.read(4) File "/usr/local/emhttp/plugins/qnotify/PyQuassel/qt.py", line 72, in read buf = self.socket.recv(maxSize) socket.timeout: timed out I get the same error, I'm running unraid version 6.2.4 Sorry I didn't see your post earlier. I'm on 6.3 but it's working for me. Is your docker set to host? Quote Link to comment
bnevets27 Posted December 11, 2016 Share Posted December 11, 2016 Yes, it is set to host. Sent using Tapatalk Quote Link to comment
jrdnlc Posted May 1, 2017 Share Posted May 1, 2017 Any plans to have Pushover support on this? Quote Link to comment
dmacias Posted May 1, 2017 Author Share Posted May 1, 2017 Any plans to have Pushover support on this?Not really unless someone wants to convert the pushbullet.py to use pushover. The underlying scripts are not mine. Zren had a previous java node implementation that had pushover. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.