def print_title(message='N C P A', font=None, random_font=False): nice_fonts_list = [ 'lean', 'slant', 'alligator', 'alligator2', 'c1______', 'colossal', 'utopiab', 'mayhem_d' ] # Check the day of the week today = date.today() day = int(today.strftime("%d")) if font is not None: custom_fig = Figlet(font=font) print(custom_fig.renderText(message)) else: if random_font is False: # Randomly select the font according to day i_font = day % len(nice_fonts_list) - 1 custom_fig = Figlet(font=nice_fonts_list[i_font]) print(custom_fig.renderText(message)) else: custom_fig = Figlet() all_fonts = custom_fig.getFonts() i_font = np.random.choice(len(all_fonts)) print(all_fonts[i_font]) custom_fig = Figlet(font=all_fonts[i_font]) print(custom_fig.renderText(message)) return
def main(): parser = OptionParser(version=__version__) parser.add_option('-s', '--show', action='store_true', default=False, help='pause at each failure and compare output ' '(default: %default)') opts, args = parser.parse_args() f = Figlet() ok = 0 fail = 0 failed = [] skip = ['runic'] # known bug.. for font in f.getFonts(): if font in skip: continue f.setFont(font=font) outputPyfiglet = f.renderText('foo') fontpath = os.path.join('pyfiglet', 'fonts', font) if os.path.isfile(fontpath + '.flf'): cmd = ('figlet', '-d', 'pyfiglet/fonts', '-f', font, 'foo') elif os.path.isfile(fontpath + '.tlf'): cmd = ('toilet', '-d', 'pyfiglet/fonts', '-f', font, 'foo') else: raise Exception('Missing font file: ' + fontpath) p = Popen(cmd, bufsize=1, stdout=PIPE) outputFiglet = p.communicate()[0].decode('ascii', 'replace') if outputPyfiglet == outputFiglet: print('[OK] %s' % font) ok += 1 continue print('[FAIL] %s' % font) fail += 1 failed.append(font) if opts.show is True: print('[PYTHON] *** %s\n\n' % font) dump(outputPyfiglet) print('[FIGLET] *** %s\n\n' % font) dump(outputFiglet) raw_input() print('OK = %d, FAIL = %d' % (ok, fail)) if len(failed) > 0: print('FAILED = %s' % repr(failed)) return 0
def main(): parser = OptionParser(version=__version__) parser.add_option('-s', '--show', action='store_true', default=False, help='pause at each failure and compare output ' '(default: %default)') opts, args = parser.parse_args() f = Figlet() ok = 0 fail = 0 failed = [] skip = ['runic'] # known bug.. for font in f.getFonts(): if font in skip: continue f.setFont(font=font) outputPyfiglet = f.renderText('foo') fontpath = os.path.join('pyfiglet', 'fonts', font) if os.path.isfile(fontpath + '.flf'): cmd = ('figlet', '-d', 'pyfiglet/fonts', '-f', font, 'foo') elif os.path.isfile(fontpath + '.tlf'): cmd = ('toilet', '-d', 'pyfiglet/fonts', '-f', font, 'foo') else: raise Exception('Missing font file: '+fontpath) p = Popen(cmd, bufsize=1,stdout=PIPE) outputFiglet = p.communicate()[0].decode('ascii', 'replace') if outputPyfiglet == outputFiglet: print('[OK] %s' % font) ok += 1 continue print('[FAIL] %s' % font) fail += 1 failed.append(font) if opts.show is True: print('[PYTHON] *** %s\n\n' % font) dump(outputPyfiglet) print('[FIGLET] *** %s\n\n' % font) dump(outputFiglet) raw_input() print('OK = %d, FAIL = %d' % (ok, fail)) if len(failed) > 0: print('FAILED = %s' % repr(failed)) return 0
async def figlet(figletmsg): """ For .figlet module. """ arg = figletmsg.pattern_match.group(1).lower() text = figletmsg.pattern_match.group(2).lower() if arg == "": arg = "slant" if arg not in Figlet.getFonts(Figlet()): return f = Figlet(font=arg) ft = f.renderText(text) await figletmsg.edit(f"`\n{ft}`")
def run(self, *args): """!ascii: Usage: !ascii (_FontName_) Your Text / !ascii ?Fonts Posts custom ascii text art into chat. ?Fonts will send you a list of fonts via pm. Use custom fonts like this: !ascii _starwars_ Woooo Ascii Art! ___""" font = 'slant' try: chatid = int(args[1][0]) except: print "FAILED" return 0 try: if args[0].upper() == "?FONTS": f = Figlet(font) fontlist = "Available fonts:\n" fontlist += formatList(f.getFonts()) self.parent.librewired.sendPrivateMsg(int(args[1][1]), fontlist) return 0 except: return "Usage: !ascii (%FontName%) Text / !ascii ?Fonts" param = regmatch(args[0], '_') if param: font = param text = regexclude(args[0], '_') if not text: return 0 else: text = args[0] if not len(text): return "Usage: !ascii (%FontName%) Text / !ascii ?Fonts" asciitext = 0 try: f = Figlet(font) asciitext = f.renderText(text) except FontNotFound: return "Unknown font: " + str(font) if asciitext: lines = asciitext.split('\n') sswired = chr(31).join(lines) for aline in lines: if len(aline.strip()): self.parent.librewired.sendChat(chatid, chr(14) + aline) self.parent.librewired.sendChat(chatid, chr(129) + sswired) return 0
async def figlet(figletmsg): """ For .figlet module. """ if len(e.text.split(" ")) < 2: return splits = e.text.split(" ") arg = splits[1] tch = splits if arg not in Figlet.getFonts(Figlet()): arg = "slant" else: tch = splits[1:] f = Figlet(font=arg) ft = f.renderText(' '.join(tch)) await figletmsg.edit(f"`\n{ft}`")
async def ascii(self, ctx, *, param): """Print String to ascii art: <font> <text>""" f = Figlet() fonts = f.getFonts() attr = param.split(' ', 1)[0] if attr.lower() == "help": def chunks(s, n): """Produce `n`-character chunks from `s`.""" for start in range(0, len(s), n): yield s[start:start + n] fonts_string = "" fonts_chunks = [] for font in fonts: fonts_string += "{},".format(font) for chunk in chunks(fonts_string, 900): fonts_chunks.append(chunk) embed = discord.Embed( description= "Usage: !ascii <fontname> <text>\nFont defaults to slant.\nAvailable fonts:" ) for chunk in fonts_chunks: embed.add_field(name="-", value="``{}``".format(chunk)) return await ctx.send(embed=embed) else: if attr.lower() in fonts: f = Figlet(font=attr.lower()) try: text = param.split(' ', 1)[1] except IndexError: text = 'Empty' else: f = Figlet(font='slant') text = param asciistring = f.renderText(text) try: return await ctx.send("```{}```".format(asciistring)) except discord.errors.HTTPException: return await ctx.send("Message too long")
def welcome_msg(host, port): custom_fig = Figlet(font='contrast') new_font = random.choice(custom_fig.getFonts()) custom_fig.setFont(font=new_font) print(custom_fig.renderText('caldera')) print('Enter help or go to https://%s:%s in a browser' % (host, port))
def get_figlet_fonts(ctx, args, incomplete): f = Figlet(Config().get_user_value("formatting", "figlet_font")) fonts = sorted(f.getFonts()) return [font for font in fonts if incomplete in font]
/fonts?m=2 - Показать шрифты, которые работают с русским языком /imagerender?text=abc - Превратить текст в изображение ChangeLog 1.2.0: Добавлена возможность быстрого просмотра отрендереного текста в дискорде Добавлены новые пути - /imagerender ChangeLog 1.2.0.1 Всё что возможно - сделано читаемым из дискорда''' def imageBuilder(host, text): return f'http://{host}/imagerender?text={text}'.replace(' ', '+').replace( '<', '%3C').replace('>', '%3E') ru = ['banner', 'georgia11', 'graceful', 'mnemonic'] fonts = fig.getFonts() wrfonts = [x for x in fonts if x not in ru] stats = {'rendered': {'success': 0, 'fail': 0}} def imageRender(text: str): b = BytesIO() font = ImageFont.truetype('Roboto-Thin.ttf', 30) img = Image.new('RGB', (2000, 1000)) draw = ImageDraw.Draw(img) draw.text((0, 0), text, fill=(0, 0, 0), font=font) W, H = font.getsize(text) W = 0 for line in text.splitlines(): tmp = font.getsize(line) if tmp[0] > W:
class Test(object): def __init__(self, opts): self.opts = opts self.ok = 0 self.fail = 0 self.failed = [] self.oked = [] self.skip = ['runic','pyramid','eftifont'] # known bug.. # Toilet fonts that we don't handle identically, yet self.skip += ['emboss', 'emboss2', 'future', 'letter', 'pagga', 'smblock', 'smbraille', 'wideterm'] self.f = Figlet() def outputUsingFigletorToilet(self, text, font, fontpath): if os.path.isfile(fontpath + '.flf'): cmd = ('figlet', '-d', 'pyfiglet/fonts', '-f', font, text) elif os.path.isfile(fontpath + '.tlf'): cmd = ('toilet', '-d', 'pyfiglet/fonts', '-f', font, text) else: raise Exception('Missing font file: '+fontpath) p = Popen(cmd, bufsize=4096, stdout=PIPE) outputFiglet = p.communicate()[0].decode('utf8') return outputFiglet def validate_font_output(self, font, outputFiglet, outputPyfiglet): if outputPyfiglet == outputFiglet: win('[OK] %s' % font) self.ok += 1 self.oked.append(font) return fail('[FAIL] %s' % font) self.fail += 1 self.failed.append(font) self.show_result(outputFiglet, outputPyfiglet, font) def show_result(self, outputFiglet, outputPyfiglet, font): if self.opts.show is True: print('[PYTHON] *** %s\n\n' % font) dump(outputPyfiglet) print('[FIGLET] *** %s\n\n' % font) dump(outputFiglet) raw_input() def check_font(self, text, font): if font in self.skip: return fontpath = os.path.join('pyfiglet', 'fonts', font) self.f.setFont(font=font) outputPyfiglet = self.f.renderText(text) outputFiglet = self.outputUsingFigletorToilet(text, font, fontpath) # Our TLF rendering isn't perfect, yet strict = os.path.isfile(fontpath + '.flf') if not strict: outputPyfiglet = outputPyfiglet.strip('\n') outputFiglet = outputFiglet.strip('\n') self.validate_font_output(font, outputFiglet, outputPyfiglet) def check_text(self, text): for font in self.f.getFonts(): self.check_font(text, font) def check_result(self): print('OK = %d, FAIL = %d' % (self.ok, self.fail)) if len(self.failed) > 0: print('FAILED = %s' % repr(self.failed)) return self.failed, self.oked
class Test(object): def __init__(self, opts): self.opts = opts self.ok = 0 self.fail = 0 self.failed = [] self.oked = [] self.skip = ['runic', 'pyramid', 'eftifont'] # known bug.. self.f = Figlet() def outputUsingFigletorToilet(self, text, font, fontpath): if os.path.isfile(fontpath + '.flf'): cmd = ('figlet', '-d', 'pyfiglet/fonts', '-f', font, text) elif os.path.isfile(fontpath + '.tlf'): cmd = ('toilet', '-d', 'pyfiglet/fonts', '-f', font, text) else: raise Exception('Missing font file: ' + fontpath) p = Popen(cmd, bufsize=4096, stdout=PIPE) outputFiglet = p.communicate()[0].decode('utf8') return outputFiglet def validate_font_output(self, font, outputFiglet, outputPyfiglet): if outputPyfiglet == outputFiglet: win('[OK] %s' % font) self.ok += 1 self.oked.append(font) return fail('[FAIL] %s' % font) self.fail += 1 self.failed.append(font) self.show_result(outputFiglet, outputPyfiglet, font) def show_result(self, outputFiglet, outputPyfiglet, font): if self.opts.show is True: print('[PYTHON] *** %s\n\n' % font) dump(outputPyfiglet) print('[FIGLET] *** %s\n\n' % font) dump(outputFiglet) raw_input() def check_font(self, text, font): if font in self.skip: return fontpath = os.path.join('pyfiglet', 'fonts', font) self.f.setFont(font=font) outputPyfiglet = self.f.renderText(text) outputFiglet = self.outputUsingFigletorToilet(text, font, fontpath) # Our TLF rendering isn't perfect, yet strict = os.path.isfile(fontpath + '.flf') if not strict: outputPyfiglet = outputPyfiglet.strip('\n') outputFiglet = outputFiglet.strip('\n') self.validate_font_output(font, outputFiglet, outputPyfiglet) def check_text(self, text): for font in self.f.getFonts(): self.check_font(text, font) def check_result(self): print('OK = %d, FAIL = %d' % (self.ok, self.fail)) if len(self.failed) > 0: print('FAILED = %s' % repr(self.failed)) return self.failed, self.oked
class Test(object): def __init__(self, opts): self.opts = opts self.ok = 0 self.fail = 0 self.failed = [] self.oked = [] # known bugs... self.skip = ['runic', 'pyramid', 'eftifont', 'DANC4', 'dietcola'] # Toilet fonts that we don't handle identically, yet self.skip += [ 'emboss', 'emboss2', 'future', 'letter', 'pagga', 'smblock', 'smbraille', 'wideterm' ] # fonts that throw Unicode decoding errors self.skip += ['dosrebel', 'konto', 'kontoslant'] self.f = Figlet() def outputUsingFigletorToilet(self, text, font, fontpath): if os.path.isfile(fontpath + '.flf'): cmd = ('figlet', '-d', 'pyfiglet/fonts', '-f', font, text) elif os.path.isfile(fontpath + '.tlf'): cmd = ('toilet', '-d', 'pyfiglet/fonts', '-f', font, text) else: raise Exception('Missing font file: {}'.format(fontpath)) p = Popen(cmd, bufsize=4096, stdout=PIPE) try: outputFiglet = p.communicate()[0].decode('utf8') except UnicodeDecodeError as e: print("Unicode Error handling font {}".format(font)) outputFiglet = '' return outputFiglet def validate_font_output(self, font, outputFiglet, outputPyfiglet): if outputPyfiglet == outputFiglet: win('[OK] %s' % font) self.ok += 1 self.oked.append(font) return fail('[FAIL] %s' % font) self.fail += 1 self.failed.append(font) self.show_result(outputFiglet, outputPyfiglet, font) def show_result(self, outputFiglet, outputPyfiglet, font): if self.opts.show is True: print('[PYTHON] *** %s\n\n' % font) dump(outputPyfiglet) print('[FIGLET] *** %s\n\n' % font) dump(outputFiglet) raw_input() def check_font(self, text, font): if font in self.skip: return fontpath = os.path.join('pyfiglet', 'fonts', font) self.f.setFont(font=font) outputPyfiglet = self.f.renderText(text) outputFiglet = self.outputUsingFigletorToilet(text, font, fontpath) # Our TLF rendering isn't perfect, yet strict = os.path.isfile(fontpath + '.flf') if not strict: outputPyfiglet = outputPyfiglet.strip('\n') outputFiglet = outputFiglet.strip('\n') self.validate_font_output(font, outputFiglet, outputPyfiglet) def check_text(self, text): for font in self.f.getFonts(): self.check_font(text, font) def check_result(self): print('OK = %d, FAIL = %d' % (self.ok, self.fail)) if len(self.failed) > 0: print('FAILED = %s' % repr(self.failed)) return self.failed, self.oked
def show_welcome_msg(): custom_fig = Figlet(font='contrast') new_font = random.choice(custom_fig.getFonts()) custom_fig.setFont(font=new_font) print(custom_fig.renderText('caldera'))