|
@@ -154,6 +154,25 @@ def ffpb_findnode(name):
|
|
|
|
|
|
return None
|
|
|
|
|
|
+def ffpb_findnode_from_botparam(bot, name, ensure_recent_alfreddata = True):
|
|
|
+ if (name is None or len(name) == 0):
|
|
|
+ bot.reply("Grün.")
|
|
|
+ return None
|
|
|
+
|
|
|
+ if ensure_recent_alfreddata and alfred_data is None:
|
|
|
+ bot.say("Informationen sind ausverkauft, kommen erst morgen wieder rein.")
|
|
|
+ return None
|
|
|
+
|
|
|
+ if ensure_recent_alfreddata and ffpb_alfred_data_outdated():
|
|
|
+ bot.say("Ich habe gerade keine aktuellen Informationen, daher sage ich mal lieber nichts zu '" + name + "'.")
|
|
|
+ return None
|
|
|
+
|
|
|
+ node = ffpb_findnode(name)
|
|
|
+ if node is None:
|
|
|
+ bot.say("Kein Plan wer oder was mit '" + name + "' gemeint ist :(")
|
|
|
+
|
|
|
+ return node
|
|
|
+
|
|
|
def mac2ipv6(mac, prefix=None):
|
|
|
result = str(netaddr.EUI(mac).ipv6_link_local())
|
|
|
if (not prefix is None) and (result.startswith("fe80::")):
|
|
@@ -209,22 +228,8 @@ def ffpb_debug_alfred(bot, trigger):
|
|
|
@willie.module.commands('info')
|
|
|
def ffpb_peerinfo(bot, trigger):
|
|
|
target_name = trigger.group(2)
|
|
|
- if (target_name is None or len(target_name) == 0):
|
|
|
- bot.say(str(trigger.nick + ": Grün."))
|
|
|
- return
|
|
|
-
|
|
|
- if alfred_data is None:
|
|
|
- bot.say("Informationen sind ausverkauft, kommen erst morgen wieder rein.")
|
|
|
- return
|
|
|
-
|
|
|
- if ffpb_alfred_data_outdated():
|
|
|
- bot.say("Ich habe gerade keine aktuellen Informationen, daher sage ich mal lieber nichts zu '" + target_name + "'.")
|
|
|
- return
|
|
|
-
|
|
|
- node = ffpb_findnode(target_name)
|
|
|
- if node is None:
|
|
|
- bot.say("Kein Plan wer oder was mit '" + target_name + "' gemeint ist :(")
|
|
|
- return
|
|
|
+ node = ffpb_findnode_from_botparam(bot, target_name)
|
|
|
+ if node is None: return
|
|
|
|
|
|
info_mac = node["network"]["mac"]
|
|
|
info_name = node["hostname"]
|
|
@@ -265,22 +270,8 @@ def ffpb_peerinfo(bot, trigger):
|
|
|
@willie.module.commands('link')
|
|
|
def ffpb_peerlink(bot, trigger):
|
|
|
target_name = trigger.group(2)
|
|
|
- if (target_name is None or len(target_name) == 0):
|
|
|
- bot.say(str(trigger.nick + ": Grün."))
|
|
|
- return
|
|
|
-
|
|
|
- if alfred_data is None:
|
|
|
- bot.say("Informationen sind ausverkauft, kommen erst morgen wieder rein.")
|
|
|
- return
|
|
|
-
|
|
|
- if ffpb_alfred_data_outdated():
|
|
|
- bot.say("Ich habe gerade keine aktuellen Informationen, daher sage ich mal lieber nichts zu '" + target_name + "'.")
|
|
|
- return
|
|
|
-
|
|
|
- node = ffpb_findnode(target_name)
|
|
|
- if node is None:
|
|
|
- bot.say("Kein Plan wer oder was mit '" + target_name + "' gemeint ist :(")
|
|
|
- return
|
|
|
+ node = ffpb_findnode_from_botparam(bot, target_name)
|
|
|
+ if node is None: return
|
|
|
|
|
|
info_mac = node["network"]["mac"]
|
|
|
info_name = node["hostname"]
|
|
@@ -372,14 +363,8 @@ def ffpb_status(bot, trigger):
|
|
|
def ffpb_ping(bot, trigger):
|
|
|
"""Ping FFPB-Knoten"""
|
|
|
target_name = trigger.group(2)
|
|
|
- if target_name is None or len(target_name) == 0:
|
|
|
- bot.say('Alter, wen soll ich denn pingen? Einmal mit Profis arbeiten -.-')
|
|
|
- return
|
|
|
-
|
|
|
- node = ffpb_findnode(target_name)
|
|
|
- if node is None:
|
|
|
- bot.say('Kein Plan wer mit \'' + target_name + '\' gemeint ist :/')
|
|
|
- return
|
|
|
+ node = ffpb_findnode_from_botparam(bot, target_name, ensure_recent_alfreddata=False)
|
|
|
+ if node is None: return
|
|
|
|
|
|
target = node["network"]["addresses"][0]
|
|
|
target_alias = node["hostname"]
|
|
@@ -417,10 +402,8 @@ def ffpb_remoteexec(bot, trigger):
|
|
|
bot.say('Geh weg.')
|
|
|
return
|
|
|
|
|
|
- node = ffpb_findnode(target_name)
|
|
|
- if node is None:
|
|
|
- bot.say('Kein Plan wer mit \'' + target_name + '\' gemeint ist :/')
|
|
|
- return
|
|
|
+ node = ffpb_findnode_from_botparam(bot, target_name, ensure_recent_alfreddata=False)
|
|
|
+ if node is None: return
|
|
|
|
|
|
target = node["network"]["addresses"][0]
|
|
|
target_alias = node["hostname"]
|