[modules/github] - Removed legacy module
This commit is contained in:
parent
1158c57f85
commit
f7e37ef7d7
1 changed files with 0 additions and 73 deletions
|
@ -1,73 +0,0 @@
|
||||||
# pylint: disable=C0111,R0903
|
|
||||||
|
|
||||||
"""Displays the unread GitHub notifications for a GitHub user
|
|
||||||
|
|
||||||
Requires the following library:
|
|
||||||
* requests
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
* github.token: GitHub user access token, the token needs to have the 'notifications' scope.
|
|
||||||
* github.interval: Interval in minutes between updates, default is 5.
|
|
||||||
|
|
||||||
contributed by `yvesh <https://github.com/yvesh>`_ - many thanks!
|
|
||||||
"""
|
|
||||||
|
|
||||||
import shutil
|
|
||||||
import requests
|
|
||||||
|
|
||||||
import core.module
|
|
||||||
import core.widget
|
|
||||||
import core.decorators
|
|
||||||
import core.input
|
|
||||||
|
|
||||||
|
|
||||||
class Module(core.module.Module):
|
|
||||||
@core.decorators.every(minutes=5)
|
|
||||||
def __init__(self, config, theme):
|
|
||||||
super().__init__(config, theme, core.widget.Widget(self.github))
|
|
||||||
|
|
||||||
self.__count = 0
|
|
||||||
self.__requests = requests.Session()
|
|
||||||
self.__requests.headers.update(
|
|
||||||
{"Authorization": "token {}".format(self.parameter("token", ""))}
|
|
||||||
)
|
|
||||||
|
|
||||||
cmd = "xdg-open"
|
|
||||||
if not shutil.which(cmd):
|
|
||||||
cmd = "x-www-browser"
|
|
||||||
|
|
||||||
core.input.register(
|
|
||||||
self,
|
|
||||||
button=core.input.LEFT_MOUSE,
|
|
||||||
cmd="{} https://github.com/notifications".format(cmd),
|
|
||||||
)
|
|
||||||
core.input.register(self, button=core.input.RIGHT_MOUSE, cmd=self.update)
|
|
||||||
|
|
||||||
def github(self, _):
|
|
||||||
return str(self.__count)
|
|
||||||
|
|
||||||
def update(self):
|
|
||||||
try:
|
|
||||||
self.__count = 0
|
|
||||||
url = "https://api.github.com/notifications"
|
|
||||||
while True:
|
|
||||||
notifications = self.__requests.get(url)
|
|
||||||
self.__count += len(
|
|
||||||
list(
|
|
||||||
filter(
|
|
||||||
lambda notification: notification["unread"],
|
|
||||||
notifications.json(),
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
next_link = notifications.links.get("next")
|
|
||||||
if next_link is not None:
|
|
||||||
url = next_link.get("url")
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
|
|
||||||
except Exception:
|
|
||||||
self.__count = "n/a"
|
|
||||||
|
|
||||||
|
|
||||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
|
Loading…
Reference in a new issue