Browse Source

ffpb: move MAC address display from !info to new !link

The new command also assembles the ffpb internal statuspage HTTP URL.
Helge Jung 9 years ago
parent
commit
6d83ce69ca
1 changed files with 23 additions and 2 deletions
  1. 23 2
      modules/ffpb.py

+ 23 - 2
modules/ffpb.py

@@ -211,7 +211,7 @@ def ffpb_peerinfo(bot, trigger):
 	if "software" in node:
 		if "firmware" in node["software"]:
 			fwinfo = str(node["software"]["firmware"]["release"]) if "release" in node["software"]["firmware"] else "unknown"
-			info_fw = " firmware " + fwinfo
+			info_fw = " firmware=" + fwinfo
 
 		if "autoupdater" in node["software"]:
 			autoupdater = node["software"]["autoupdater"]["branch"] if node["software"]["autoupdater"]["enabled"] else "off"
@@ -231,7 +231,28 @@ def ffpb_peerinfo(bot, trigger):
 		else:
 			info_uptime = ' up {0}m'.format(m)
 
-	bot.say('[{0}] {1}{2}{3}{4}{5}'.format(info_mac, info_name, info_hw, info_fw, info_update, info_uptime))
+	bot.say('[{1}] {2}{3}{4}{5}'.format(info_mac, info_name, info_hw, info_fw, info_update, info_uptime))
+
+@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
+
+	node = ffpb_findnode(target_name)
+	if node is None:
+		bot.say("Kein Plan wer oder was mit '" + target_name + "' gemeint ist :(")
+		return
+
+	info_mac = node["network"]["mac"]
+	info_name = node["hostname"]
+	info_v6 = mac2ipv6(info_mac, 'fdca:ffee:ff12:132:')
+	bot.say('[{1}] mac {0} -> http://[{2}]/'.format(info_mac, info_name, info_v6))
 
 @willie.module.interval(60)
 def ffpb_updatepeers(bot):