User:Stux/sandbox2
From Homestar Runner Wiki
(Difference between revisions)
(revert back to previous state) |
(add @ Template tests) |
||
Line 352: | Line 352: | ||
* Fortunately, we should be able to use the above logic for IF statements. ''Unfortunately'', this crazy logic may time out... | * Fortunately, we should be able to use the above logic for IF statements. ''Unfortunately'', this crazy logic may time out... | ||
- | * But wait! Turns out there is | + | * But wait! Turns out there is modulo after all: |
<pre> | <pre> | ||
{{#expr: 121%60}} <br/><!-- confirm there is no modulo symbol --> | {{#expr: 121%60}} <br/><!-- confirm there is no modulo symbol --> | ||
Line 417: | Line 417: | ||
* New template name: {{t|tally time}} | * New template name: {{t|tally time}} | ||
- | == Dangeresque Template == | + | == {{t|Dangeresque}} Template == |
---- | ---- | ||
{{clear}} | {{clear}} | ||
Line 471: | Line 471: | ||
<!-- /* Please feel free to edit this draft in order to fix the table above */ --> | <!-- /* Please feel free to edit this draft in order to fix the table above */ --> | ||
<!-- <noinclude>[[Category:Strong Bad Navigation Templates|{{PAGENAME}}]]</noinclude><includeonly>[[Category:{{{cat|Dangeresque}}}]]</includeonly> --> | <!-- <noinclude>[[Category:Strong Bad Navigation Templates|{{PAGENAME}}]]</noinclude><includeonly>[[Category:{{{cat|Dangeresque}}}]]</includeonly> --> | ||
+ | |||
+ | == {{t|@}} Template == | ||
+ | <!-- --> | ||
+ | === Examples === | ||
+ | *<code>{{@|StrongBadActual}}</code> ''returns'' {{:User:Stux/template-sandbox2|StrongBadActual}} | ||
+ | *<code>{{@|StrongBadActual|1349242412129017856|Tweet}}</code> ''returns'' {{:User:Stux/template-sandbox2|StrongBadActual|1349242412129017856|Tweet}} | ||
+ | *<code>{{@|StrongBadActual|site=Instagram}}</code> ''returns'' {{:User:Stux/template-sandbox2|StrongBadActual|site=Instagram}} | ||
+ | **This feature is incompatible with most other template parameters. | ||
+ | **On [[@strongbadactual (Instagram)]], the site defaults to Instagram. Elsewhere, it defaults to Twitter. | ||
+ | **Only [[twitter:StrongBadActual|Twitter]], [[instagram:strongbadactual|Instagram]], and [[twitch:StrongBadActual|Twitch]] are supported. | ||
+ | *<code>{{@|#|Trogday}}</code> ''returns'' {{:User:Stux/template-sandbox2|#|Trogday}} | ||
+ | *<code>{{@|#|Trogday|site=Instagram}}</code> ''returns'' {{:User:Stux/template-sandbox2|#|Trogday|site=Instagram}} | ||
+ | |||
+ | <!-- --> |
Revision as of 12:14, 9 June 2025
Contents |
Testing time
Testing Tally Templates
{{hresetcount|sample|tally=1}} * {{tally time|sample|60}} * {{tally time|sample|33}} * {{tally time|sample|72}} * {{tally time|sample|192}} * Total time: {{display time|sample|seconds}} seconds ({{display time|sample|total}} in hh:mm:ss) {{dot}} Average: {{display time|sample|average_seconds}} seconds ({{display time|sample|average}} in hh:mm:ss) for {{display time|sample|count}} entries * Compare to the original mechanism {{--}} Total time: {{#count:sample_tally|0}} seconds / {{format seconds|{{#count:sample_tally|0}}}} for {{#count:sample_count|0}} entries
- Yields:
- 1:00
- 0:33
- 1:12
- 3:12
- Total time: 357 seconds (5:57 in hh:mm:ss) · Average: 89 seconds (1:29 in hh:mm:ss) for 4 entries
- Compare to the original mechanism — Total time: 357 seconds / 5:57 for 4 entries
* {{display time|sample|seconds|offset_seconds=3}} {{--}} {{display time|sample|total|offset_seconds=3}} * {{display time|sample|seconds|offset_seconds=43}} {{--}} {{display time|sample|total|offset_seconds=43}} * {{display time|sample|seconds|offset_seconds=143}} {{--}} {{display time|sample|total|offset_seconds=143}} * Add 1 to count: {{display time|sample|count|offset_count=1}} * Remove 1 from count: {{display time|sample|count|offset_count=-1}} * {{display time|sample|average_seconds|offset_seconds=3|offset_count=1}} {{--}} {{display time|sample|average|offset_seconds=3|offset_count=1}} * {{display time|sample|average_seconds|offset_seconds=43|offset_count=1}} {{--}} {{display time|sample|average|offset_seconds=43|offset_count=1}} * {{display time|sample|average_seconds|offset_seconds=143|offset_count=1}} {{--}} {{display time|sample|average|offset_seconds=143|offset_count=1}} * {{display time|sample|average_seconds|offset_seconds=-60|offset_count=-1}} {{--}} {{display time|sample|average|offset_seconds=-60|offset_count=-1}}
- Yields:
- 360 — 6:00
- 400 — 6:40
- 500 — 8:20
- Add 1 to count: 5
- Remove 1 from count: 3
- 72 — 1:12
- 80 — 1:20
- 100 — 1:40
- 99 — 1:39
Test Display Time (Local Sandbox)
Local Sandbox Tests:
- Display Time: revision 836140 and revision 836144
- Tally Time: revision 836156
* {{:User:Stux/template-sandbox2|sample|seconds|offset_seconds=3}} {{--}} {{:User:Stux/template-sandbox2|sample|total|offset_seconds=3}} * {{:User:Stux/template-sandbox2|sample|seconds|offset_seconds=43}} {{--}} {{:User:Stux/template-sandbox2|sample|total|offset_seconds=43}} * {{:User:Stux/template-sandbox2|sample|seconds|offset_seconds=143}} {{--}} {{:User:Stux/template-sandbox2|sample|total|offset_seconds=143}} * Add 1 to count: {{:User:Stux/template-sandbox2|sample|count|offset_count=1}} * Remove 1 from count: {{:User:Stux/template-sandbox2|sample|count|offset_count=-1}} * {{:User:Stux/template-sandbox2|sample|average_seconds|offset_seconds=3|offset_count=1}} {{--}} {{:User:Stux/template-sandbox2|sample|average|offset_seconds=3|offset_count=1}} * {{:User:Stux/template-sandbox2|sample|average_seconds|offset_seconds=43|offset_count=1}} {{--}} {{:User:Stux/template-sandbox2|sample|average|offset_seconds=43|offset_count=1}} * {{:User:Stux/template-sandbox2|sample|average_seconds|offset_seconds=143|offset_count=1}} {{--}} {{:User:Stux/template-sandbox2|sample|average|offset_seconds=143|offset_count=1}} * {{:User:Stux/template-sandbox2|sample|average_seconds|offset_seconds=-60|offset_count=-1}} {{--}} {{:User:Stux/template-sandbox2|sample|average|offset_seconds=-60|offset_count=-1}} Weird coincidence: * {{:User:Stux/template-sandbox2|sample|average_seconds|offset_seconds=60|offset_count=-1}} {{--}} {{:User:Stux/template-sandbox2|sample|average|offset_seconds=-60|offset_count=-1}}
Yields (local, uncomment as needed):
Test Tally Time (Local Sandbox)
Tally Time Count Offset:
{{hresetcount|sample2|tally=1}} * {{tally time|sample2|160}} * {{tally time|sample2|133}} * {{tally time|sample2|172}} * {{tally time|sample2|292}} * Total time: {{display time|sample2|seconds}} seconds ({{display time|sample2|total}} in hh:mm:ss) {{dot}} Average: {{display time|sample2|average_seconds}} seconds ({{display time|sample2|average}} in hh:mm:ss) for {{display time|sample2|count}} entries {{hresetcount|sample_grand_total|tally=1}} * {{tally time|sample_grand_total|{{display time|sample|seconds}}|offset_count={{display time|sample|count}}}} * {{tally time|sample_grand_total|{{display time|sample2|seconds}}|offset_count={{display time|sample2|count}}}} Yields (local, uncomment as needed): <! -- * {{:User:Stux/template-sandbox2|sample_grand_total|{{display time|sample|seconds}}|offset_count={{display time|sample|count}}}} * {{:User:Stux/template-sandbox2|sample_grand_total|{{display time|sample2|seconds}}|offset_count={{display time|sample2|count}}}} --> * Grand Total time: {{display time|sample_grand_total|seconds}} seconds ({{display time|sample_grand_total|total}} in hh:mm:ss) {{dot}} Average: {{display time|sample_grand_total|average_seconds}} seconds ({{display time|sample_grand_total|average}} in hh:mm:ss) for {{display time|sample_grand_total|count}} entries
Yields:
- 2:40
- 2:13
- 2:52
- 4:52
- Total time: 757 seconds (12:37 in hh:mm:ss) · Average: 189 seconds (3:09 in hh:mm:ss) for 4 entries
- 5:57
- 12:37
Yields (local, uncomment as needed): <! --
-->
- Grand Total time: 1114 seconds (18:34 in hh:mm:ss) · Average: 139 seconds (2:19 in hh:mm:ss) for 8 entries
Testing Sort:
Yields (local, uncomment as needed): <! --
Character Videos
-->
Test Uninitialized
- Source: When editing Strong Bad Email By Length# By Era
Era | Shortest email | Longest email | Average runtime | No. of emails | Total runtime | Notes | ||||
---|---|---|---|---|---|---|---|---|---|---|
Shortest | with Easter eggs | Longest | with Easter eggs | Average | with Easter eggs | Total | with Easter eggs | |||
Tandy | sb_email 22 0:34 | i rule 0:40 | vacation 4:26 | vacation 4:26 | 0:00 | 0:00 | 0 | 0:00 | 0:00 | The postcard segments of vacation were released over several weeks. The longest Tandy era email released in one part is dullard, at 2:15. |
Compy | theme party 1:06 | your friends 1:11 | flashback 5:01 | flashback 6:05 | 0:00 | 0:00 | 0 | 0:00 | 0:00 | flashback is the 100th-anniversary email. |
Lappy | myths & legends 2:55 | specially marked 3:08 | retirement 6:53 | retirement 7:21 | 0:00 | 0:00 | 0 | 0:00 | 0:00 | retirement was initially released in two parts on different release dates. retirement B can be considered the shortest at 2:48; the longest Lappy email released in one part is alternate universe at 5:52 (6:48 including Easter eggs). |
Compé | videography 3:30 | videography 3:49 | independent 5:20 | independent 5:48 | 0:00 | 0:00 | 0 | 0:00 | 0:00 | |
Lappier | too cool 4:41 | too cool 5:13 | parenting 7:53 | parenting 10:00 | 0:00 | 0:00 | 0 | 0:00 | 0:00 | parenting's runtime beat the previous record holders by the largest margin (1:00 over retirement without easter eggs compared to retirement's 0:59 over alternate universe, 2:39 over retirement with easter eggs compared to vacation's 2:29 over 1 step ahead). |
All Emails | sb_email 22 0:34 | i rule 0:40 | parenting 7:53 | parenting 10:00 | 0:00 | 0:00 | 0 | 0:00 | 0:00 |
Local template:
* {{:User:Stux/template-sandbox2|lappier|average}} * {{:User:Stux/template-sandbox2|lappier-ee|average}} * {{:User:Stux/template-sandbox2|lappier|count}} * {{:User:Stux/template-sandbox2|lappier-ee|count}} * {{:User:Stux/template-sandbox2|lappier|total}} * {{:User:Stux/template-sandbox2|lappier-ee|total}}
Yields (local, uncomment as needed):
First Try
{{#time: z | 20071031}}
Yields: 303
- 121 seconds?
{{#time: i:s | 121}}
Yields: Error: invalid time
- So time doesn't support converting seconds to "hh:mm:ss" format, unfortunately. We gotta do it manually using Help:ParserFunctions##expr:, but now we have two more problems:
- There is no modulo operation, and we can't use "round" to easily emulate it.
- So, here goes nothing:
{{#expr: 121/60}} <br/><!-- convert 121 seconds to minutes --> {{#expr: 119/60}} <br/><!-- convert 119 seconds to minutes --> {{#expr: 121/60 round 0}} <br/><!-- round 121 seconds to minutes --> {{#expr: 119/60 round 0}} <br/><!-- round 119 seconds to minutes -->
2.0166666666667
1.9833333333333
2
2
- Fortunately, we should be able to use the above logic for IF statements. Unfortunately, this crazy logic may time out...
- But wait! Turns out there is modulo after all:
{{#expr: 121%60}} <br/><!-- confirm there is no modulo symbol --> {{#expr: 121 mod 60}} <br/><!-- confirm there is a modulo operator --> {{#expr: 119 mod 60}} <br/><!-- confirm there is a modulo operator -->
Expression error: Unrecognised punctuation character "%"
1
59
- So we can now "easily" convert seconds to hh:mm:ss:
{{#expr: (121-(121 mod 60))/60}}:{{#expr:121 mod 60}} <br/> <!-- 121 seconds to mm:ss --> {{#expr: (119-(119 mod 60))/60}}:{{#expr:119 mod 60}} <br/> <!-- 119 seconds to mm:ss -->
2:1
1:59
- Okay, so this doesn't do zero padding :-/
- For now let's do more complicated examples (with hand-coded zero-padding):
{{#ifexpr: (3601>=3600)|{{#expr: (3601-(3601 mod 3600))/3600}}:|}}{{#ifexpr: (((3601-(3601 mod 60))/60) mod 60)<10|0|}}{{#expr: ((3601-(3601 mod 60))/60) mod 60}}:{{#ifexpr: (3601 mod 60)<10|0|}}{{#expr:3601 mod 60}} <br/> <!-- 3601 seconds to hh:mm:ss --> {{#ifexpr: (3599>=3600)|{{#expr: (3599-(3599 mod 3600))/3600}}:|}}{{#ifexpr: (((3599-(3599 mod 60))/60) mod 60)<10|0|}}{{#expr: ((3599-(3599 mod 60))/60) mod 60}}:{{#ifexpr: (3599 mod 60)<10|0|}}{{#expr:3599 mod 60}} <br/> <!-- 3599 seconds to hh:mm:ss --> {{#ifexpr: (7199>=3600)|{{#expr: (7199-(7199 mod 3600))/3600}}:|}}{{#ifexpr: (((7199-(7199 mod 60))/60) mod 60)<10|0|}}{{#expr: ((7199-(7199 mod 60))/60) mod 60}}:{{#ifexpr: (7199 mod 60)<10|0|}}{{#expr:7199 mod 60}} <br/> <!-- 7199 seconds to hh:mm:ss --> {{#ifexpr: (90001>=3600)|{{#expr: (90001-(90001 mod 3600))/3600}}:|}}{{#ifexpr: (((90001-(90001 mod 60))/60) mod 60<10)|0|}}{{#expr: ((90001-(90001 mod 60))/60) mod 60}}:{{#ifexpr: (90001 mod 60)<10|0|}}{{#expr:90001 mod 60}} <br/> <!-- 90001 seconds to hh:mm:ss -->
1:00:01
59:59
1:59:59
25:00:01
- This will become a new template:
{{#ifexpr: ({{{1}}}>=3600)|{{#expr: ({{{1}}}-({{{1}}} mod 3600))/3600}}:|}}{{#ifexpr: ((({{{1}}}-({{{1}}} mod 60))/60) mod 60)<10|0|}}{{#expr: (({{{1}}}-({{{1}}} mod 60))/60) mod 60}}:{{#ifexpr: ({{{1}}} mod 60)<10|0|}}{{#expr:{{{1}}} mod 60}}
- With comments:
{{#ifexpr: ({{{1}}}>=3600)|{{#expr: ({{{1}}}-({{{1}}} mod 3600))/3600}}:|}}<!-- /* Calculate the hours and only display more than 0 hours. */ -->{{#ifexpr: ((({{{1}}}-({{{1}}} mod 60))/60) mod 60)<10|0|}}<!-- /* Calculate the minutes and pad with leading zero if less than 10. */ -->{{#expr: (({{{1}}}-({{{1}}} mod 60))/60) mod 60}}:<!-- /* Calculate the minutes. */ -->{{#ifexpr: ({{{1}}} mod 60)<10|0|}}<!-- /* Calculate the seconds and pad with leading zero if less than 10. */ -->{{#expr:{{{1}}} mod 60}}<!-- /* Calculate the seconds. */ -->
- New template name: {{format seconds}}
- Related templates: {{hcount}} and {{vcount}}
- Now let's package this up in a counter:
- Note that {{hresetcount}} should facilitate resetting the counter to 0. (It must be set to 1, increment 1.)
- Then we
{{#count:tally}}
by the number of seconds. Since it's an invisible counter, we use {{hcount}}.
{{hcount|{{{1}}}|{{{2}}}}}{{format seconds|{{{2}}}}}
- New template name: {{tally time}}
{{Dangeresque}} Template
{{@}} Template
Examples
{{@|StrongBadActual}}
returns{{@|StrongBadActual|1349242412129017856|Tweet}}
returns{{@|StrongBadActual|site=Instagram}}
returns- This feature is incompatible with most other template parameters.
- On @strongbadactual (Instagram), the site defaults to Instagram. Elsewhere, it defaults to Twitter.
- Only Twitter, Instagram, and Twitch are supported.
{{@|#|Trogday}}
returns{{@|#|Trogday|site=Instagram}}
returns