-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
142 lines (110 loc) · 4.19 KB
/
main.py
File metadata and controls
142 lines (110 loc) · 4.19 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import sys
from time import sleep
from colosseum import Colosseum
from constants import COLOSSEUM, LOGDIR, QUEUEDIR, PNG, IMG, PICK, FILES, PROBFILE
from io_sama import InputKun, OutputChan
# TODO v3 ideas:
# Kill by popular demand (events that wait for user interaction. needs from IO_Sama)
# Log and queue as pickle class instead of folders
# Rewrite access to the print name of Arpies
# Love affairs (possibility of magnetismn between player (makes them more likely to kill eachother))
# Support for mentions
# Defense teamups
# EasterEggs for certain combinations
### Neutral Manu
### Jeaggerbrothers
### Mon Amour
### Megazord
# random.seed(datetime.datetime.now().second)
# colosseum = Colosseum()
# i = 1
# while not colosseum.is_over():
# print("Ronda " + str(i) + ": " + colosseum.let_the_games_begin())
# i += 1
# def sensoo_wa_kawatta():
# colosseum=None
# try:
# InputKun.load_pickle(COLOSSEUM)
# except:
# return
def stateful_call(tweet_for_real=True):
colosseum = load_colosseum()
ruta_img = IMG + PNG
if not colosseum.is_over():
tweet = colosseum.let_the_games_begin()
colosseum.generateStatusImage(ruta_img)
OutputChan.log_tweet(LOGDIR, tweet, ruta_img, colosseum)
OutputChan.queue_tweet(QUEUEDIR, tweet, ruta_img, colosseum)
OutputChan.process_queue(QUEUEDIR, tweet_for_real)
OutputChan.save_pickle(FILES + COLOSSEUM + PICK, colosseum)
# TODO Make this func so it sends all tweets in the queue directory (if successfully sent, deletes crom queue)
if colosseum.is_over():
# TODO Congratulations message (method in colosseum)
tweet = colosseum.omedetoo()
OutputChan.tweet_text(tweet, tweet_for_real)
# colosseum.congratulations()
else:
print("Owarida")
def stateful_dequeue():
colosseum = InputKun.load_pickle(COLOSSEUM)
if colosseum is None:
raise Exception("Wrong pickle")
OutputChan.process_queue(QUEUEDIR)
# TODO Make this func so it sends all tweets in the queue directory (if successfully sent, deletes crom queue)
def test_tweet_api():
OutputChan.tweet_text(
"Buenas noches a todos. En caso de emergencia, recuerden: Todas las salidas han sido selladas. Seguiremos informando [BIP BOOP]",
True)
def test_tweet_api_img():
OutputChan.tweet_image("Getting ready for you <3", "files/terminator.jpg", True)
def reload_files():
colosseum = load_colosseum()
colosseum.refresh_flavours()
OutputChan.save_pickle(FILES + COLOSSEUM + PICK, colosseum)
def presentation(live=False):
colosseum = load_colosseum()
presentations = colosseum.get_presentations()
OutputChan.tweet_text(
"Hoy empieza la batalla por la supervivencia. Ya sabéis como funciona. Cada día a las 12:00 me encargaré de "
"actualizaros. Pero antes de empezar, demos la bienvenida a los participantes!!", live)
for present in presentations:
OutputChan.tweet_text(present, live)
sleep(1)
def load_colosseum():
colosseum = InputKun.load_pickle(FILES + COLOSSEUM + PICK)
if colosseum is None:
colosseum = Colosseum()
return colosseum
def update_probabilities():
colosseum = load_colosseum()
new_probabilities = InputKun.read_file(PROBFILE)
for line in new_probabilities:
tokens = line.split('=')
colosseum.update_event_probability(tokens[0].strip(), float(tokens[1].strip()))
OutputChan.save_pickle(FILES + COLOSSEUM + PICK, colosseum)
def print_status():
colosseum=load_colosseum()
colosseum.show_me_them_stats()
if __name__ == "__main__":
print(sys.argv[1])
mode = sys.argv[1]
if mode == "test_tweet":
test_tweet_api()
elif mode == "test_image":
test_tweet_api_img()
elif mode == "test_intro":
presentation()
elif mode == "test_state":
stateful_call(False)
elif mode == "run_state":
stateful_call(True)
elif mode == "run_intro":
presentation(True)
elif mode == "reload_files":
reload_files()
elif mode == "update_probs":
update_probabilities()
elif mode== "print_status":
print_status()
else:
print("I did nuthing")