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)