def setUp(self):
        self.server = nntp.NNTPServer()
        self.server.factory = self
        self.backend = database.NewsShelf(None, 'news.db')
        self.backend.addGroup('alt.test.nntp', 'y')

        for s in SUBSCRIPTIONS:
            self.backend.addSubscription(s)

        self.client = TestNNTPClient()
示例#2
0
    def setUp(self):
        self.server = nntp.NNTPServer()
        self.server.factory = self
        self.backend = database.NewsShelf(None, 'news.db')
        self.backend.addGroup('alt.test.nntp', 'y')

        for s in SUBSCRIPTIONS:
            self.backend.addSubscription(s)

        self.transport = proto_helpers.StringTransport()
        self.server.makeConnection(self.transport)
        self.client = TestNNTPClient()
示例#3
0
def makeService(config):
    if not len(config.groups):
        raise usage.UsageError("No newsgroups specified")

    db = database.NewsShelf(config['mailhost'], config['datadir'])
    for (g, m) in config.groups:
        if m:
            db.addGroup(g, 'm')
            db.addModerator(g, m)
        else:
            db.addGroup(g, 'y')
    for s in config.subscriptions:
        print s
        db.addSubscription(s)
    s = config['port']
    if config['interface']:
        # Add a warning here
        s += ':interface=' + config['interface']
    return strports.service(s, news.UsenetServerFactory(db, config.servers))
示例#4
0
 def setUp(self):
     self.backend = database.NewsShelf(None, 'news2.db')
     self.backend.addGroup('alt.test.nntp', 'y')
     self.backend.postRequest(POST_STRING.replace('\n', '\r\n'))
from twisted.internet import reactor
from twisted.news import database, news, nntp

GROUPS = [
    'local.programming',
    'local.programming.python',
    'local.knitting',
]
SMTP_SERVER = 'upstream-server.com'
STORAGE_DIR = 'storage'

newsStorage = database.NewsShelf(SMTP_SERVER, STORAGE_DIR)
for group in GROUPS:
    newsStorage.addGroup(group, [])
factory = news.NNTPFactory(newsStorage)
reactor.listenTCP(119, factory)
reactor.run()