From 1a315f100d27bde85a49d91e52df251db4a5104d Mon Sep 17 00:00:00 2001 From: q Date: Wed, 26 Jun 2024 10:54:14 +0300 Subject: [PATCH] exclude for swp. fixing seconds for clock --- bin/clockcurses | 12 +++++--- py-packages/SimpleWebPage.tgz | Bin 10194 -> 10245 bytes .../SimpleWebPage/simplewebpage/__init__.py | 26 +++++++++++++----- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/bin/clockcurses b/bin/clockcurses index a236540..eceb4c9 100755 --- a/bin/clockcurses +++ b/bin/clockcurses @@ -101,9 +101,8 @@ def saddstr(win, y, x, s, a=None): pass -def drawcircle(win, cy, cx, r, s="·", attr=None): +def drawcircle(win, cy, cx, r, s="·", attr=None, precision=360): # TODO: get seconds?, color by angle, darkening to past. current seconds bright - precision = 360 for a in range(precision): alpha = 2.0 * math.pi * a / precision dy = int(round(cy - float(r) * math.cos(alpha))) @@ -233,6 +232,7 @@ def main(): is_alarm = False t_old = time.localtime(time.time()) tick_tock = False + exact_seconds = options.refresh % 1 == 0 try: # rows,columns = termsize() curses.cbreak() @@ -247,7 +247,7 @@ def main(): t_h, t_m = divmod(t_m, 60) f = 0 else: - f = now % 1 + f = 0 if exact_seconds else now % 1 t_s = float(t.tm_sec) t_m = float(t.tm_min) t_h = float(t.tm_hour) @@ -260,12 +260,16 @@ def main(): tick_tock = not tick_tock if options.refresh > 1 else t.tm_sec % 2 + #for s in range(60): + # drawline(stdscr, cy, cx, math.pi * s / 30.0, r-2, r / 2, "∙", + # attr=curses.color_pair(2) + curses.A_BOLD + curses.A_BLINK if is_alarm else curses.color_pair(8)) drawcircle( stdscr, cy, cx, r / 2, - attr=curses.color_pair(2) + curses.A_BOLD + curses.A_BLINK if is_alarm else curses.color_pair(1), + attr=curses.color_pair(2) + curses.A_BOLD + curses.A_BLINK if is_alarm else curses.color_pair(8), + precision=60 ) if options.seconds: drawline(stdscr, cy, cx, alphas, 1, r / 2, "■", curses.color_pair(2)) diff --git a/py-packages/SimpleWebPage.tgz b/py-packages/SimpleWebPage.tgz index 5a4bbc264b86ebb7893fe84baa9901f51803b755..9f810e90470fafcc0c86ad28261886ea2ec9248d 100644 GIT binary patch literal 10245 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 LrHTxp0H6Q>%3Znf literal 10194 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 0) @@ -1081,12 +1091,14 @@ def is_videofile(fname): return False -def match_files(files, glob_list): +def match_files(files, include_list, exclude_list): matched = [] for f in files: - for g in glob_list: - if fnmatch.fnmatch(f, g): - matched.append(f) + for in_g in include_list: + if fnmatch.fnmatch(f, in_g): + for ex_g in exclude_list: + if not fnmatch.fnmatch(f, ex_g): + matched.append(f) break return matched