Compare commits

..

No commits in common. "16eb67c7976fae02896af44b385c4ff77c902898" and "a3da884eee03bf0cb65b6a6c2eba41817a78b464" have entirely different histories.

6 changed files with 20 additions and 68 deletions

View file

@ -1,2 +1,2 @@
install:
cp dist/pyinstaller/manylinux_2_39_x86_64/dcc /home/tynan/.local/bin/dcc
cp venv/bin/dcc /home/tynan/.local/bin/dcc

View file

@ -1,7 +1,6 @@
import av
import copy
import dcc.doom_base
import enum
import fractions
import io
import logging
@ -10,11 +9,6 @@ import numpy as np
import wand.image
class State(enum.Enum):
NOT_STARTED = 1
STARTED = 2
DONE = 3
class Concat(dcc.doom_base.Wad):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
@ -27,7 +21,10 @@ class Concat(dcc.doom_base.Wad):
logging.basicConfig()
av.logging.set_level(av.logging.VERBOSE)
av.logging.restore_default_callback()
videodir = self.fabricate.joinpath(parsed_args.wad)
videos = (
self.fabricate.joinpath(parsed_args.wad)
.glob(f"{parsed_args.wad}_map*.mp4")
)
fn_base = (
f"{parsed_args.wad}_maps{parsed_args.start_map}"
+ f"to{parsed_args.end_map}"
@ -48,27 +45,19 @@ class Concat(dcc.doom_base.Wad):
# unavailable" error when switching to inputs after the first.
# Presumably fixable, but it's easier to just make one graph per video
# and mux everything together at the end.
for v in sorted(videos):
# TODO: Support UDoom in literally any way.
d2maps = [str(x).zfill(2) for x in range(1,16)] + ["31","32"] + [str(x) for x in range(16,31)]
state = State.NOT_STARTED
for idx in d2maps:
if idx == parsed_args.start_map:
state = State.STARTED
if idx == parsed_args.end_map:
state = State.DONE
if state == State.NOT_STARTED:
if not (
v.name >= f"{parsed_args.wad}_map{parsed_args.start_map}.mp4"
and v.name <= f"{parsed_args.wad}_map{parsed_args.end_map}.mp4"
):
continue
start_time = self._offset / 1000000
text = self._add_chunk(
videodir.joinpath(f"{parsed_args.wad}_map{idx}.mp4"),
output, not parsed_args.nooverlay
)
text = self._add_chunk(v, output, not parsed_args.nooverlay)
list.append(
summary, f"{text} {math.floor(start_time / 60):02}:"
+ f"{math.floor(start_time % 60):02}"
)
if state == State.DONE:
break
output.close()
for line in summary:

View file

@ -2,7 +2,7 @@ import io
import pathlib
import os
import re
import tomlkit.toml_file
import tomlkit
from cliff.command import Command

View file

@ -3,51 +3,13 @@ import sys
from cliff.app import App
from cliff.commandmanager import CommandManager
import dcc.concat
import dcc.configure
import dcc.dsda
import dcc.eureka
import dcc.extract
import dcc.fabricate
import dcc.fetch
import dcc.ls
import dcc.pb
import dcc.play
import dcc.put
import dcc.record
import dcc.rib
import dcc.ss
import dcc.text
import dcc.thumb
class DCC(App):
def __init__(self):
cm = CommandManager(None)
commands = {
"concat": dcc.concat.Concat,
"configure": dcc.configure.Configure,
"dsda": dcc.dsda.DSDA,
"eureka": dcc.eureka.Eureka,
"extract": dcc.extract.Extract,
"fabricate": dcc.fabricate.Fabricate,
"fetch": dcc.fetch.Fetch,
"ls": dcc.ls.List,
"pb": dcc.pb.PB,
"play": dcc.play.Play,
"put": dcc.put.Put,
"record": dcc.record.Record,
"rib": dcc.rib.RIB,
"ss": dcc.ss.SS,
"text": dcc.text.Text,
"thumb": dcc.thumb.Thumb,
}
for n, c in commands.items():
cm.add_command(n, c)
super().__init__(
description="Doom Command Center",
version="0.0.1",
command_manager=cm,
command_manager=CommandManager("dcc"),
deferred_help=True,
)

View file

@ -29,12 +29,10 @@ class Text(dcc.doom_base.WadMap):
parser = super().get_parser(prog_name)
parser.add_argument("--nomap", action="store_true")
parser.add_argument("--demotype", default="UV-Max Demo")
parser.add_argument("--stdin", "--stdin-only", action="store_true")
return parser
def take_action(self, parsed_args):
text = None
if not parsed_args.stdin:
map_names = self._config.get("map_names")
if map_names is not None:
text = map_names.get(f"map{parsed_args.map}")

View file

@ -28,3 +28,6 @@ dcc = "dcc.main:main"
[tool.poetry-pyinstaller-plugin.scripts]
dcc = { source = "dcc/main.py", type = "onefile" }
[tool.poetry-pyinstaller-plugin.collect]
all = ["dcc"]