Loading cog/actions.py +11 −6 Original line number Diff line number Diff line Loading @@ -415,13 +415,16 @@ class Admin(Action): try: for name, template in [['hudson_cattle', 'New Template Fort'], ['hudson_undermine', 'New Template UM']]: ['hudson_undermine', 'New Template UM'], ['hudson_tracker', 'New Template Tracker']]: config = confs[name] new_page = cog.util.number_increment(config['page']) config['page'] = new_page try: if name == 'hudson_cattle': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('FALSE'), 'USER_ENTERED') await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B9:B9', 'FALSE'), 'USER_ENTERED') elif name == 'hudson_tracker': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B13:B13', 'FALSE'), 'USER_ENTERED') # Copy template to new page and point asheet at it. try: Loading @@ -432,7 +435,9 @@ class Admin(Action): await scanners[name].asheet.change_worksheet(new_page) if name == 'hudson_cattle': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('TRUE'), 'USER_ENTERED') await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B9:B9', 'TRUE'), 'USER_ENTERED') elif name == 'hudson_tracker': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B13:B13', 'TRUE'), 'USER_ENTERED') except gspread.exceptions.WorksheetNotFound as exc: msg = f"Missing **{new_page}** worksheet on {name}. Please fix and rerun cycle. No change made." raise cog.exc.InvalidCommandArgs(msg) from exc Loading Loading @@ -554,7 +559,7 @@ class Admin(Action): return reply async def execute(self): #globe = cogdb.query.get_current_global(self.session) globe = cogdb.query.get_current_global(self.session) try: admin = cogdb.query.get_admin(self.session, self.duser) except cog.exc.NoMatch as exc: Loading @@ -564,8 +569,8 @@ class Admin(Action): func = getattr(self, self.args.subcmd) if self.args.subcmd == "remove": response = await func(admin) #elif self.args.subcmd == "cycle": #response = await func(globe) elif self.args.subcmd == "cycle": response = await func(globe) else: response = await func() if response: Loading cogdb/scanners.py +16 −2 Original line number Diff line number Diff line Loading @@ -323,15 +323,16 @@ class FortScanner(): return [{'range': cell_range, 'values': [[amount]]}] @staticmethod def update_import_mode_dict(import_mode): def update_import_mode_dict(range, import_mode): """Change import mode from the sheet. Args: range (string): Range value in the sheet. (E.G. B9:B9) import_mode (string): Import mode, can only be True or False. Returns: A list of update dicts to pass to batch_update. """ return [{'range': 'B9:B9', 'values': [[import_mode]]}] return [{'range': str(range), 'values': [[import_mode]]}] class UMScanner(FortScanner): Loading Loading @@ -1078,6 +1079,19 @@ class OCRScanner(FortScanner): return triggers class FortTracker(FortScanner): """ Scanner for the Main Hudson Fort Tracker sheet. args: asheet: The AsyncGSheet that connects to the sheet. """ def __init__(self, asheet): super().__init__(asheet, []) def __repr__(self): return super().__repr__().replace('FortScanner', 'FortTracker') async def init_scanners(): """ Initialized all parts related to google sheet scanners. Loading tests/cogdb/test_scanners.py +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ def test_fortscanner_update_drop_dict(): def test_fortscanner_update_import_mode_dict(): data = FortScanner.update_import_mode_dict('FALSE') data = FortScanner.update_import_mode_dict("B9:B9", 'FALSE') assert data == [{"range": "B9:B9", "values": [['FALSE']]}] Loading Loading
cog/actions.py +11 −6 Original line number Diff line number Diff line Loading @@ -415,13 +415,16 @@ class Admin(Action): try: for name, template in [['hudson_cattle', 'New Template Fort'], ['hudson_undermine', 'New Template UM']]: ['hudson_undermine', 'New Template UM'], ['hudson_tracker', 'New Template Tracker']]: config = confs[name] new_page = cog.util.number_increment(config['page']) config['page'] = new_page try: if name == 'hudson_cattle': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('FALSE'), 'USER_ENTERED') await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B9:B9', 'FALSE'), 'USER_ENTERED') elif name == 'hudson_tracker': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B13:B13', 'FALSE'), 'USER_ENTERED') # Copy template to new page and point asheet at it. try: Loading @@ -432,7 +435,9 @@ class Admin(Action): await scanners[name].asheet.change_worksheet(new_page) if name == 'hudson_cattle': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('TRUE'), 'USER_ENTERED') await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B9:B9', 'TRUE'), 'USER_ENTERED') elif name == 'hudson_tracker': await scanners[name].asheet.batch_update(scanners[name].update_import_mode_dict('B13:B13', 'TRUE'), 'USER_ENTERED') except gspread.exceptions.WorksheetNotFound as exc: msg = f"Missing **{new_page}** worksheet on {name}. Please fix and rerun cycle. No change made." raise cog.exc.InvalidCommandArgs(msg) from exc Loading Loading @@ -554,7 +559,7 @@ class Admin(Action): return reply async def execute(self): #globe = cogdb.query.get_current_global(self.session) globe = cogdb.query.get_current_global(self.session) try: admin = cogdb.query.get_admin(self.session, self.duser) except cog.exc.NoMatch as exc: Loading @@ -564,8 +569,8 @@ class Admin(Action): func = getattr(self, self.args.subcmd) if self.args.subcmd == "remove": response = await func(admin) #elif self.args.subcmd == "cycle": #response = await func(globe) elif self.args.subcmd == "cycle": response = await func(globe) else: response = await func() if response: Loading
cogdb/scanners.py +16 −2 Original line number Diff line number Diff line Loading @@ -323,15 +323,16 @@ class FortScanner(): return [{'range': cell_range, 'values': [[amount]]}] @staticmethod def update_import_mode_dict(import_mode): def update_import_mode_dict(range, import_mode): """Change import mode from the sheet. Args: range (string): Range value in the sheet. (E.G. B9:B9) import_mode (string): Import mode, can only be True or False. Returns: A list of update dicts to pass to batch_update. """ return [{'range': 'B9:B9', 'values': [[import_mode]]}] return [{'range': str(range), 'values': [[import_mode]]}] class UMScanner(FortScanner): Loading Loading @@ -1078,6 +1079,19 @@ class OCRScanner(FortScanner): return triggers class FortTracker(FortScanner): """ Scanner for the Main Hudson Fort Tracker sheet. args: asheet: The AsyncGSheet that connects to the sheet. """ def __init__(self, asheet): super().__init__(asheet, []) def __repr__(self): return super().__repr__().replace('FortScanner', 'FortTracker') async def init_scanners(): """ Initialized all parts related to google sheet scanners. Loading
tests/cogdb/test_scanners.py +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ def test_fortscanner_update_drop_dict(): def test_fortscanner_update_import_mode_dict(): data = FortScanner.update_import_mode_dict('FALSE') data = FortScanner.update_import_mode_dict("B9:B9", 'FALSE') assert data == [{"range": "B9:B9", "values": [['FALSE']]}] Loading