Browse Source

convert to Python 3

Helge Jung 10 years ago
parent
commit
99e5719e6e
2 changed files with 20 additions and 12 deletions
  1. 11 2
      bot.sh
  2. 9 10
      modules/ffpb.py

+ 11 - 2
bot.sh

@@ -3,14 +3,23 @@
 mydir=$(readlink -f $0)
 mydir=$(dirname "$mydir")
 
+python3 -V > /dev/null 2>&1 && python3="python3"
+if [ -z "$python3" ]; then
+	python3.4 -V > /dev/null 2>&1 && python3="python3.4"
+	if [ -z "$python3" ]; then
+		echo "Did not find neither python3 nor python3.4 in your path :-("
+		exit 1
+	fi
+fi
+
 case $1 in
 	start)
 		[ ! -d "${mydir}/logs" ] && mkdir "${mydir}/logs"
 
-		"${mydir}/willie/willie.py" -c "${mydir}/ffpb.cfg" --fork
+		$python3 "${mydir}/willie/willie.py" -c "${mydir}/ffpb.cfg" --fork
 		;;
 	stop)
-		"${mydir}/willie/willie.py" -c "${mydir}/ffpb.cfg" --quit
+		$python3 "${mydir}/willie/willie.py" -c "${mydir}/ffpb.cfg" --quit
 		;;
 
 	restart)

+ 9 - 10
modules/ffpb.py

@@ -1,14 +1,13 @@
-from __future__ import print_function
 import willie
 
 import netaddr
-import urllib2
+import urllib3
 import re
 import os
 import subprocess
 
 import socket
-import SocketServer
+import socketserver
 import threading
 
 msgserver = None
@@ -22,9 +21,9 @@ msgserver_known_senders = {
 	"10.132.254.80": "public"
 }
 
-class MsgHandler(SocketServer.BaseRequestHandler):
+class MsgHandler(socketserver.BaseRequestHandler):
 	def handle(self):
-		self.data = self.request.recv(2048).strip()
+		data = self.request.recv(2048).strip()
 		sender = self.client_address[0]
 		if sender in msgserver_known_senders:
 			sender = msgserver_known_senders[sender]
@@ -38,9 +37,9 @@ class MsgHandler(SocketServer.BaseRequestHandler):
 		if bot.config.has_section('ffpb') and not (bot.config.ffpb.msg_target is None):
 			target = bot.config.ffpb.msg_target
 
-		bot.msg(target, "[{0}] {1}".format(sender,self.data))
+		bot.msg(target, "[{0}] {1}".format(sender,str(data, "utf-8")))
 
-class ThreadingTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
+class ThreadingTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
 	pass
 
 def setup(bot):
@@ -72,7 +71,7 @@ def shutdown(bot):
 @willie.module.commands('status')
 def ffpb_status(bot, trigger):
 	"""Status des FFPB-Netzes: Anzahl (aktiver) Knoten + Clients"""
-	response = urllib2.urlopen('http://nodecount.paderborn.freifunk.net/')
+	response = urllib3.urlopen('http://nodecount.paderborn.freifunk.net/')
 	html = response.read()
 	m = re.search('<div id="nodecount">\s*(\d+)\s*</div>', html)
 	nodecount = int(m.group(1))
@@ -84,7 +83,7 @@ def ffpb_get_address(name):
 
 	if os.path.exists(peerfilename):
 		peerfile = open(peerfilename, "r")
- 		for line in peerfile:
+		for line in peerfile:
 			if line.startswith("# MAC:"):
 				peer_mac = line[6:].strip()
 		peerfile.close()
@@ -172,5 +171,5 @@ def ffpb_remoteexec(bot, trigger):
 		for line in lines[0:8]:
 			bot.say(line)
 
-	except subprocess.CalledProcessError, e:
+	except subprocess.CalledProcessError as e:
 		bot.say('Fehler '+str(e.returncode)+' bei exec-on-peer('+target_name+'): ' + e.output)