Skip to content

Commit

Permalink
rm playback
Browse files Browse the repository at this point in the history
  • Loading branch information
happyleavesaoc committed Jan 31, 2023
1 parent 2a007a4 commit 5470e15
Show file tree
Hide file tree
Showing 7 changed files with 9 additions and 806 deletions.
56 changes: 1 addition & 55 deletions mgz/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

from construct.core import ConstructError
from tabulate import tabulate
import tqdm

import mgz
import mgz.const
Expand All @@ -23,8 +22,6 @@


LOGGER = logging.getLogger(__name__)
CMD_PLAY = 'play'
CMD_EXTRACT = 'extract'
CMD_INFO = 'info'
CMD_CHAT = 'chat'
CMD_VALIDATE = 'validate'
Expand All @@ -34,44 +31,6 @@
CMD_PAD = 'pad'


class TqdmStream: # pylint: disable=too-few-public-methods
"""Log handler for TQDM."""

@classmethod
def write(cls, msg):
"""Handle progress bars and logs."""
tqdm.tqdm.write(msg, end='')


async def play_rec(playback, path):
"""Play a recorded game."""
if not playback:
raise RuntimeError('playback not supported')
from mgz.playback import Client, progress_bar
with open(path, 'rb') as handle:
summary = Summary(handle)
client = await Client.create(
playback, path, summary.get_start_time(), summary.get_duration()
)
async for _, _, _ in progress_bar(client.sync(), client.duration):
pass


async def extract_rec(playback, path, select=None):
"""Extract data from a recorded game."""
with open(path, 'rb') as handle:
summary = Summary(handle, playback=playback)
data = await summary.async_extract(30000)
print('version: {}, runtime: {}'.format(data['version'], data['runtime']))
for key, records in data.items():
if select and key != select:
continue
print(key)
print('-------------')
for record in records:
print(record)


def print_info(path):
"""Print basic info."""
with open(path, 'rb') as handle:
Expand Down Expand Up @@ -215,13 +174,7 @@ def print_histogram(path):

async def run(args): # pylint: disable=too-many-branches
"""Entry point."""
if args.cmd == CMD_PLAY:
for rec in args.rec_path:
await play_rec(args.playback.split(',')[0], rec)
elif args.cmd == CMD_EXTRACT:
for rec in args.rec_path:
await extract_rec(args.playback.split(',')[0], rec, args.select)
elif args.cmd == CMD_INFO:
if args.cmd == CMD_INFO:
for rec in args.rec_path:
print_info(rec)
elif args.cmd == CMD_CHAT:
Expand All @@ -247,19 +200,12 @@ async def run(args): # pylint: disable=too-many-branches
def get_args():
"""Get arguments."""
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--playback',
default=os.environ.get('AOC_PLAYBACK', ''))
subparsers = parser.add_subparsers(dest='cmd')
subparsers.required = True
info = subparsers.add_parser(CMD_INFO)
info.add_argument('rec_path', nargs='+')
chat = subparsers.add_parser(CMD_CHAT)
chat.add_argument('rec_path', nargs='+')
play = subparsers.add_parser(CMD_PLAY)
play.add_argument('rec_path', nargs='+')
extract = subparsers.add_parser(CMD_EXTRACT)
extract.add_argument('-s', '--select')
extract.add_argument('rec_path', nargs='+')
validate = subparsers.add_parser(CMD_VALIDATE)
validate.add_argument('rec_path', nargs='+')
dump = subparsers.add_parser(CMD_DUMP)
Expand Down
5 changes: 1 addition & 4 deletions mgz/model/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def empty_achievements():
class ModelSummary:
"""Compatibility layer between Model and Summary classes."""

def __init__(self, handle, playback=None):
def __init__(self, handle):
self.match = parse_match(handle)
self.size = self.match.file.size

Expand Down Expand Up @@ -268,6 +268,3 @@ def get_map(self):
) for t in self.match.map.tiles
]
)

def can_playback(self):
return False
177 changes: 0 additions & 177 deletions mgz/playback.py

This file was deleted.

6 changes: 3 additions & 3 deletions mgz/summary/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

class SummaryStub:

def __call__(self, data, playback=None, fallback=False):
def __call__(self, data, fallback=False):
try:
header = decompress(data)
version, game, save, log = parse_version(header, data)
Expand All @@ -20,11 +20,11 @@ def __call__(self, data, playback=None, fallback=False):
if supported and not fallback:
logger.info("using model summary")
try:
return ModelSummary(data, playback)
return ModelSummary(data)
except RuntimeError as e:
logger.warning(f"could not fast parse; falling back: {e}")
logger.info("using full summary")
return FullSummary(data, playback)
return FullSummary(data)


Summary = SummaryStub()
Loading

0 comments on commit 5470e15

Please sign in to comment.