forked from teleological/camxes-py
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathvlatai-bot.py
executable file
·69 lines (51 loc) · 1.83 KB
/
vlatai-bot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env python3
# pylint: disable=I0011, C0111, import-error, bad-whitespace, no-member
import sys
from argparse import ArgumentParser
from twisted.internet import reactor
from twisted.python import log
from camxes import __version__
from irc.protocol_factory import IrcClientFactory
DEFAULT_HOST = "irc.freenode.net"
DEFAULT_PORT = 6667
DEFAULT_CHANNELS = [ "#lojban" ]
DEFAULT_NICKNAME = "vlatai"
DEFAULT_DISPATCH = "vlatai"
def run(options):
protocol = _dispatch_protocol(options.dispatch)
factory = IrcClientFactory(protocol, options)
log.startLogging(sys.stdout)
reactor.connectTCP(options.host, options.port, factory)
reactor.run()
def _dispatch_protocol(dispatch):
if dispatch == "vlatai":
from irc.vlatai import Protocol
return Protocol
elif dispatch == "morphology":
from irc.morphology import Protocol
return Protocol
else:
raise ValueError("Unknown dispatch: '%s'" % dispatch)
def _main():
options = _parse_args()
if len(options.channels) == 0:
options.channels = DEFAULT_CHANNELS
run(options)
def _parse_args():
args = ArgumentParser()
args.add_argument("-H", "--host",
dest="host", default=DEFAULT_HOST)
args.add_argument("-p", "--port",
dest="port", default=DEFAULT_PORT)
args.add_argument("-c", "--channels",
action="append",
dest="channels", default=[])
args.add_argument("-n", "--name",
dest="name", default=DEFAULT_NICKNAME)
args.add_argument("-d", "--dispatch",
dest="dispatch", default=DEFAULT_DISPATCH)
args.add_argument("-v", "--version",
action="version", version=__version__)
return args.parse_args()
if __name__ == '__main__':
_main()