Exemple #1
0
    def __init__(self, master, controller):
        Base.__init__(self, master, controller)

        self._bidding = False
        self._bidCycle = 0
        self._errorCount = 0
        self._banWait = 0
        self._startTime = 0
        self._lastUpdate = 0
        self._updatedItems = []
        self.auctionsWon = 0
        self.sold = 0

        self.q = mp.Queue()
        self.p = None

        self.rpm = tk.StringVar()
        self.minCredits = tk.StringVar()
        self.maxPlayer = tk.StringVar()
        self.autoUpdate = tk.IntVar()
        self.buy = tk.StringVar()
        self.sell = tk.StringVar()
        self.bin = tk.StringVar()
        self.snipeOnly = tk.IntVar()
        self.relistAll = tk.IntVar()

        self.settings = {
            'rpm': 20,
            'minCredits': 1000,
            'maxPlayer': 20,
            'autoUpdate': 0,
            'buy': 0.9,
            'sell': 1,
            'bin': 1.25,
            'snipeOnly': 0,
            'relistAll': 1
        }

        # Search for settings
        try:
            with open(constants.SETTINGS_FILE, 'r') as f:
                self.settings.update(json.load(f))
        except:
            pass

        # Set initial values
        self.rpm.set(self.settings['rpm'])
        self.minCredits.set(self.settings['minCredits'])
        self.maxPlayer.set(self.settings['maxPlayer'])
        self.autoUpdate.set(self.settings['autoUpdate'])
        self.buy.set(int(self.settings['buy']*100))
        self.sell.set(int(self.settings['sell']*100))
        self.bin.set(int(self.settings['bin']*100))
        self.snipeOnly.set(self.settings['snipeOnly'])
        self.relistAll.set(self.settings['relistAll'])

        # Setup traces
        self.rpm.trace('w', self.save_settings)
        self.minCredits.trace('w', self.save_settings)
        self.maxPlayer.trace('w', self.save_settings)
        self.autoUpdate.trace('w', self.save_settings)
        self.buy.trace('w', self.save_settings)
        self.sell.trace('w', self.save_settings)
        self.bin.trace('w', self.save_settings)
        self.snipeOnly.trace('w', self.save_settings)
        self.relistAll.trace('w', self.save_settings)

        # Setup GUI
        options = tk.Frame(self)
        options.grid(column=0, row=0, sticky='ns')

        auctions = tk.Frame(self)

        self.auctionStatus = Auctions(auctions)
        self.auctionStatus.get_view().grid(column=0, row=0, sticky='nsew')

        self.logView = tk.Text(auctions, bg='#1d93ab', fg='#ffeb7e', bd=0)
        self.logView.grid(column=0, row=1, sticky='nsew')

        auctions.grid(column=1, row=0, sticky='nsew')
        auctions.grid_rowconfigure(0, weight=3)
        auctions.grid_rowconfigure(1, weight=1)
        auctions.grid_columnconfigure(0, weight=1)

        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=0)
        self.grid_columnconfigure(1, weight=1)

        back = tk.Button(options, bg='#1d93ab', text='Back to Player Search', command=self.playersearch)
        back.grid(column=0, row=0, sticky='we')

        self.tree = ttk.Treeview(options, columns=('buy', 'sell', 'bin', 'won'), selectmode='browse')
        self.tree.heading('#0', text='Name', anchor='w')
        self.tree.column('buy', width=50, anchor='center')
        self.tree.heading('buy', text='Max Bid')
        self.tree.column('sell', width=50, anchor='center')
        self.tree.heading('sell', text='Sell')
        self.tree.column('bin', width=50, anchor='center')
        self.tree.heading('bin', text='BIN')
        self.tree.column('won', width=50, anchor='center')
        self.tree.heading('won', text='# Won')
        self.tree.grid(column=0, row=1, sticky='ns')

        form = tk.Frame(options, padx=15, pady=15)
        form.grid(column=0, row=2)

        options.grid_columnconfigure(0, weight=1)
        options.grid_rowconfigure(0, weight=0)
        options.grid_rowconfigure(1, weight=1)
        options.grid_rowconfigure(2, weight=0)

        settingsLbl = tk.Label(form, text='Settings', font=('KnulBold', 16))
        settingsLbl.grid(column=0, row=0, columnspan=2)

        rpmLbl = tk.Label(form, text='RPM:')
        rpmLbl.grid(column=0, row=1, sticky='e')
        rpmEntry = tk.Entry(form, width=8, textvariable=self.rpm)
        rpmEntry.grid(column=1, row=1, sticky='w')

        minCreditsLbl = tk.Label(form, text='Min $:')
        minCreditsLbl.grid(column=0, row=2, sticky='e')
        minCreditsEntry = tk.Entry(form, width=8, textvariable=self.minCredits)
        minCreditsEntry.grid(column=1, row=2, sticky='w')

        maxPlayerLbl = tk.Label(form, text='Max Cards:')
        maxPlayerLbl.grid(column=0, row=3, sticky='e')
        maxPlayerEntry = tk.Entry(form, width=8, textvariable=self.maxPlayer)
        maxPlayerEntry.grid(column=1, row=3, sticky='w')

        snipeOnlyLbl = tk.Label(form, text='BIN Snipe:')
        snipeOnlyLbl.grid(column=0, row=4, sticky='e')
        snipeOnlyCheckbox = tk.Checkbutton(form, variable=self.snipeOnly)
        snipeOnlyCheckbox.grid(column=1, row=4, sticky='w')

        pricingLbl = tk.Label(form, text='Pricing', font=('KnulBold', 16))
        pricingLbl.grid(column=2, row=0, columnspan=2)

        autoUpdateLbl = tk.Label(form, text='Auto Update:')
        autoUpdateLbl.grid(column=2, row=1, sticky='e')
        autoUpdateCheckbox = tk.Checkbutton(form, variable=self.autoUpdate)
        autoUpdateCheckbox.grid(column=3, row=1, sticky='w')

        autoBuyLbl = tk.Label(form, text='Auto Bid %:')
        autoBuyLbl.grid(column=2, row=2, sticky='e')
        autoBuyEntry = tk.Entry(form, width=4, textvariable=self.buy)
        autoBuyEntry.grid(column=3, row=2, sticky='w')

        autoSellLbl = tk.Label(form, text='Auto Sell %:')
        autoSellLbl.grid(column=2, row=3, sticky='e')
        autoSellEntry = tk.Entry(form, width=4, textvariable=self.sell)
        autoSellEntry.grid(column=3, row=3, sticky='w')

        autoBINLbl = tk.Label(form, text='Auto BIN %:')
        autoBINLbl.grid(column=2, row=4, sticky='e')
        autoBINEntry = tk.Entry(form, width=4, textvariable=self.bin)
        autoBINEntry.grid(column=3, row=4, sticky='w')

        relistAllLbl = tk.Label(form, text='Same Relist $:')
        relistAllLbl.grid(column=2, row=5, sticky='e')
        relistAllCheckbox = tk.Checkbutton(form, variable=self.relistAll)
        relistAllCheckbox.grid(column=3, row=5, sticky='w')

        self.bidbtn = tk.Button(form, text='Start Bidding', command=self.start)
        self.bidbtn.grid(column=0, row=6, columnspan=4, padx=5, pady=5)

        self.checkQueue()
        self.clearErrors()