Index: third_party/twisted_8_1/twisted/news/tap.py |
diff --git a/third_party/twisted_8_1/twisted/news/tap.py b/third_party/twisted_8_1/twisted/news/tap.py |
deleted file mode 100644 |
index 910e5da8eb204ffd26b096aafa74689a7ece27b9..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/news/tap.py |
+++ /dev/null |
@@ -1,132 +0,0 @@ |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
- |
-from twisted.news import news, database |
-from twisted.application import strports |
-from twisted.python import usage, log |
- |
-class DBOptions(usage.Options): |
- optParameters = [ |
- ['module', None, 'pyPgSQL.PgSQL', "DB-API 2.0 module to use"], |
- ['dbhost', None, 'localhost', "Host where database manager is listening"], |
- ['dbuser', None, 'news', "Username with which to connect to database"], |
- ['database', None, 'news', "Database name to use"], |
- ['schema', None, 'schema.sql', "File to which to write SQL schema initialisation"], |
- |
- # XXX - Hrm. |
- ["groups", "g", "groups.list", "File containing group list"], |
- ["servers", "s", "servers.list", "File containing server list"] |
- ] |
- |
- def postOptions(self): |
- # XXX - Hmmm. |
- self['groups'] = [g.strip() for g in open(self['groups']).readlines() if not g.startswith('#')] |
- self['servers'] = [s.strip() for s in open(self['servers']).readlines() if not s.startswith('#')] |
- |
- try: |
- __import__(self['module']) |
- except ImportError: |
- log.msg("Warning: Cannot import %s" % (self['module'],)) |
- |
- open(self['schema'], 'w').write( |
- database.NewsStorageAugmentation.schema + '\n' + |
- database.makeGroupSQL(self['groups']) + '\n' + |
- database.makeOverviewSQL() |
- ) |
- |
- info = { |
- 'host': self['dbhost'], 'user': self['dbuser'], |
- 'database': self['database'], 'dbapiName': self['module'] |
- } |
- self.db = database.NewsStorageAugmentation(info) |
- |
- |
-class PickleOptions(usage.Options): |
- optParameters = [ |
- ['file', None, 'news.pickle', "File to which to save pickle"], |
- |
- # XXX - Hrm. |
- ["groups", "g", "groups.list", "File containing group list"], |
- ["servers", "s", "servers.list", "File containing server list"], |
- ["moderators", "m", "moderators.list", |
- "File containing moderators list"], |
- ] |
- |
- subCommands = None |
- |
- def postOptions(self): |
- # XXX - Hmmm. |
- filename = self['file'] |
- self['groups'] = [g.strip() for g in open(self['groups']).readlines() |
- if not g.startswith('#')] |
- self['servers'] = [s.strip() for s in open(self['servers']).readlines() |
- if not s.startswith('#')] |
- self['moderators'] = [s.split() |
- for s in open(self['moderators']).readlines() |
- if not s.startswith('#')] |
- self.db = database.PickleStorage(filename, self['groups'], |
- self['moderators']) |
- |
- |
-class Options(usage.Options): |
- synopsis = "Usage: mktap news [options]" |
- |
- groups = None |
- servers = None |
- subscriptions = None |
- |
- optParameters = [ |
- ["port", "p", "119", "Listen port"], |
- ["interface", "i", "", "Interface to which to bind"], |
- ["datadir", "d", "news.db", "Root data storage path"], |
- ["mailhost", "m", "localhost", "Host of SMTP server to use"] |
- ] |
- zsh_actions = {"datadir" : "_dirs", "mailhost" : "_hosts"} |
- |
- def __init__(self): |
- usage.Options.__init__(self) |
- self.groups = [] |
- self.servers = [] |
- self.subscriptions = [] |
- |
- |
- def opt_group(self, group): |
- """The name of a newsgroup to carry.""" |
- self.groups.append([group, None]) |
- |
- |
- def opt_moderator(self, moderator): |
- """The email of the moderator for the most recently passed group.""" |
- self.groups[-1][1] = moderator |
- |
- |
- def opt_subscription(self, group): |
- """A newsgroup to list as a recommended subscription.""" |
- self.subscriptions.append(group) |
- |
- |
- def opt_server(self, server): |
- """The address of a Usenet server to pass messages to and receive messages from.""" |
- self.servers.append(server) |
- |
- |
-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)) |