Quassel Notify


Recommended Posts

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
     
    Options
    Settings/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.

Link to comment
  • 1 month later...

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>

Link to comment

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?

Link to comment

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.

Link to comment

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.

 

Link to comment

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.

Link to comment

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.

Link to comment

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

Link to comment

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.

 

Link to comment
  • 5 months later...

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

Link to comment
  • 2 weeks later...

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?

Link to comment
  • 4 months later...

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.