/
ds100bot
executable file
·51 lines (45 loc) · 1.91 KB
/
ds100bot
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
#!/usr/bin/python3
"""Twitter-Bot für die Expansion Abkürzungen"""
import argparse
import configparser
import logging
from AnswerMachine import handle_list
from Externals import setup_database, set_arguments, setup_network, test_network_arguments
import Persistence
logger = Persistence.init_logger()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description=__doc__)
Persistence.set_logging_args(parser)
set_arguments(parser)
parser.add_argument('--no-version',
dest='notify_version',
help='Do not send out version status and do not store last version',
required=False,
action='store_false',
default=True)
args = parser.parse_args()
configuration = configparser.ConfigParser()
configuration.read(args.config)
args.config = configuration
network_name = test_network_arguments(args)
logger.setLevel(getattr(logging, args.log_level))
logger.debug("%s bot running args: %s", network_name, args)
logging.getLogger('msg').setLevel(getattr(logging, args.log_level))
try:
database = setup_database(args, network_name)
network = setup_network(network_name, args, Persistence.get_since_id(database))
if args.notify_version:
Persistence.notify_new_version(network, database)
magic_tags, magic_emojis = database.magic_hashtags()
handle_list(network=network,
database=database,
magic_tags=magic_tags,
magic_emojis=magic_emojis)
if args.notify_version:
Persistence.store_version(database)
Persistence.store_since_id(database, network)
database.close_sucessfully()
except BaseException as be:
logger.exception("Failure for network %s", network_name)
raise SystemExit(1) from be
logger.info("Bot finished")