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))

Ejemplo n.º 2
0
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)