|
|
|
@ -1,7 +1,5 @@
|
|
|
|
|
# Twisted/Klein imports
|
|
|
|
|
from twisted.logger import Logger
|
|
|
|
|
from twisted.internet import reactor
|
|
|
|
|
from twisted.internet.task import LoopingCall, deferLater
|
|
|
|
|
|
|
|
|
|
# Other library imports
|
|
|
|
|
from httpx import ReadTimeout, ReadError, RemoteProtocolError
|
|
|
|
@ -25,26 +23,6 @@ def xmerge_attrs(init_map):
|
|
|
|
|
setattr(object_instance, classname_inside, object_instance_inside)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def setup_call_loops(token_setting, function_init, function_continuous, delay, function_post_start=None):
|
|
|
|
|
"""
|
|
|
|
|
Setup the loops for dealing with access, refresh and auth tokens for various providers.
|
|
|
|
|
:param token_setting: the setting for whether to do the initial authentication
|
|
|
|
|
:param function_init: the initial authentication function
|
|
|
|
|
:param function_continuous: the ongoing authentication function (refresh_token -> access_token)
|
|
|
|
|
:param delay: time in seconds to wait between calls to function_continuous
|
|
|
|
|
:param function_post_start: an optional function to run after the access token is obtained
|
|
|
|
|
"""
|
|
|
|
|
if token_setting == "1":
|
|
|
|
|
deferLater(reactor, 1, function_init)
|
|
|
|
|
else:
|
|
|
|
|
deferLater(reactor, 1, function_continuous, True)
|
|
|
|
|
if function_post_start:
|
|
|
|
|
deferLater(reactor, 4, function_post_start)
|
|
|
|
|
|
|
|
|
|
lc = LoopingCall(function_continuous)
|
|
|
|
|
lc.start(delay)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def convert(data):
|
|
|
|
|
"""
|
|
|
|
|
Recursively convert a dictionary.
|
|
|
|
|