bumblebee-status/bumblebee_status/modules/contrib/publicip.py
tobi-wan-kenobi 3aadab5628 [modules/publicip] handle missing public ip more gracefully
If location does not throw, but reports an empty public IP, return
"n/a".

Since this caused a bug, also add a test for it.

fixes #853
2022-02-14 14:58:01 +01:00

28 lines
597 B
Python

"""Displays public IP address
"""
import core.module
import core.widget
import core.decorators
import util.location
class Module(core.module.Module):
@core.decorators.every(minutes=60)
def __init__(self, config, theme):
super().__init__(config, theme, core.widget.Widget(self.public_ip))
self.__ip = ""
def public_ip(self, widget):
return self.__ip or "n/a"
def update(self):
try:
self.__ip = util.location.public_ip()
except Exception:
self.__ip = None
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4