Esempio n. 1
0
 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()
Esempio n. 2
0
    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))

Esempio n. 4
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)
Esempio n. 5
0
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