add flf font loading
This commit is contained in:
parent
43fd632cfc
commit
6fbb0e5648
169
src/toascii/models/flf.clj
Normal file
169
src/toascii/models/flf.clj
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
(ns toascii.models.flf
|
||||||
|
(:require [clojure.java.io :as io]
|
||||||
|
[clj-figlet.core :refer [load-flf]]
|
||||||
|
[taoensso.timbre :refer [log]]
|
||||||
|
[toascii.util :refer [get-filename-without-ext]]))
|
||||||
|
|
||||||
|
(def flf-files
|
||||||
|
["3-d.flf"
|
||||||
|
"3x5.flf"
|
||||||
|
"5lineoblique.flf"
|
||||||
|
"acrobatic.flf"
|
||||||
|
"alligator.flf"
|
||||||
|
"alligator2.flf"
|
||||||
|
"alphabet.flf"
|
||||||
|
"avatar.flf"
|
||||||
|
"banner.flf"
|
||||||
|
"banner3-D.flf"
|
||||||
|
"banner3.flf"
|
||||||
|
"banner4.flf"
|
||||||
|
"barbwire.flf"
|
||||||
|
"basic.flf"
|
||||||
|
"bell.flf"
|
||||||
|
"big.flf"
|
||||||
|
"bigchief.flf"
|
||||||
|
;"binary.flf" ; this is kind of in a weird format, clj-figlet fails to load
|
||||||
|
"block.flf"
|
||||||
|
;"bubble.flf" ; probably an issue with some "other chars" having the char-code line only having a number (no desc string)
|
||||||
|
"bulbhead.flf"
|
||||||
|
;"calgphy2.flf" ; dunno why it fails
|
||||||
|
"caligraphy.flf"
|
||||||
|
"catwalk.flf"
|
||||||
|
"chunky.flf"
|
||||||
|
"coinstak.flf"
|
||||||
|
"colossal.flf"
|
||||||
|
"computer.flf"
|
||||||
|
"contessa.flf"
|
||||||
|
"contrast.flf"
|
||||||
|
"cosmic.flf"
|
||||||
|
"cosmike.flf"
|
||||||
|
"cricket.flf"
|
||||||
|
"cursive.flf"
|
||||||
|
"cyberlarge.flf"
|
||||||
|
"cybermedium.flf"
|
||||||
|
"cybersmall.flf"
|
||||||
|
"diamond.flf"
|
||||||
|
;"digital.flf" ; likely failing due to "other char" char-code lines having only a number
|
||||||
|
"doh.flf"
|
||||||
|
"doom.flf"
|
||||||
|
"dotmatrix.flf"
|
||||||
|
;"drpepper.flf" ; "other char" char-code lines having only a number
|
||||||
|
"eftichess.flf"
|
||||||
|
;"eftifont.flf" ; "other char" char-code lines having only a number
|
||||||
|
;"eftipiti.flf" ; "other char" char-code lines having only a number
|
||||||
|
"eftirobot.flf"
|
||||||
|
;"eftitalic.flf" ; "other char" char-code lines having only a number
|
||||||
|
"eftiwall.flf"
|
||||||
|
"eftiwater.flf"
|
||||||
|
"epic.flf"
|
||||||
|
"fender.flf"
|
||||||
|
"fourtops.flf"
|
||||||
|
"fuzzy.flf"
|
||||||
|
"goofy.flf"
|
||||||
|
"gothic.flf"
|
||||||
|
"graffiti.flf"
|
||||||
|
"hollywood.flf"
|
||||||
|
"invita.flf"
|
||||||
|
"isometric1.flf"
|
||||||
|
"isometric2.flf"
|
||||||
|
"isometric3.flf"
|
||||||
|
"isometric4.flf"
|
||||||
|
"italic.flf"
|
||||||
|
"ivrit.flf"
|
||||||
|
"jazmine.flf"
|
||||||
|
"jerusalem.flf"
|
||||||
|
"katakana.flf"
|
||||||
|
"kban.flf"
|
||||||
|
"larry3d.flf"
|
||||||
|
"lcd.flf"
|
||||||
|
"lean.flf"
|
||||||
|
"letters.flf"
|
||||||
|
"linux.flf"
|
||||||
|
"lockergnome.flf"
|
||||||
|
"madrid.flf"
|
||||||
|
"marquee.flf"
|
||||||
|
"maxfour.flf"
|
||||||
|
"mike.flf"
|
||||||
|
"mini.flf"
|
||||||
|
;"mirror.flf" ; "other char" char-code lines having only a number
|
||||||
|
;"mnemonic.flf" ; regex for "other char" char-code line will fail a lot due to more then 2 spaces between code and desc string
|
||||||
|
;"morse.flf" ; "other char" char-code lines having only a number
|
||||||
|
"moscow.flf"
|
||||||
|
"nancyj-fancy.flf"
|
||||||
|
"nancyj-underlined.flf"
|
||||||
|
"nancyj.flf"
|
||||||
|
"nipples.flf"
|
||||||
|
"ntgreek.flf"
|
||||||
|
"o8.flf"
|
||||||
|
"ogre.flf"
|
||||||
|
"pawp.flf"
|
||||||
|
"peaks.flf"
|
||||||
|
"pebbles.flf"
|
||||||
|
"pepper.flf"
|
||||||
|
"poison.flf"
|
||||||
|
"puffy.flf"
|
||||||
|
;"pyramid.flf" ; "other char" char-code lines having only a number
|
||||||
|
"rectangles.flf"
|
||||||
|
"relief.flf"
|
||||||
|
"relief2.flf"
|
||||||
|
"rev.flf"
|
||||||
|
"roman.flf"
|
||||||
|
;"rot13.flf" ; "other char" char-code lines having only a number
|
||||||
|
"rounded.flf"
|
||||||
|
"rowancap.flf"
|
||||||
|
"rozzo.flf"
|
||||||
|
"runic.flf"
|
||||||
|
"runyc.flf"
|
||||||
|
"sblood.flf"
|
||||||
|
"script.flf"
|
||||||
|
"serifcap.flf"
|
||||||
|
"shadow.flf"
|
||||||
|
"short.flf"
|
||||||
|
"slant.flf"
|
||||||
|
"slide.flf"
|
||||||
|
"slscript.flf"
|
||||||
|
"small.flf"
|
||||||
|
"smisome1.flf"
|
||||||
|
"smkeyboard.flf"
|
||||||
|
"smscript.flf"
|
||||||
|
"smshadow.flf"
|
||||||
|
"smslant.flf"
|
||||||
|
"smtengwar.flf"
|
||||||
|
;"speed.flf" ; "other char" char-code lines having only a number
|
||||||
|
;"stampatello.flf" ; "other char" char-code lines having only a number
|
||||||
|
"standard.flf"
|
||||||
|
"starwars.flf"
|
||||||
|
"stellar.flf"
|
||||||
|
"stop.flf"
|
||||||
|
"straight.flf"
|
||||||
|
"tanja.flf"
|
||||||
|
"tengwar.flf"
|
||||||
|
;"term.flf" ; "other char" char-code lines having only a number
|
||||||
|
"thick.flf"
|
||||||
|
"thin.flf"
|
||||||
|
"threepoint.flf"
|
||||||
|
"ticks.flf"
|
||||||
|
"ticksslant.flf"
|
||||||
|
"tinker-toy.flf"
|
||||||
|
"tombstone.flf"
|
||||||
|
"trek.flf"
|
||||||
|
"tsalagi.flf"
|
||||||
|
"twopoint.flf"
|
||||||
|
"univers.flf"
|
||||||
|
"usaflag.flf"
|
||||||
|
"wavy.flf"
|
||||||
|
"weird.flf"])
|
||||||
|
|
||||||
|
(defonce fonts (atom {}))
|
||||||
|
|
||||||
|
(defn load-all! []
|
||||||
|
(->> flf-files
|
||||||
|
(reduce
|
||||||
|
(fn [loaded filename]
|
||||||
|
(log :info "loading flf font:" filename)
|
||||||
|
(assoc loaded (get-filename-without-ext filename) (load-flf (io/resource (str "flf/" filename)))))
|
||||||
|
{})
|
||||||
|
(reset! fonts)
|
||||||
|
(count)))
|
||||||
|
|
||||||
|
(load-all!)
|
|
@ -2,6 +2,12 @@
|
||||||
(:require [clojure.string :as str]
|
(:require [clojure.string :as str]
|
||||||
[clojure.stacktrace :refer [print-stack-trace]]))
|
[clojure.stacktrace :refer [print-stack-trace]]))
|
||||||
|
|
||||||
|
(defn get-filename-without-ext [^String filename]
|
||||||
|
(let [idx (.lastIndexOf filename ".")]
|
||||||
|
(if-not (neg? idx)
|
||||||
|
(subs filename 0 idx)
|
||||||
|
filename)))
|
||||||
|
|
||||||
(defn get-throwable-stack-trace [throwable]
|
(defn get-throwable-stack-trace [throwable]
|
||||||
(if throwable
|
(if throwable
|
||||||
(with-out-str
|
(with-out-str
|
||||||
|
|
Reference in a new issue