Skip to content
This repository was archived by the owner on Mar 11, 2022. It is now read-only.

Commit cf8f100

Browse files
authored
Update bot.py
1 parent 1d09f0e commit cf8f100

File tree

1 file changed

+257
-5
lines changed

1 file changed

+257
-5
lines changed

bot.py

Lines changed: 257 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from login import get_nick_and_pw
1111

1212

13-
bot = commands.Bot(command_prefix = ".", case_insensitive=True)
13+
bot = commands.Bot(command_prefix=".", case_insensitive=True)
1414
YOUR_SECRET_TOKEN = input("Your discord token (help - https://www.writebots.com/discord-bot-token/): ")
1515

1616
sessions = defaultdict(lambda: "")
@@ -36,7 +36,6 @@ def dec(func):
3636
return func
3737
return dec
3838

39-
4039
@bot.command()
4140
@add_docs_for(accept_contract.accept_contract)
4241
async def accept(ctx, contract_id, *, nick):
@@ -74,6 +73,259 @@ async def buff(ctx, buffs_names, *, nick):
7473
session = sessions[server]
7574
sessions[server] = buff.buffs(server, buffs_names, session)
7675

76+
@bot.command()
77+
@add_docs_for(buy_cc.cc)
78+
async def cc(ctx, country_id, max_price, buy_amount, *, nick):
79+
server = ctx.channel.name
80+
if nick.lower() == MY_NICKS[server].lower():
81+
session = sessions[server]
82+
sessions[server] = buy_cc.cc(server, country_id, max_price, buy_amount, session)
83+
84+
@bot.command()
85+
@add_docs_for(buy_product.products)
86+
async def buy(ctx, product, amount, *, nick):
87+
server = ctx.channel.name
88+
if nick.lower() == MY_NICKS[server].lower():
89+
session = sessions[server]
90+
sessions[server] = buy_product.products(server, product, amount, session)
91+
92+
@bot.command()
93+
@add_docs_for(candidate.candidate)
94+
async def candidate(ctx, *, nick):
95+
server = ctx.channel.name
96+
if nick.lower() == MY_NICKS[server].lower():
97+
session = sessions[server]
98+
sessions[server] = candidate.candidate(server, session)
99+
100+
@bot.command()
101+
@add_docs_for(change_avatar.avatar)
102+
async def avatar(ctx, *, nick):
103+
"""
104+
If you don't want the default img, write like that:
105+
`.avatar https://picsum.photos/150, Your Nick` (with a comma)"""
106+
server = ctx.channel.name
107+
if "," in nick:
108+
imgURL, nick = nick.split(",")
109+
else:
110+
imgURL = "https://source.unsplash.com/random"
111+
if nick.strip().lower() == MY_NICKS[server].lower():
112+
session = sessions[server]
113+
sessions[server] = change_avatar.avatar(server, imgURL.strip(), session)
114+
115+
@bot.command()
116+
async def comment(ctx, shout_or_article_link, body, *, nick):
117+
"""
118+
- `body` parameter MUST be within quotes.
119+
- You can find shout link by clicking F12 in the page where you see the shout."""
120+
server = ctx.channel.name
121+
if nick.lower() == MY_NICKS[server].lower():
122+
session = sessions[server]
123+
if "article" in shout_or_article_link:
124+
sessions[server] = comment_article.comment_article(server, shout_or_article_link.split("?id=")[1].split("&")[0], body, session)
125+
elif "shout" in shout_or_article_link:
126+
sessions[server] = comment_shout.comment_shout(server, shout_or_article_link.split("?id=")[1].split("&")[0], body, session)
127+
else:
128+
await ctx.send("Please provide a valid article/shout link.")
129+
130+
@bot.command()
131+
@add_docs_for(donate_eqs.donate_eqs)
132+
async def donate(ctx, ids, receiver_id, *, nick):
133+
"""`ids` MUST be separated by a comma, and without spaces (or with spaces, but within quotes)"""
134+
server = ctx.channel.name
135+
if nick.lower() == MY_NICKS[server].lower():
136+
session = sessions[server]
137+
sessions[server] = donate_eqs.donate_eqs(server, ids, receiver_id, session)
138+
139+
@bot.command()
140+
@add_docs_for(eqs.eqs)
141+
async def eq(ctx, *, nick):
142+
server = ctx.channel.name
143+
if nick.lower() == MY_NICKS[server].lower():
144+
session = sessions[server]
145+
sessions[server] = eqs.eqs(server, session)
146+
# to do: aliases=["storage", "inventory"] (show all storage).
147+
148+
@bot.command()
149+
@add_docs_for(fly.fly)
150+
async def Fly(ctx, region_link_or_id, ticket_quality, *, nick):
151+
"""Default: Q5 tickets"""
152+
server = ctx.channel.name
153+
try:
154+
int(ticket_quality)
155+
except:
156+
nick = ticket_quality + " " + nick
157+
ticket_quality = 5
158+
if nick.lower() == MY_NICKS[server].lower():
159+
session = sessions[server]
160+
sessions[server] = fly.fly(server, region_link_or_id, ticket_quality, session)
161+
162+
@bot.command()
163+
@add_docs_for(job.job)
164+
async def Job(ctx, *, nick):
165+
server = ctx.channel.name
166+
if nick.lower() == MY_NICKS[server].lower():
167+
session = sessions[server]
168+
sessions[server] = job.job(server, session)
169+
170+
@bot.command(aliases=["dow", "mpp"])
171+
@add_docs_for(mpp_dow_attack.mpp_dow_attack)
172+
async def attack(ctx, ID, delay_or_battle_link, *, nick):
173+
"""`delay_or_battle_link` - optional"""
174+
server = ctx.channel.name
175+
if ".e-sim.org/battle.html?id=" not in delay_or_battle_link:
176+
try:
177+
int(delay_or_battle_link)
178+
except:
179+
nick = delay_or_battle_link + " " + nick
180+
delay_or_battle_link = ""
181+
if nick.lower() == MY_NICKS[server].lower():
182+
session = sessions[server]
183+
sessions[server] = mpp_dow_attack.mpp_dow_attack(server, ID, ctx.invoked_with.lower(), delay_or_battle_link, session)
184+
185+
@bot.command()
186+
@add_docs_for(place_building.building)
187+
async def build(ctx, regionId, quality, Round, *, nick):
188+
"""`quality` = building quality (if you want to build an hospital instead, write like that: `5-hospital`)"""
189+
server = ctx.channel.name
190+
if nick.lower() == MY_NICKS[server].lower():
191+
session = sessions[server]
192+
sessions[server] = place_building.building(server, regionId, quality, Round, session)
193+
194+
@bot.command()
195+
@add_docs_for(read.read)
196+
async def Read(ctx, *, nick):
197+
server = ctx.channel.name
198+
if nick.lower() == MY_NICKS[server].lower():
199+
session = sessions[server]
200+
sessions[server] = read.read(server, session)
201+
202+
@bot.command()
203+
@add_docs_for(register.register)
204+
async def Register(ctx, lan, countryId, password, *, nick):
205+
server = ctx.channel.name
206+
if nick.lower() == MY_NICKS[server].lower():
207+
session = sessions[server]
208+
sessions[server] = register.register(server, nick, password, lan, countryId, session)
209+
210+
@bot.command()
211+
@add_docs_for(report_citizen.report)
212+
async def report(ctx, target_id, report_reason, *, nick):
213+
"""`report_reason` MUST be within quotes"""
214+
server = ctx.channel.name
215+
if nick.lower() == MY_NICKS[server].lower():
216+
session = sessions[server]
217+
sessions[server] = report_citizen.report(server, target_id, report_reason, session)
218+
219+
@bot.command(aliases=["upgrade"])
220+
@add_docs_for(reshuffle_or_upgrade.reshuffle_or_upgrade)
221+
async def reshuffle(ctx, eq_id_or_link, parameter, *, nick):
222+
"""`parameter` - it's recommended to copy and paste, but you can also write first/last"""
223+
server = ctx.channel.name
224+
if nick.lower() == MY_NICKS[server].lower():
225+
session = sessions[server]
226+
sessions[server] = reshuffle_or_upgrade.reshuffle_or_upgrade(server, ctx.invoked_with.lower(), eq_id_or_link, parameter, session)
227+
228+
@bot.command()
229+
@add_docs_for(rw.rw)
230+
async def RW(ctx, region_id_or_link, ticket_quality, *, nick):
231+
server = ctx.channel.name
232+
try:
233+
int(ticket_quality)
234+
except:
235+
nick = ticket_quality + " " + nick
236+
ticket_quality = 5
237+
if nick.lower() == MY_NICKS[server].lower():
238+
session = sessions[server]
239+
sessions[server] = rw.rw(server, region_id_or_link, ticket_quality, session)
240+
241+
@bot.command()
242+
@add_docs_for(sell_eqs.sell_eqs)
243+
async def sell(ctx, ids, price, hours, *, nick):
244+
"""`ids` MUST be separated by a comma, and without spaces (or with spaces, but within quotes)"""
245+
server = ctx.channel.name
246+
if nick.lower() == MY_NICKS[server].lower():
247+
session = sessions[server]
248+
sessions[server] = sell_eqs.sell_eqs(server, ids, price, hours, session)
249+
250+
@bot.command(aliases=["MU"])
251+
@add_docs_for(send_application.citizenship_or_mu_application)
252+
async def citizenship(ctx, country_or_mu_id, *, nick):
253+
server = ctx.channel.name
254+
if nick.lower() == MY_NICKS[server].lower():
255+
session = sessions[server]
256+
sessions[server] = send_application.citizenship_or_mu_application(server, country_or_mu_id, ctx.invoked_with.lower(), session)
257+
258+
@bot.command()
259+
@add_docs_for(send_msg.send_msg)
260+
async def msg(ctx, receiver_name, title, body, *, nick):
261+
"""If any arg (receiverName, title or body) containing more than 1 word - it must be within quotes"""
262+
server = ctx.channel.name
263+
if nick.lower() == MY_NICKS[server].lower():
264+
session = sessions[server]
265+
sessions[server] = send_msg.send_msg(server, receiver_name, title, body, session)
266+
267+
@bot.command()
268+
@add_docs_for(shout.shout)
269+
async def Shout(ctx, shout_body, *, nick):
270+
"""`shout_body` MUST be within quotes"""
271+
server = ctx.channel.name
272+
if nick.lower() == MY_NICKS[server].lower():
273+
session = sessions[server]
274+
sessions[server] = shout.shout(server, shout_body, session)
275+
276+
@bot.command(aliases=["vote", "Vote_shout"])
277+
async def Sub(ctx, id, *, nick):
278+
server = ctx.channel.name
279+
if nick.lower() == MY_NICKS[server].lower():
280+
session = sessions[server]
281+
if ctx.invoked_with.lower() == "sub":
282+
sessions[server] = sub.sub(server, id, session)
283+
elif ctx.invoked_with.lower() == "vote":
284+
sessions[server] = vote_article.article(server, id, session)
285+
elif ctx.invoked_with.lower() == "vote_shout":
286+
sessions[server] = vote_shout.vote_shout(server, id, session)
287+
288+
@bot.command(aliases=["gift"])
289+
@add_docs_for(use.use)
290+
async def food(ctx, quality, *, nick):
291+
"""Default: Q5"""
292+
server = ctx.channel.name
293+
try:
294+
int(quality)
295+
except:
296+
nick = quality + " " + nick
297+
quality = 5
298+
if nick.lower() == MY_NICKS[server].lower():
299+
session = sessions[server]
300+
sessions[server] = use.use(server, ctx.invoked_with.lower(), quality, session)
301+
302+
@bot.command()
303+
@add_docs_for(vote_elections.elect)
304+
async def elect(ctx, your_candidate, *, nick):
305+
"""If `your_candidate` containing more than 1 word - it must be within quotes"""
306+
server = ctx.channel.name
307+
if nick.lower() == MY_NICKS[server].lower():
308+
session = sessions[server]
309+
sessions[server] = vote_elections.elect(server, your_candidate, session)
310+
311+
@bot.command()
312+
@add_docs_for(vote_law.law)
313+
async def law(ctx, link_or_id, your_vote, *, nick):
314+
server = ctx.channel.name
315+
if nick.lower() == MY_NICKS[server].lower():
316+
session = sessions[server]
317+
sessions[server] = vote_law.law(server, link_or_id, your_vote, session)
318+
319+
@bot.command(aliases=["unwear"])
320+
async def wear(ctx, ids, *, nick):
321+
"""
322+
Wear/take off specific EQ IDs.
323+
`ids` MUST be separated by a comma, and without spaces (or with spaces, but within quotes)"""
324+
server = ctx.channel.name
325+
if nick.lower() == MY_NICKS[server].lower():
326+
session = sessions[server]
327+
sessions[server] = wear_unwear.wear_unwear(server, ids, session)
328+
77329

78330
@bot.event
79331
async def on_message(message):
@@ -82,10 +334,10 @@ async def on_message(message):
82334
f = StringIO()
83335
with redirect_stdout(f):
84336
await bot.invoke(ctx)
85-
86-
if f.getvalue():
337+
output = f.getvalue()
338+
if output:
87339
# Sending the output (all prints) to your channel.
88-
await ctx.send(f.getvalue())
340+
await ctx.send(output[:2000])
89341
f.close()
90342

91343

0 commit comments

Comments
 (0)