#!/usr/bin/env python
# -*- coding: utf-8 -*-
from twisted.internet import protocol
from twisted.application import internet, service
from twisted.web.client import getPage
from twisted.protocols.basic import LineReceiver
from twisted.python import log
class WebGetProtocol(LineReceiver):
def connectionMade(self):
log.msg('new connection')
def connectionLost(self, reason=None):
log.msg('connection lost: %s', reason)
def lineReceived(self, line):
deferr = getPage(line)
deferr.addCallback(self.send_success).addErrback(self.send_errback)
def send_success(self, data):
data = data.replace('\r\n', '')
self.sendLine(data)
def send_errback(self, err):
self.sendLine('Server error')
self.transport.loseConnection()
class WebGetFactory(protocol.ServerFactory):
protocol = WebGetProtocol
application = service.Application("webget")
webget = internet.TCPServer(9000, WebGetFactory())
webget.setServiceParent(application)