This repository has been archived by the owner on Apr 16, 2021. It is now read-only.
forked from darkChozo/FAbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fa_bot.py
executable file
·62 lines (50 loc) · 2.15 KB
/
fa_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
#!/usr/local/bin/python
import logging
from config_manager import ConfigManager
from discord_client import main_client
from event_manager import event_manager
import game_servers
class FAbot(object):
@staticmethod
def start():
# Logging
logging.basicConfig(filename="FA_bot.log", level=logging.DEBUG, format="%(asctime)-15s %(message)s")
logging.info("FAbot starting up")
# Configuration file
logging.info("Reading configuration")
config = ConfigManager("config.ini")
client_email = config.get("email")
client_pass = config.get("password")
event_manager.announcement_channels = config.get_json("announcement_channels", default=[])
# TODO: probably event manager should take channels from client instead?
main_client.channel_whitelist = config.get_json("channel_whitelist", default=[])
main_client.announcement_channels = config.get_json("announcement_channels", default=[])
main_client.welcome_pm = config.get("welcome_pm")
main_client.join_announcement = config.get("join_announcement")
main_client.leave_announcement = config.get("leave_announcement")
# Game servers
game_servers.game_servers['arma'] = game_servers.ArmaServer(
ip=config.get("arma_server_ip"),
port=int(config.get("arma_server_port"))
)
game_servers.game_servers['insurgency'] = game_servers.InsurgencyServer(
ip=config.get("insurgency_server_ip"),
port=int(config.get("insurgency_server_port"))
)
# Discord client
logging.info("Logging into Discord")
main_client.login(client_email, client_pass)
if not main_client.is_logged_in:
logging.critical("Logging into Discord failed")
print('Logging in to Discord failed')
exit(1)
logging.info("Entering main message event loop")
main_client.run()
# Full sail ahoy!
if __name__ == '__main__':
try:
FAbot.start()
except KeyboardInterrupt:
print "Disconnecting..."
logging.info("Keyboard interrupt. Disconnecting.")
main_client.logout()