def __init__(self): # Gui.__init__(self) # gui self.root = Tk() # compositions self.travian = Travian(self.root) self.market = Market(self.root, self.travian) self.raiding = Raiding(self.root, self.travian) self.info = Info(self.root, self.travian) # self.mail = Mail() # frames self.exit_frame = Frame(self.root, bd=5, relief=GROOVE) # items self.intvars = self.create_intvars() self.msg_var = StringVar() self.msg_var.set('Messages') self.old_news = self.create_news() self.news = self.create_news() # widgets self.buttons = self.create_buttons() self.checkboxes = self.create_checkboxes() self.messages = self.create_messages() # configure gui self.config_root() self.make_market_frame() self.make_raid_frame() self.make_info_frame() self.make_exit_frame()
def __init__(self, user_name, password, nation, proxy): self.travian = Travian(server, region, user_name, password, nation, proxy) self.jobs = [ Job.create(job_dict) for job_dict in db.jobs.find({"user_name": user_name}, sort=[("time", 1)]) ] user_db = self.get_user_db() if 'build_idx' in user_db: self.build_idx = user_db['build_idx'] else: user_db['build_idx'] = [0, 0] self.build_idx = [0, 0] db.users.save(user_db)
from travian import Travian import action import time server = "ts5" region = "de" user_name = "Douche09" password = "******" travian = Travian(server, region, user_name, password, None, "http://217.76.38.69:3128") action.action_register(travian, 5, '*****@*****.**') time.sleep(8) travian.save_cookie() print(dict(travian.session.cookies))
class EvilTravian(): def __init__(self, user_name, password, nation, proxy): self.travian = Travian(server, region, user_name, password, nation, proxy) self.jobs = [ Job.create(job_dict) for job_dict in db.jobs.find({"user_name": user_name}, sort=[("time", 1)]) ] user_db = self.get_user_db() if 'build_idx' in user_db: self.build_idx = user_db['build_idx'] else: user_db['build_idx'] = [0, 0] self.build_idx = [0, 0] db.users.save(user_db) def activate(self, sector): self.travian.load_cookie() user_db = db.users.find_one({"name": self.travian.user_name}) action.action_activate(self, worldId, user_db['activation_code']) self.travian.login() self.travian.save_cookie() action.action_select_spawn(self.travian, self.travian.nation, sector) self.travian.request_village() quest.skip_tutorial(self) action.action_tutorial(self, "next", "Tutorial_15a") def load(self): self.travian.load_cookie() self.travian.request_village() self.travian.save_cookie() def add_job(self, new_job): for i, job in enumerate(self.jobs): if new_job['time'] < job['time']: self.jobs.insert(i, new_job) break else: self.jobs.append(new_job) db.jobs.insert(new_job) def execute_job(self, job): result = job.check_execution(self) if 'remove' in result: self.jobs.remove(job) db.jobs.remove({'_id':job['_id']}) if 'delay' in result: if not isinstance(job, JobAdventure): print("delay job ", job, "\n by", result['delay']) job['time'] += result['delay'] if 'execute' in result: print(datetime.today(), "Executing", job) job.execute(self) def get_user_db(self): return db.users.find_one({'name':self.travian.user_name}) def start(self): while True: if self.jobs and self.jobs[0]['time'] - timedelta(seconds=5) <= datetime.today(): job = self.jobs[0] if job['time'] - datetime.today() >= timedelta(seconds=1): time.sleep(5)#(job['time'] - datetime.today()).seconds) self.execute_job(job) self.jobs.sort(key=hash) time.sleep(5)
class TravianGui: def __init__(self): # Gui.__init__(self) # gui self.root = Tk() # compositions self.travian = Travian(self.root) self.market = Market(self.root, self.travian) self.raiding = Raiding(self.root, self.travian) self.info = Info(self.root, self.travian) # self.mail = Mail() # frames self.exit_frame = Frame(self.root, bd=5, relief=GROOVE) # items self.intvars = self.create_intvars() self.msg_var = StringVar() self.msg_var.set('Messages') self.old_news = self.create_news() self.news = self.create_news() # widgets self.buttons = self.create_buttons() self.checkboxes = self.create_checkboxes() self.messages = self.create_messages() # configure gui self.config_root() self.make_market_frame() self.make_raid_frame() self.make_info_frame() self.make_exit_frame() # ============================================ # region ITEMS @staticmethod def create_intvars(): dic = OrderedDict() dic['sitter'] = IntVar() return dic def create_news(self): dic = OrderedDict() dic['send'] = self.market.send.news dic['offer'] = self.market.offer.news dic['raid'] = self.raiding.news dic['info'] = self.info.news return dic # ============================================ # region WIDGETS def create_buttons(self): dic = OrderedDict() dic['restart'] = Button(self.exit_frame, text='Restart', width=self.info.button_size, command=self.restart) dic['quit'] = Button(self.exit_frame, text='Exit', width=self.info.button_size, command=self.root.destroy) return dic def create_checkboxes(self): dic = OrderedDict() dic['sitter'] = Checkbutton(self.exit_frame, text='sitter', variable=self.intvars['sitter'], command=self.set_sitter) return dic def create_messages(self): dic = OrderedDict() dic['terminal'] = Message(self.market.offer.frame, textvar=self.msg_var, bg='bisque3', font='times 12', relief=SUNKEN, aspect=300) return dic # ============================================ # region COMMANDS def config_root(self): self.root.title('Travian Helper') self.root.geometry('+600-80') # 530x400 def restart(self): self.root.destroy() python = executable execl(python, python, *argv) def set_sitter(self): is_sitter = bool(self.intvars['sitter'].get()) return self.travian.sitter_mode(is_sitter) def message_handler(self): self.news = self.create_news() for key, value in self.news.iteritems(): if value != self.old_news[key]: self.msg_var.set(value) self.old_news[key] = value self.messages['terminal'].after(100, self.message_handler) # endregion # ============================================ # region FRAMES AND PACKING def make_market_frame(self): self.market.frame.grid() self.market.make_gui() self.messages['terminal'].grid(row=6, columnspan=5, sticky='NEWS', pady=2, padx=2) self.market.offer.frame.grid_rowconfigure(6, weight=1) def make_raid_frame(self): self.raiding.frame.grid(row=0, column=1, sticky='NEWS') self.raiding.frame.grid_rowconfigure(1, weight=1) self.raiding.make_gui() def make_info_frame(self): self.info.frame.grid(row=1, columnspan=2, sticky='NEWS') self.info.make_gui() def make_exit_frame(self): self.exit_frame.grid(row=2, columnspan=2, sticky='NEWS') self.exit_frame.grid_columnconfigure(0, weight=1) self.exit_frame.grid_columnconfigure(1, weight=1) self.exit_frame.grid_columnconfigure(2, weight=1) self.checkboxes['sitter'].grid(row=0) self.buttons['restart'].grid(row=0, column=1, pady=6) self.buttons['quit'].grid(row=0, column=2) # endregion def do_nothing(self): pass