From 54ea45cf33a337b1d22716ccf67523d263621163 Mon Sep 17 00:00:00 2001 From: Steve Ayerhart <steve@ayerh.art> Date: Fri, 8 Sep 2023 16:24:48 -0400 Subject: [PATCH] refactor chloe --- triangle-beer-league/daysmart/daysmart.factor | 5 +++- triangle-beer-league/entities/entities.factor | 2 +- triangle-beer-league/tbl.css | 20 ++++++------- triangle-beer-league/tbl.css.map | 2 +- .../triangle-beer-league.factor | 28 ++++++++++++++++--- 5 files changed, 40 insertions(+), 17 deletions(-) diff --git a/triangle-beer-league/daysmart/daysmart.factor b/triangle-beer-league/daysmart/daysmart.factor index b4c3a66..5efdaaf 100644 --- a/triangle-beer-league/daysmart/daysmart.factor +++ b/triangle-beer-league/daysmart/daysmart.factor @@ -50,7 +50,7 @@ CONSTANT: datetime-regex "^(?<month>\\w{3}) (?<day>\\d{0,2}).{7}(?<hour>\\d{0,2} [ name>> text = ] filter [ text>> ] map [ first R/ \s*Game$/ "" re-replace ] - [ second ] [ fourth ] tri [ normalize-team-name ] bi@ schedule boa + [ second ] [ fourth ] tri [ normalize-team-name ] bi@ team-schedule boa ] { } map-as [ home>> tbl-team-name? ] filter ; @@ -134,5 +134,8 @@ CONSTANT: datetime-regex "^(?<month>\\w{3}) (?<day>\\d{0,2}).{7}(?<hour>\\d{0,2} </section> XML] ; +: tbl-games? ( -- ? ) + tbl-games empty? not ; + : render-schedule ( -- ) tbl-games [ render-day-schedule pprint-xml ] each ; diff --git a/triangle-beer-league/entities/entities.factor b/triangle-beer-league/entities/entities.factor index 263355b..9118a99 100644 --- a/triangle-beer-league/entities/entities.factor +++ b/triangle-beer-league/entities/entities.factor @@ -6,7 +6,7 @@ TUPLE: team TUPLE: team-schedule start home away ; -TUPLE: schedule +TUPLE: game-schedule start away home ; CONSTANT: teams diff --git a/triangle-beer-league/tbl.css b/triangle-beer-league/tbl.css index 0fafd01..a05a21a 100644 --- a/triangle-beer-league/tbl.css +++ b/triangle-beer-league/tbl.css @@ -147,25 +147,25 @@ main { text-transform: uppercase; display: flex; flex-direction: column; } - main.schedule .game .team-times .teams .team.maroon { + main.schedule .game .team-times .teams span.maroon { color: maroon; } - main.schedule .game .team-times .teams .team.yellow { + main.schedule .game .team-times .teams span.yellow { color: yellow; } - main.schedule .game .team-times .teams .team.black { + main.schedule .game .team-times .teams span.black { color: black; } - main.schedule .game .team-times .teams .team.white { + main.schedule .game .team-times .teams span.white { color: white; } - main.schedule .game .team-times .teams .team.red { + main.schedule .game .team-times .teams span.red { color: red; } - main.schedule .game .team-times .teams .team.blue { + main.schedule .game .team-times .teams span.blue { color: blue; } - main.schedule .game .team-times .teams .team.light-blue { + main.schedule .game .team-times .teams span.light.blue { color: lightblue; } - main.schedule .game .team-times .teams .team.orange { + main.schedule .game .team-times .teams span.orange { color: orange; } - main.schedule .game .team-times .teams .team.teal { + main.schedule .game .team-times .teams span.teal { color: teal; } - main.schedule .game .team-times .teams .team.green { + main.schedule .game .team-times .teams span.green { color: green; } #triangle { diff --git a/triangle-beer-league/tbl.css.map b/triangle-beer-league/tbl.css.map index 734dfd6..8c63326 100644 --- a/triangle-beer-league/tbl.css.map +++ b/triangle-beer-league/tbl.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "AAAA,CAAE;EACE,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;AAGd,sBAAuB;EACnB,UAAU,EAAE,UAAU;;AAG1B,iBAIC;EAHG,IAAK;IACD,SAAS,EAAE,aAAa;AAIhC,IAAK;EACD,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,WAAW,EAAE,MAAM;EACnB,gBAAgB,EAAE,OAAO;;AAG7B,MAAO;EACH,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,IAAI;EAEX,mBAAa;IACT,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,OAAO;IACxB,mBAAmB,EAAE,MAAM;IAC3B,iBAAiB,EAAE,SAAS;IAC5B,gBAAgB,EAAE,8BAA8B;IAChD,UAAU,EAAE,KAAK;IACjB,0BAAS;MACL,OAAO,EAAE,IAAI;EAKjB,eAAK;IACD,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE,IAAI;IACf,kBAAG;MACC,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,GAAG;MACZ,WAAW,EAAE,GAAG;MAChB,SAAS,EAAE,KAAK;MAChB,WAAW,EAAE,aAAa;MAC1B,cAAc,EAAE,SAAS;MAEzB,oBAAE;QACE,eAAe,EAAE,IAAI;QACrB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,KAAK;QAEd,oCAAkB;UACd,SAAS,EAAE,SAAS;UACpB,gBAAgB,EAAE,IAAI;QAG1B,4BAAU;UACN,UAAU,EAAE,OAAO;UACnB,OAAO,EAAE,EAAE;UACX,KAAK,EAAE,CAAC;UACR,QAAQ,EAAE,QAAQ;UAClB,SAAS,EAAE,SAAS;UACpB,gBAAgB,EAAE,KAAK;UACvB,UAAU,EAAE,0BAA0B;UACtC,OAAO,EAAE,EAAE;QAGf,kCAAgB;UACZ,SAAS,EAAE,SAAS;UACpB,gBAAgB,EAAE,IAAI;;AAQ9C,IAAK;EACD,OAAO,EAAE,GAAG;EACZ,SAAS,EAAE,MAAM;EACjB,YAAU;IACN,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;EAGvB,UAAM;IACF,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,QAAQ;IACxB,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG;IACd,YAAE;MACE,KAAK,EAAE,OAAO;MACd,eAAe,EAAE,IAAI;IAIrB,oBAAS;MACL,WAAW,EAAE,SAAS;IAG1B,gBAAG;MA+CC,WAAW,EAAE,aAAa;MAC1B,SAAS,EAAE,MAAM;MA/CjB,qBAAO;QACH,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,KAAK;QACjB,4BAAS;UACL,YAAY,EAAE,kBAAkB;QAGpC,4BAAS;UACL,YAAY,EAAE,kBAAkB;QAGpC,2BAAQ;UACJ,YAAY,EAAE,iBAAiB;QAGnC,2BAAQ;UACJ,YAAY,EAAE,iBAAiB;QAGnC,yBAAM;UACF,YAAY,EAAE,eAAe;QAGjC,0BAAO;UACH,YAAY,EAAE,gBAAgB;QAGlC,gCAAa;UACT,YAAY,EAAE,qBAAqB;QAGvC,4BAAS;UACL,YAAY,EAAE,kBAAkB;QAGpC,0BAAO;UACH,YAAY,EAAE,gBAAgB;QAElC,2BAAQ;UACJ,YAAY,EAAE,iBAAiB;IAY3C,uBAAG;MACC,OAAO,EAAE,MAAM;EAM3B,aAAW;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,YAAY;IAC7B,SAAS,EAAE,IAAI;IAEf,mBAAM;MACF,cAAc,EAAE,GAAG;MACnB,SAAS,EAAE,GAAG;MAEd,+BAAY;QACR,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,OAAO;QAChB,yCAAU;UACN,MAAM,EAAE,GAAG;MAGnB,+BAAY;QACR,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QAEnB,mCAAI;UACA,WAAW,EAAE,aAAa;UAC1B,SAAS,EAAE,KAAK;UAChB,KAAK,EAAE,OAAO;QAGlB,qCAAM;UACF,KAAK,EAAE,OAAO;UACd,UAAU,EAAE,KAAK;UACjB,IAAI,EAAE,CAAC;QAIX,sCAAO;UACH,WAAW,EAAE,aAAa;UAC1B,cAAc,EAAE,SAAS;UACzB,OAAO,EAAE,IAAI;UACb,cAAc,EAAE,MAAM;UAGlB,kDAAS;YACL,KAAK,EAAE,MAAM;UAGjB,kDAAS;YACL,KAAK,EAAE,MAAM;UAGjB,iDAAQ;YACJ,KAAK,EAAE,KAAK;UAGhB,iDAAQ;YACJ,KAAK,EAAE,KAAK;UAGhB,+CAAM;YACF,KAAK,EAAE,GAAG;UAGd,gDAAO;YACH,KAAK,EAAE,IAAI;UAGf,sDAAa;YACT,KAAK,EAAE,SAAS;UAGpB,kDAAS;YACL,KAAK,EAAE,MAAM;UAGjB,gDAAO;YACH,KAAK,EAAE,IAAI;UAEf,iDAAQ;YACJ,KAAK,EAAE,KAAK;;AASxC,SAAU;EACN,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,8BAA8B;EACzC,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,CAAC;EAGV,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,IAAI;EAEb,iBAAU;IACN,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,SAAS;IAC5B,eAAe,EAAE,gBAAgB;IACjC,mBAAmB,EAAE,8BAA8B;IACnD,gBAAgB,EAAE,0IAA0I;IAC5J,SAAS,EAAE,yBAAyB;EAGxC,gBAAS;IACL,gBAAgB,EAAE,8BAA8B;IAEhD,gBAAgB,EAAE,OAAO;IACzB,eAAe,EAAE,GAAG;IACpB,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,UAAU;IAC/B,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,iBAAiB;IACzB,SAAS,EAAE,OAAO", "sources": ["../../../ayerhart-design/tbl/tbl.scss"], "names": [], "file": "tbl.css" diff --git a/triangle-beer-league/triangle-beer-league.factor b/triangle-beer-league/triangle-beer-league.factor index 1faace6..07224f9 100644 --- a/triangle-beer-league/triangle-beer-league.factor +++ b/triangle-beer-league/triangle-beer-league.factor @@ -1,26 +1,46 @@ -USING: accessors namespaces ; +USING: accessors namespaces kernel sequences arrays urls present farkup ; +USING: math.parser math.text.english ; USING: io.sockets.secure io.servers ; -USING: furnace.actions furnace.boilerplate ; +USING: furnace.actions furnace.boilerplate furnace.utilities furnace.chloe-tags ; +USING: calendar calendar.english ; +USING: html.forms ; USING: http.server http.server.dispatchers http.server.static ; +USING: triangle-beer-league.daysmart ; + IN: triangle-beer-league SYMBOLS: key-password key-file dh-file ; +! DTO +TUPLE: schedule header schedules ; + TUPLE: tbl < dispatcher ; : <splash-action> ( -- action ) <page-action> { tbl "tbl" } >>template ; +: timestamp>day-header ( timestamp -- str ) + [ day-of-week day-name ] + [ month>> month-name ] + [ day>> dup number>string swap ordinal-suffix append ] tri + 3array " " join ; + +: tbl-games>schedule ( game-schedules -- schedules ) + [ [ first timestamp>day-header ] [ second ] bi schedule boa ] map ; + : <schedule-action> ( -- action ) <page-action> + [ tbl-games tbl-games>schedule "schedule" set-value ] >>init { tbl "schedule" } >>template ; : <tbl> ( -- responder ) tbl new-dispatcher - "resource:work/triangle-beer-league" <static> enable-fhtml >>default ; - + "resource:work/triangle-beer-league" <static> >>default + <schedule-action> "schedule" add-responder + <boilerplate> + { tbl "tbl-common" } >>template ; : <tbl-website-server> ( -- threaded-server ) <http-server>