Compare commits

...

7 commits

Author SHA1 Message Date
ebdac7c89d PEP 8 compliance. 2025-06-15 13:33:33 -04:00
2076e7341d PEP 8 compliance. 2025-06-15 13:31:32 -04:00
84b8c1b626 PEP 8 compliance. 2025-06-15 12:31:37 -04:00
66fd1bfe11 PEP 8 compliance. 2025-06-15 12:25:52 -04:00
dace0de99b PEP 8 compliance. 2025-06-15 12:23:32 -04:00
69ce445225 PEP 8 compliance. 2025-06-15 12:20:12 -04:00
80070e3a5e PEP 8 compliance. 2025-06-15 12:18:46 -04:00
7 changed files with 174 additions and 126 deletions

View file

@ -1,6 +1,7 @@
import dcc.config
import os
class List(dcc.config.Base):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
@ -13,11 +14,22 @@ class List(dcc.config.Base):
case "pwads":
self.list(x.name for x in os.scandir(self.pwads) if x.is_dir())
case "iwads":
self.list(x.name for x in os.scandir(self.iwads) if x.is_file())
self.list(
x.name for x in os.scandir(self.iwads)
if x.is_file()
)
case "demos":
self.list(x.name for x in os.scandir(self.demos.joinpath(parsed_args.wad)) if x.name.endswith(".lmp"))
self.list(
x.name for x in
os.scandir(self.demos.joinpath(parsed_args.wad))
if x.name.endswith(".lmp")
)
case "videos":
self.list(x.name for x in os.scandir(self.fabricate.joinpath(parsed_args.wad)) if x.name.endswith(".mp4"))
self.list(
x.name for x in
os.scandir(self.fabricate.joinpath(parsed_args.wad))
if x.name.endswith(".mp4")
)
case _:
raise Exception(f"unknown target {parsed_args.target}")

View file

@ -3,6 +3,7 @@ import sys
from cliff.app import App
from cliff.commandmanager import CommandManager
class DCC(App):
def __init__(self):
super().__init__(
@ -21,9 +22,11 @@ class DCC(App):
def clean_up(self, cmd, result, err):
pass
def main(argv=sys.argv[1:]):
dcc = DCC()
return dcc.run(argv)
if __name__ == '__main__':
sys.exit(main())

View file

@ -2,6 +2,7 @@ import dcc.config
import dcc.doom_base
import subprocess
class PB(dcc.doom_base.WadMap):
def take_action(self, parsed_args):
subprocess.run(["ffplay", self.video_path()])

View file

@ -2,6 +2,7 @@ import boto3
import dcc.config
import dcc.doom_base
class Put(dcc.doom_base.WadMap):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
@ -13,5 +14,10 @@ class Put(dcc.doom_base.WadMap):
demo = self.demo_in_path()
bucket = self.target_bucket()
print("Uploading {} to bucket {}.".format(demo, bucket))
s3_client.upload_file(demo, 'yrriban', bucket,
ExtraArgs={'ContentType': 'binary/octet-stream', 'ACL': 'public-read'})
s3_client.upload_file(
demo, 'yrriban', bucket,
ExtraArgs={
'ContentType': 'binary/octet-stream',
'ACL': 'public-read'
}
)

View file

@ -5,6 +5,7 @@ import sys
import wand.display
import wand.image
class SS(dcc.doom_base.WadMap):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
@ -13,24 +14,39 @@ class SS(dcc.doom_base.WadMap):
return parser
def take_action(self, parsed_args):
def try_screenshot():
with wand.image.Image(width=dcc.config.THUMB_WIDTH, height=dcc.config.THUMB_HEIGHT, pseudo="x:") as img:
while not self._try_screenshot(parsed_args.gravity, parsed_args.yolo):
pass
def _try_screenshot(self, gravity, yolo):
with wand.image.Image(
width=dcc.config.THUMB_WIDTH,
height=dcc.config.THUMB_HEIGHT,
pseudo="x:"
) as img:
img.reset_coords()
if img.size[0] < dcc.config.THUMB_WIDTH or img.size[1] < dcc.config.THUMB_HEIGHT:
if not messagebox.askretrycancel(title="DCC", message="Image too small. Try again?"):
if (
img.size[0] < dcc.config.THUMB_WIDTH
or img.size[1] < dcc.config.THUMB_HEIGHT
):
if not messagebox.askretrycancel(
title="DCC", message="Image too small. Try again?"
):
sys.exit("Gave up trying to select an image.")
return False
img.crop(width=dcc.config.THUMB_WIDTH,height=dcc.config.THUMB_HEIGHT,gravity=parsed_args.gravity)
img.crop(
width=dcc.config.THUMB_WIDTH,
height=dcc.config.THUMB_HEIGHT,
gravity=gravity
)
img.reset_coords()
if not parsed_args.yolo:
if not yolo:
wand.display.display(img)
accepted = messagebox.askyesnocancel(title="DCC", message="Is this image acceptable?")
accepted = messagebox.askyesnocancel(
title="DCC", message="Is this image acceptable?"
)
if accepted is None:
sys.exit("Gave up on image verification")
if not accepted:
return False
img.save(filename=self.base_thumb_path())
return True
while not try_screenshot():
pass

View file

@ -3,19 +3,20 @@ import sys
import wand.drawing
import wand.image
def draw_text(img, text, font_size=64):
with wand.drawing.Drawing() as draw:
draw.font = dcc.config.FONT
draw.font_size=font_size
draw.fill_color=wand.color.Color(dcc.config.TEXT_FILL_COLOR)
draw.stroke_color=wand.color.Color(dcc.config.TEXT_STROKE_COLOR)
draw.stroke_width=font_size*5/32
draw.text_interline_spacing=-font_size/4
draw.text(5,int(draw.font_size)+5,text)
draw.font_size = font_size
draw.fill_color = wand.color.Color(dcc.config.TEXT_FILL_COLOR)
draw.stroke_color = wand.color.Color(dcc.config.TEXT_STROKE_COLOR)
draw.stroke_width = font_size * 5 / 32
draw.text_interline_spacing = -font_size / 4
draw.text(5, int(draw.font_size) + 5, text)
draw(img)
draw.stroke_color=wand.color.Color("none")
draw.stroke_width=0
draw.text(5,int(draw.font_size)+5,text)
draw.stroke_color = wand.color.Color("none")
draw.stroke_width = 0
draw.text(5, int(draw.font_size)+5, text)
draw(img)
@ -31,7 +32,10 @@ class Text(dcc.doom_base.WadMap):
if not parsed_args.nomap:
text = "MAP{}: {}".format(parsed_args.map, text)
text = "{}\n{}".format(text, parsed_args.demotype)
with wand.image.Image(height=dcc.config.THUMB_HEIGHT,width=dcc.config.THUMB_WIDTH) as img:
with wand.image.Image(
height=dcc.config.THUMB_HEIGHT,
width=dcc.config.THUMB_WIDTH
) as img:
draw_text(img, text)
img.trim()
img.reset_coords()

View file

@ -3,6 +3,7 @@ import dcc.doom_base
import wand.color
import wand.image
class Thumb(dcc.doom_base.WadMap):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
@ -13,7 +14,10 @@ class Thumb(dcc.doom_base.WadMap):
base = self.base_thumb_path()
text = self.text_thumb_path()
mdoom = self.m_doom_path()
with wand.image.Image(filename=base) as bi, wand.color.Color("transparent") as tc:
with (
wand.image.Image(filename=base) as bi,
wand.color.Color("transparent") as tc
):
with wand.image.Image(filename=text) as ti:
ti.border(tc, 5, 5)
bi.composite(ti, gravity="south_west")
@ -23,7 +27,9 @@ class Thumb(dcc.doom_base.WadMap):
bi.composite(mdi, gravity="north_west")
if parsed_args.index:
with wand.image.Image(filename=self.output.joinpath("doomed_index.png")) as di:
with wand.image.Image(
filename=self.output.joinpath("doomed_index.png")
) as di:
di.border(tc, 1, 1)
bi.composite(di, gravity="north_east")