From a480e31022e43e7e823f21aaf7b9f42c3b2335c0 Mon Sep 17 00:00:00 2001 From: cajun <12363371+CajunAvenger@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:52:27 -0500 Subject: [PATCH] add giantweevil TTS exporter --- .../export-template | 73 ++++++++++++++++++ data/magic-tts.mse-export-template/icon.png | Bin 0 -> 11376 bytes 2 files changed, 73 insertions(+) create mode 100644 data/magic-tts.mse-export-template/export-template create mode 100644 data/magic-tts.mse-export-template/icon.png diff --git a/data/magic-tts.mse-export-template/export-template b/data/magic-tts.mse-export-template/export-template new file mode 100644 index 000000000..8356c6660 --- /dev/null +++ b/data/magic-tts.mse-export-template/export-template @@ -0,0 +1,73 @@ +mse version: 2.5.7 +short name: Tabletop Sim +full name: Card Exporter +position hint: 101 +icon: icon.png +version: 2025-10-10 +installer group: magic/Export/text + +depends on: magic.mse-game 2008-08-08 + +game: magic +create directory: true +file type: *.txt|*.txt|*.*|*.* + +option field: + type: choice + name: export images + choice: .jpg + choice: .png + choice: no + description: Also exports the images to a folder +option field: + type: text + name: toggle add owner + description: A Steam username to add to the card. + +# By giantweevil: https://steamcommunity.com/sharedfiles/filedetails/?id=2551006084 +script: + escape_breaks := replace@(match:"\n", replace:"\\\\n") + remove_breaks := replace@(match:"\n", replace:"") + remove_controls := replace@(match:"\r", replace:"") + remove_tabs := replace@(match:"\t", replace:"") + + replace@(match:" ", replace:"") + + replace@(match:" +", replace:" ") + remove_illegal_characters := replace@(match:"[\\/|*<>?\":]", replace:"") + convert_quote := replace@(match:"\"", replace:"''") + + sanitize := to_text + + escape_breaks + + remove_controls + + remove_tabs + + trim + clean_name := remove_tags + remove_breaks + remove_controls + remove_tabs + convert_quote + + alphabetized := sort_list( cards, order_by: {input.name} ) + if options.export_images != "no" then ( + last_name := "" + ticker := 1 + for x from 0 to length(alphabetized)-1 do ( + base_name := remove_illegal_characters(alphabetized[x].name) + if base_name == last_name + then ticker := ticker + 1 + else ticker := 1 + + last_name := base_name + if ticker > 1 then base_name := base_name + "_" + ticker + "" + + write_image_file(alphabetized[x], file: base_name+options.export_images) + ) + ) + + write_card := { + "\"" + input + "\":" + + "\{ \"Nickname\":\"" + clean_name(card.name) + + " | " + trim(remove_tags(card.type)) + + " | CMC" + card.cmc + + (if options.toggle_add_owner != "" then " | " + sanitize(options.toggle_add_owner) else "") + + "\",\"Description\":\"" + sanitize(card.rule_text) + "\"\}," + } + write_cards := for x from 0 to length(alphabetized)-1 do to_text(write_card(x, card:alphabetized[x])) + + to_string("\{" + substring(write_cards, end: length(write_cards) - 1 ) + "\}") + \ No newline at end of file diff --git a/data/magic-tts.mse-export-template/icon.png b/data/magic-tts.mse-export-template/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..85e8c22b063580a5234179460eaa78f60fdd6d5a GIT binary patch literal 11376 zcmV-$ERWNPP)n8bz^Si4iLn6coV%h&2jgLlL54 zSCHO&@6ziqbOeTuI`{v)-^}1J%peHL?th){%AKi9x$mdH?>D~p-oNTG=)M0v28NVD z{r2W#$BzBCty{N#WM*cjXJKJ6?dZ{?3)ih$W3*_&BJ*7)CKgBSY`5**yLZh0H#YJv zKG4F23x8*9Z2TX`jvf0WUH`v2Iy(O|W6BhbJ!WRp4jw$X_^7SzHgj|HhxI!^uiYm}*}`K15#RH?(n#N>}V zEG+(qtX6G{iOI+*Q>IM(YR2@LyLaziap=eq6WbGZr-<0wc6P^ut!-=y>`t7lzI6FY zo$GJEHQv2=1n);fA|ny-aZHp4n{;oB;peik(!c*jHj8%&o3ZS z%TZTX51~*9c8LBD@pYl-w&Z{GUvOwx;*leEL;uy&!k~5Q*8SUw6DR&amiy;P`ucwz zK79BGt5>fdw}1csZ!8ZVHX`dixMRl-haKB@JUo2(Xy`e6`-IC*SF&APT}!XKxCmT- zyYbT1^#*R=xr4_Z9`N@MKx9-jQc}}UP*4bdSt%+iDp6HgMOIvgmgW|`eDMOp4rxI2algV zefi|c6W+GRj>X&9+E$*mcX&qeS8(gLTl2m951v1E_Ygku^u!ZSF9e5#A|f&h31q=} zc?BpX%WZ0GLTg(qT3cHwM6}|0`*XZ}`JxlKLMa1=P}qCMWsaPjoEN|S_S^J-ia;V; zIUHh@!W|13_H7% z3*JU0)|(*mzLu8O-wh27O{}eLqR*T=m+Exw8dVO?R5{#ea&i3)H*Vd+g9ne`>Ftfs z&`=~MCLt>`3w%BwWn{gTRh2|=4H^Uuob^h~RGOzg8fzDxh4T0pb_($dqd<8 z0%&R~>uKxkw6wG;@%Ht>v)X5`bz&Ch_nVnx=JXlJ&dQP>poKjlRME0~XMOIc-bKh1d6)a`HTs76>-_Du^T@6j#al0)y z{`RyI5q2(X6#t#D8xQD1l8=dxuW)d7{>OlMfSQ`xe`{-MuQWE^6i@9u*YLRdO2a}4T5p^m1Pfwd`;CP$2rr|(w~`|TaF!oVVUUOkso~UM=f>r z1uG0!_+58#MQK@Cr;<)6(`mAXX{+&O%$qZp6JY$9G04iu=(PpP7DqybL8=Eas)r@( ztIJn!TvWsp96WgVJ9#7xdM8zomezl0s;SMIH+SAcC#S0@EG&|;5@8qf2@VXxhPCS` z3E#uG(PN-PVd&&>yEljd!X71GA%s%@@2)!N%{#vmpuWDo<zt>bz znLPdT&#yaOaY6>w{~d+0jCBg?>#)mYCtS%>Dk{pc+HfV5KOBttKg>fJ=Q+YR@`4^e zN!ZmUULV=I??IZHn%f;5E*==jLFoIcs;XnAO#0OE!i9@1v2pQu@#1Bt;M&^OMjx~Z z9*^CzZjBL2OG~*&FF2luwz>v}=?=wpXXpNFbGvfh#c6umRtOd3mzL%>;hnqp?FVjE zWYBwqNC3Tw$Wrvf5yOVsi%N|LIiCDg5DT$y$BB)_Kn%`GX`eG zcM#_Re^4K+GH21kh5l~0Z*%LbEYXhncog>R+=a@@%Gb?(QC?a`C8`N@HMO9rqJ|aA z3=k9;h?<(3jy2jhuG#yNs9)1*vxCRu*I&GN#bCe|<@NRT|D8g}j34IAeQ@LE&GwX( zR3yYFaAjv*U0shWm#V5NI9F149MLkAyb8{bu%H3OcU#FxM6_qdU z-o3wdAa^P{J$W7IfH7h3=l)J7L}+ zoA=;gi%!?CyIQ`M^g(aWIo?+rqBd&U)T!s~9USVZDp2@gD=RACaLyhV9WQW6`t2Y6 zN4lbyU`?ir%MAy%@vARH_r+%hQ7@qT$+&Sg$BrGV@(&19_(2)*qeqOyxKX2V`s7Je zS6BCaL917tSHCZep`FU=d-opPHZ?W<+uQ7TyFFMlHe6rd^uU1weAbM~OPr4$KE#AE zW4Qqw8$sw%^L6j;-F~;ofjE48d;@pv*rz&R`#4!Mrmd#7VaJZ01)g5ssH?BTjfHq^AD(WkYH*HGwc=80L zrDa{`Ce$Gp78JnB;vh_S??G8c?RNF*wf401^nNG@ zd%JB``1WE<4|;(!XB{@bg@FkL-! z8ynl&(9kgP4Cmct$Y;-VF+4oIe9xSb*(Eoq2iN;; zhr|#qC4KFoCYDxKJU{;c)YjJZuc>x3Q+rA|XU)o0m^5J`M(Pj4a6NsDrEYuX^yxT$ z%#IuM^>Ah8jgQdK@JvO!k*y^!U%CuxO3F}IRuL`k zsHk$+*?q%@4u#vTTW=nIdib%UV`3{09Xd4Roo$jHBxjeLj;5xev9WR7ox68YQBl#O zFC*;ZmuHLnY`(-u*Hl&O0_Beeb91M+nz@-5KFxS$ZfQAwz&t>*OU`iliU8;9E^@o! zw^2BMHUJFp_vfaunHiZJYHMrz-2(&yL5pQ~yX4+VBpTFp zm)sYhedf#rAeZbq742)h5kH45(y*mY(U~`*?e1*C%9b-_1^8*fLOi&CA3L^g>z zY~Q*SIkH>h`*={*_uSF(vgLaNc(7e^qbEAHV+rlP7-Ck)$QbdHa^F+}4@C`J+&}852Hu z@aWt?3NVNg@ldu)?%cU^&w_%2xeZ$Vd1R5*vT-&eQFVwC2e!Vzw!VD(^{g%eXsM}l zkF)2?dItL&7MglRdN)sH-__I8%X1)4dS?Qtjs1AEm9@2PiMO{87b5zzm1Wx;nN@d5 zwh9t3gNB0p8Q2P)@XfbLcRE6bqyL;YT=i;soC0EI+w>yeQv=g@q^V*<+zLpbInl+S=>4 zY}t~`Hfc4>o?P9>!_Z(k7k0WMUtdR;^O8@-jpr`Ah#*eXY9!Ek2YdMhv(v1k(9+nrdoGR;^qa>2~{$+z~)u%1+Z=yA_hpES`~Wyzv)q(cjkE z1~x~nsY&}-N(A+e=Z+se7Cv6yatZG(Bu8#;KHtK^YSut{z#lY*sLWoxa8ZEUojcT= z6!#^pb~#wJGeS?lQ&Lq|5?!D9#dJJ;@PLc!Y=_+myW`wR;%svlTYqNWpibdSl^Qb^ z##WLym35p_CF~awO3TXXH*MNtFkk|R7iOk^KYQ-Oo40PYCnu-$fb^dG1S=bN@7%?W z9#|-1RnF&AKEu8}rpS2ulp|v2j-6chYqV;0hX=B~s?JxhVZG5>u5{f&eE=Kaap$lJ zMFOxh_&f08W#`*c_je&)DC{^1s;a8`xzQ@4&F^kIgq(#LwIOPs%=+>xm#f#VHO0in z_In@9_KULl&)G9)aQWgT#L|06%H4Vrh@E@D1epBEB%~xKb&Bh9NtGu3#mnxWLtxd8 z?0pgsU>&xV)!{=@tPOg{`xFPguRcWm|6#3*kkP7J3;Do*?TlLHo^7AO~*--CjCK<2!r};;XQepzNV(ugi&J-+uGPviW(iD zoxWUsODoC+O(?EwL|$zJk}7HuSX6;K89ZD{DZr_Oe3*r2!#pY<7V#z6AJ2zrbRo6{ zXJU(g3e1C&;ht5DGC`xlb;)~_ci4IWchU!eoe0>_&>)v|)}^y;G3{-l9}Zz9GdrKH zzLh^ghg~d_C)3r z$t5_LRF3^|rLapZgIn%1c$d^8sH_owr2^b7tb=`KH7w~l7KFV~1vnm)4bQA1)HHS8 zH7z89S=GaGgG7LdW5;sCIu=?O;jKh8OUzC5x6E1_8X6%GG*IXga1b;$qC7bj!C!xe z#~-P{eTZ5YJkijF|Afg1{bmm0)^0%h!9ys#dL2~}k!Y`>&+qLML;^_8n0a4}{u5%F zh0}k|bGY}9ZFjte&2@D9Zl2S<4Mq>cY=7~Mcd?Gn_S@>4n7Y*~zQQat^TolKLhO$% zf>~TK_9vF(0Fii*Lj^38D>!1=?LARt2q-2ZTFE+J3Oi!9p#23h>Y8DlTG8=$=HwZB zBlB=NHV2^veAJ11jrzJe>^9lSotH3y%F%I@s6WviiYru>=A1Z%s`Lyr5a|-K<$}bh zt*S=Cj$Ls7Kp7rN>RrKv7_16+66o;zBi7>(Pw9(h6ua?d}f1}30&0j!P*du#7K-YxXk)@EZ_Y z)r`36W(1Wt;(k#bPCc#Sh-B8hpDf-ip$z*7yW`4nIJpW=S-$q zxvBZYY15|tNy;M>dqPhn`Sa@S79-5;u>7VEHhRXwlw!7o81sa3980Q3aYK8T6WOa< zp2I1-23w-}*i85(ss!sJc~~34!hKuf7PxzT0-$>X@*AI}e)+rUR zO|2x5N05LF2bf1t?zj+{hWN+c$lPm=i1D8yfQa!Y_z`@GprBFX!J`;nFAh2E7ZTaJ zb!B!gN~l=KyL%s*m#-q##tv~?w!?eaD3P_x2p|bXodh6wDr+EQ<~PW4xPa>X0xq

dDnbay= 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