diff --git a/tools/uhub-nmdc-redirector.py b/tools/uhub-nmdc-redirector.py new file mode 100755 index 0000000..50b7d4b --- /dev/null +++ b/tools/uhub-nmdc-redirector.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +""" +A simple NMDC to ADC redirector service. +""" + +import SocketServer + +# The target hub we want to redirect clients to +redirect_uri = "adcs://adcs.uhub.org:1511" + +# A message to be sent to users while they are being redirected. +message = "This hub has been permanently moved." + +# The chat name of the message. +bot_name = "Redirector" + +# The local address and port to bind the redirector to. +bind_addr = "0.0.0.0" +bind_port = 1411 + +class NmdcRedirector(SocketServer.BaseRequestHandler): + + def setup(self): + self.request.sendall("<%(botname)s> %(message)s|$ForceMove %(address)s|" % { "address": redirect_uri, "botname": bot_name, "message": message }) + return False + +if __name__ == "__main__": + server = SocketServer.TCPServer((bind_addr, bind_port), NmdcRedirector) + server.allow_reuse_address = True + server.serve_forever()