Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def init(self):
""" Initialize the connection to the FRITZ!Box """
self._fc = fritzconnection.FritzConnection(
address=self._fritz_address, port=self._fritz_port,
user=self._fritz_user, password=self._fritz_password)
if self._fc.modelname is None:
self._fc = None
raise IOError("fritzcollectd: Failed to connect to %s" %
self._fritz_address)
if not self._fc.call_action('WANIPConn:1', 'GetStatusInfo'):
self._fc = None
raise IOError("fritzcollectd: Statusinformation via UPnP is "
"not enabled")
if self._fritz_password != '':
# If the 'Allow access for applications' option is disabled,
# the connection behaves as if it was created without password.
if 'WANIPConnection:1' not in self._fc.services.keys():
# can happen on none-text nodes like comments
# ignore this
pass
@staticmethod
def node_name(node):
"""
Strips the namespace from the node-tag and returns the remaining
part as node-name.
"""
if isinstance(node.tag, str):
return node.tag.split('}')[-1]
return node.tag
class SpecVersion(AbstractDescriptionNode):
"""
Specification version node holding the description file
specification version from the schema device or service
informations.
"""
@property
def version(self):
return f'{self.major}.{self.minor}'
class Service(AbstractDescriptionNode):
"""
Storage for service attributes, like:
serviceType: urn:schemas-upnp-org:service:WANIPConnection:1
serviceId: urn:upnp-org:serviceId:WANIPConn1
return node.tag
class SpecVersion(AbstractDescriptionNode):
"""
Specification version node holding the description file
specification version from the schema device or service
informations.
"""
@property
def version(self):
return f'{self.major}.{self.minor}'
class Service(AbstractDescriptionNode):
"""
Storage for service attributes, like:
serviceType: urn:schemas-upnp-org:service:WANIPConnection:1
serviceId: urn:upnp-org:serviceId:WANIPConn1
controlURL: /igdupnp/control/WANIPConn1
eventSubURL: /igdupnp/control/WANIPConn1
SCPDURL: /igdconnSCPD.xml
"""
scpd = None
@property
def name(self):
return self.serviceId.split(':')[-1]
@property
def get_link_speed():
fc = fritzconnection.FritzConnection()
status = fc.call_action('WANCommonInterfaceConfig', 'GetCommonLinkProperties')
downstream = status['NewLayer1DownstreamMaxBitRate'] / 8.
upstream = status['NewLayer1UpstreamMaxBitRate'] / 8.
return (upstream, downstream)
def __init__(self,
fc=None,
address=fritzconnection.FRITZ_IP_ADDRESS,
port=fritzconnection.FRITZ_TCP_PORT,
user=fritzconnection.FRITZ_USERNAME,
password=''):
super(FritzCall, self).__init__()
if fc is None:
fc = fritzconnection.FritzConnection(address, port, user, password)
self.fc = fc
self.calls = None
def __init__(self, address, port, user, password):
super(FritzAccess, self).__init__()
self.fc = fritzconnection.FritzConnection(address, port, user, password)
def main():
prefs = read_configuration(os.path.join(os.path.dirname(__file__),'fritz-speed.ini'))
fc = fritzconnection.FritzConnection()
status = fc.call_action('WANCommonInterfaceConfig', 'GetTotalBytesSent')
bytes_up = status['NewTotalBytesSent']
status = fc.call_action('WANCommonInterfaceConfig', 'GetTotalBytesReceived')
bytes_down = status['NewTotalBytesReceived']
update_rra(prefs['rra_filename'], str(bytes_up), str(bytes_down))
port=DEFAULT_PORT,
profile_on = DEFAULT_PROFILE_ON,
profile_off = DEFAULT_PROFILE_OFF,
device_list = DEFAULT_DEVICES,
use_port = DEFAULT_USE_PORT,
use_deflections = DEFAULT_USE_DEFLECTIONS,
use_wifi = DEFAULT_USE_WIFI,
use_devices = DEFAULT_USE_DEVICES,
):
# pylint: disable=import-error
from fritzconnection import FritzConnection
from fritzconnection.lib.fritzstatus import FritzStatus
from fritz_switch_profiles import FritzProfileSwitch
# general timeout for all requests to the router. Some calls need quite some time.
self.connection = FritzConnection(
address=host, port=port, user=username, password=password, timeout=30.0
)
if device_list != DEFAULT_DEVICES:
self.profile_switch = FritzProfileSwitch(
"http://" + host, username, password
)
self.fritzstatus = FritzStatus(fc=self.connection)
self.ha_ip = get_local_ip()
self.profile_on = profile_on
self.profile_off = profile_off
self.profile_last_updated = time.time()
self.device_list = device_list
self.username = username
def __init__(self,
fc=None,
address=fritzconnection.FRITZ_IP_ADDRESS,
port=fritzconnection.FRITZ_TCP_PORT,
user=fritzconnection.FRITZ_USERNAME,
password=''):
super(FritzPhonebook, self).__init__()
if fc is None:
fc = fritzconnection.FritzConnection(address, port, user, password)
self.fc = fc
def get_version():
return fritzconnection.get_version()