Bladeren bron

ffpb: refactor redundant code into ffpb_findnode_from_botparam()

Helge Jung 9 jaren geleden
bovenliggende
commit
338a128171
1 gewijzigde bestanden met toevoegingen van 27 en 44 verwijderingen
  1. 27 44
      modules/ffpb.py

+ 27 - 44
modules/ffpb.py

@@ -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"]