1
0
mirror of https://github.com/insomniafi/extra synced 2024-10-31 20:20:40 +00:00

Initial Commit

This commit is contained in:
Christer Warén 2023-03-30 19:08:32 +03:00
commit 7974f9126d
7 changed files with 1148 additions and 0 deletions

14
.htaccess Normal file
View File

@ -0,0 +1,14 @@
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteOptions IgnoreInherit
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L,QSA]
</IfModule>

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Verkkopeliyhdistys Insomnia ry & Warén Group
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

130
assets/images/logo.svg Normal file
View File

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1482.62"
height="508.013"
viewBox="0 0 1482.62 508.013"
version="1.1"
xml:space="preserve"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
id="svg31"
sodipodi:docname="Horisontaalinen logo.svg"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
inkscape:export-filename="Horisontaalinen logo.png"
inkscape:export-xdpi="97.125359"
inkscape:export-ydpi="97.125359"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
id="defs12"><linearGradient
inkscape:collect="always"
id="linearGradient936"><stop
style="stop-color:#8c1eff;stop-opacity:1;"
offset="0"
id="stop932" /><stop
style="stop-color:#ff901f;stop-opacity:1;"
offset="1"
id="stop934" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient936"
id="linearGradient938"
x1="0.0053579998"
y1="404.07037"
x2="1482.6154"
y2="103.94262"
gradientUnits="userSpaceOnUse" /><clipPath
id="_clip1">
<path
d="M 1472,126.055 H 197.41 C 120.252,126.055 64,187.549 64,271.896 v 106.27 h 1274.59 c 77.16,0 133.41,-61.494 133.41,-145.841 z"
id="path11" />
</clipPath></defs><title
id="title1961">Insomnia XXII - Logo</title><sodipodi:namedview
id="namedview33"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="1.2181093"
inkscape:cx="837.77375"
inkscape:cy="243.41001"
inkscape:window-width="2560"
inkscape:window-height="1369"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g271" />
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Background"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path
d="m 0.23,500.02678 11.08,-11.761 83,-45.193 292,-35.807 978.945,-175 116.679,-114.436 -0.448,33.091 c -2.454,82.484 -63.79,151.293 -145.45,163.173 C 966.621,367.83778 0,507.46578 0,507.46578 Z"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;display:inline;fill:#fc901f"
id="path5" /><path
d="m 1482.39,8.24532 -11.08,11.761 -83,45.193 -292,35.807 -978.945,175 -116.6790024,114.436 0.448,-33.091 c 2.454,-82.484 63.7900004,-151.293 145.4500024,-163.173 369.415,-53.744 1336.036,-193.372 1336.036,-193.372 z"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;display:inline;fill:#8c1dfd"
id="path2" /><path
d="M 1482.6153,-6.45e-5 140.48475,236.65306 C 59.238151,250.97899 0.005358,321.57058 0.005358,404.07038 V 508.01306 L 1342.1359,271.35994 c 81.2487,-14.3263 140.4794,-84.91752 140.4794,-167.41732 z"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;display:inline;fill:url(#linearGradient938);stroke-width:1.01485;fill-opacity:1"
id="path9" /><text
xml:space="preserve"
style="font-size:66.6667px;line-height:1.25;font-family:'Bebas Neue';-inkscape-font-specification:'Bebas Neue'"
x="451.52115"
y="-108.08789"
id="text798"><tspan
sodipodi:role="line"
id="tspan796" /></text></g><g
inkscape:groupmode="layer"
id="g271"
inkscape:label="XXII"
style="clip-rule:evenodd;display:inline;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><g
id="g269"
style="clip-rule:evenodd;fill:#0a0a0a;fill-opacity:0.15;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
transform="translate(-3.3601319,0.59190589)"><path
style="fill:#0a0a0a;fill-opacity:0.15;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 107.74523,246.11126 3.56699,-1.57004 10.70144,-3.57305 16.48245,-4.07922 15.46127,-2.67039 17.30735,-2.99093 66.08392,-11.61667 68.5963,56.44317 97.32723,-85.71647 131.94103,-23.37388 -178.23199,155.86459 125.49454,99.99099 -132.74833,23.49913 -68.98485,-56.32447 -96.776,85.59209 L 52.171759,498.77986 227.51551,344.79243 Z"
id="path261" /><path
style="fill:#0a0a0a;fill-opacity:0.15;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 668.37294,143.60732 800.52055,120.3911 871.56301,178.52379 966.1541,91.118134 1097.45,67.783383 922.15275,222.02012 1045.8,323.42592 912.10326,346.95579 843.49487,291.32757 747.17699,376.25467 615.03913,399.4273 790.62742,245.19274 Z"
id="path263" /><path
style="fill:#0a0a0a;fill-opacity:0.15;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 1189.7161,51.634347 99.3248,-17.521321 -52.8227,255.713334 -99.496,17.45505 z"
id="path265" /><path
style="display:inline;fill:#0a0a0a;fill-opacity:0.15;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 1385.8201,257.43584 51.3484,-249.3865113 -98.7981,17.1219863 -52.8329,255.930945 17.5119,-3.33087 18.2057,-3.23406 22.0033,-3.89801 8.8945,-1.86424 9.0009,-2.4375 5.6766,-1.76194 5.8553,-2.11292 z"
id="path267"
sodipodi:nodetypes="cccccccccccc" /></g></g>
<metadata
id="metadata1959"><rdf:RDF><cc:Work
rdf:about=""><dc:title>Insomnia XXII - Logo</dc:title><dc:date>2022-08-18</dc:date><dc:creator><cc:Agent><dc:title>Tatu-Topias Paski</dc:title></cc:Agent></dc:creator></cc:Work></rdf:RDF></metadata><g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Insomnia"><g
aria-label="INSOMNIA"
transform="matrix(0.99237352,-0.17498282,0,1.0076851,-2.8582374,-1.945886)"
id="text23"
style="font-weight:800;font-size:205.982px;font-family:Orbitron-ExtraBold, Orbitron;fill:#fefffe;stroke-width:1.01427"><path
d="m 193.42757,455.93903 h 32.13319 V 307.63199 h -32.13319 z"
id="path314" /><path
d="M 354.50535,406.50335 271.49461,307.63199 H 238.53749 V 455.93903 H 270.4647 V 356.6557 l 83.42271,99.28333 h 32.95712 V 307.63199 h -32.33918 z"
id="path316" /><path
d="m 557.19139,338.11732 c 0,-16.89052 -13.80079,-30.48533 -30.48533,-30.48533 h -87.33637 c -16.89052,0 -30.48534,13.59481 -30.48534,30.48533 v 29.24945 c 0,16.89052 13.59482,30.48533 30.48534,30.48533 h 85.48253 v 25.95373 H 440.81156 V 411.6529 h -31.92721 v 13.80079 c 0,16.89052 13.59482,30.48534 30.48534,30.48534 h 87.33637 c 16.68454,0 30.48533,-13.59482 30.48533,-30.48534 v -29.24944 c 0,-16.89053 -13.80079,-30.48534 -30.48533,-30.48534 h -85.8945 v -25.95373 h 84.04066 v 12.15294 h 32.33917 z"
id="path318" /><path
d="m 609.30455,307.63199 c -16.89053,0 -30.48534,13.59481 -30.48534,30.48533 v 87.33637 c 0,16.89052 13.59481,30.48534 30.48534,30.48534 h 87.33636 c 16.68454,0 30.48534,-13.59482 30.48534,-30.48534 v -87.33637 c 0,-16.89052 -13.8008,-30.48533 -30.48534,-30.48533 z m 1.44187,32.13319 h 84.04065 v 84.04065 h -84.04065 z"
id="path320" /><path
d="M 833.00082,367.57275 782.74121,307.63199 H 749.78409 V 455.93903 H 781.7113 V 356.6557 l 51.28952,60.76469 c 16.47856,-19.3623 34.39899,-41.1964 51.08353,-60.97067 v 99.48931 h 32.13319 V 307.63199 h -33.1631 z"
id="path322" /><path
d="m 1056.9031,406.50335 -83.01071,-98.87136 h -32.95711 v 148.30704 h 31.9272 V 356.6557 l 83.42272,99.28333 h 32.9571 V 307.63199 h -32.3392 z"
id="path324" /><path
d="m 1112.518,455.93903 h 32.1332 V 307.63199 h -32.1332 z"
id="path326" /><path
d="m 1188.5252,307.63199 c -16.8905,0 -30.4853,13.59481 -30.4853,30.48533 v 117.82171 h 31.9272 V 408.1512 h 84.0406 v 47.78783 h 32.3392 V 338.11732 c 0,-16.89052 -13.8008,-30.48533 -30.6913,-30.48533 z m 1.4419,68.38602 v -36.25283 h 84.0406 v 36.25283 z"
id="path328" /></g></g></svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

315
assets/images/symbol.svg Normal file
View File

@ -0,0 +1,315 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="500"
height="500"
viewBox="0 0 132.29167 132.29167"
version="1.1"
id="svg8"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="Logo.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title
id="title827">Insomnia XXII  Logo</title>
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient28222">
<stop
style="stop-color:#ff901f;stop-opacity:1"
offset="0"
id="stop28218" />
<stop
style="stop-color:#8c1eff;stop-opacity:1"
offset="1"
id="stop28220" />
</linearGradient>
<linearGradient
id="linearGradient1804"
inkscape:collect="always">
<stop
id="stop1800"
offset="0"
style="stop-color:#2a7fff;stop-opacity:1" />
<stop
id="stop1802"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1954">
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0"
id="stop1950" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop1952" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient935">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop931" />
<stop
style="stop-color:#2a7fff;stop-opacity:1"
offset="1"
id="stop933" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect936"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect878"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect866"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect878-3"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect936-6"
is_visible="true" />
<inkscape:path-effect
effect="bspline"
id="path-effect3745"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-5"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-5-4"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-5-4-9"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect3745-3"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-8"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-5-6"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-5-4-0"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect6008-5-4-9-4"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<linearGradient
gradientTransform="matrix(0.70633361,0,0,0.70633361,-133.7719,-81.406271)"
inkscape:collect="always"
xlink:href="#linearGradient1954"
id="linearGradient1956-3-0-8-5"
x1="95.291199"
y1="24.393549"
x2="100.3593"
y2="17.425873"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1804"
id="linearGradient1229"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(7.7218206,0,0,7.7218206,-674.67846,-109.50997)"
x1="89.843163"
y1="28.847918"
x2="101.96973"
y2="16.672056" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1804"
id="linearGradient938"
gradientUnits="userSpaceOnUse"
x1="18.771774"
y1="106.58092"
x2="39.759052"
y2="106.58092"
gradientTransform="translate(11.069939,-75.511282)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient935"
id="linearGradient940"
x1="16.157328"
y1="106.58092"
x2="42.373501"
y2="106.58092"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(11.069939,-75.511282)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28222"
id="linearGradient1650"
x1="19.666502"
y1="20.097502"
x2="111.92828"
y2="112.35928"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0232417,0,0,1.0232417,-1.5373451,-1.5373451)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="154.50283"
inkscape:cy="247.84092"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="2560"
inkscape:window-height="1369"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:pagecheckerboard="true"
showguides="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Insomnia XXII  Logo</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Christer Warén</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:rights>
<dc:date>2021-11-23</dc:date>
<dc:publisher>
<cc:Agent>
<dc:title>Warén Group</dc:title>
</cc:Agent>
</dc:publisher>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Background"
style="display:inline">
<circle
style="fill:url(#linearGradient1650);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.07469;stroke-opacity:1;paint-order:stroke fill markers"
id="path1213"
cx="66.145836"
cy="66.145836"
r="66.145836" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Text">
<path
style="display:inline;fill:#ffffff;stroke-width:0.131854"
d="M 15.381991,66.145835 V 45.312881 h 4.812675 4.812677 v 20.832954 20.832954 h -4.812677 -4.812675 z m 12.262436,0 V 45.312881 H 49.466287 71.28815 V 66.145835 86.978789 H 66.475474 61.662798 V 70.958511 54.938233 H 49.553552 37.444309 l -0.08705,4.450077 c -0.04789,2.447542 -0.08715,9.656668 -0.08728,16.020279 l -2.06e-4,11.5702 h -4.812676 -4.812676 z m 46.544515,16.020284 v -4.812682 h 16.463846 16.463852 l 0.0838,-0.611749 c 0.0461,-0.336458 0.0839,-1.879152 0.0839,-3.428208 V 70.497022 H 90.60478 73.925232 V 57.904951 45.312881 h 21.492224 21.492224 v 4.812168 4.812165 l -16.58066,0.03348 -16.580655,0.03348 v 2.834864 2.834864 l 16.580655,0.03345 16.58066,0.03346 v 13.11898 13.118977 H 95.549311 74.18894 Z"
id="path827" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

141
datastore/schedule.json Normal file
View File

@ -0,0 +1,141 @@
[
{
"title": "Ovet aukeaa",
"area": "Insomnia XXII",
"time": {
"27.10.2022 klo 18:00": "27.10.2022 klo 18:00"
}
},
{
"title": "Info-piste",
"area": "Aula",
"time": {
"27.10.2022 klo 18:00": "28.10.2022 klo 1:00",
"28.10.2022 klo 9:00": "29.10.2022 klo 1:00",
"29.10.2022 klo 9:00": "29.10.2022 klo 1:00",
"30.10.2022 klo 9:00": "30.10.2022 klo 12:00"
}
},
{
"title": "Satamaito",
"area": "Aula",
"partner": {
"name": "Satamaito",
"link": "https://satamaito.fi"
},
"time": {
"27.10.2022 klo 18:00": "29.10.2022 klo 16:00"
}
},
{
"title": "VR-piste",
"area": "Aula",
"time": {
"27.10.2022 klo 18:00": "27.10.2022 klo 23:55",
"28.10.2022 klo 10:00": "28.10.2022 klo 21:00",
"29.10.2022 klo 10:00": "29.10.2022 klo 21:00",
"30.10.2022 klo 9:00": "30.10.2022 klo 12:00"
}
},
{
"title": "Konsolialue",
"area": "Konsolialue",
"time": {
"27.10.2022": "27.10.2022",
"28.10.2022": "28.10.2022",
"29.10.2022": "29.10.2022",
"30.10.2022": "30.10.2022"
}
},
{
"title": "Digitaalisen pelaamisen aakkoset",
"area": "Auditorio",
"partner": {
"name": "100k esports",
"link": "https://100koo.org"
},
"time": {
"27.10.2022 klo 19:00": "27.10.2022 klo 20:30"
}
},
{
"title": "Avauspuhe",
"area": "Lava",
"time": {
"27.10.2022 klo 21:00": "27.10.2022 klo 21:10"
}
},
{
"title": "Valot pois",
"area": "Sali",
"time": {
"27.10.2022 klo 21:10": "27.10.2022 klo 21:10"
}
},
{
"title": "DJ Vice Nando",
"area": "Sali",
"time": {
"27.10.2022 klo 21:10": "27.10.2022 klo 21:45"
}
},
{
"title": "Ohjaamo Pori",
"area": "Aula",
"partner": {
"name": "Ohjaamo Pori",
"link": "https://ohjaamot.fi/web/ohjaamo-pori"
},
"time": {
"28.10.2022 klo 13:00": "28.10.2022 klo 15:00"
}
},
{
"title": "Game-Info",
"area": "Game-Info",
"time": {
"28.10.2022 klo 15:00": "28.10.2022 klo 16:00",
"28.10.2022 klo 16:30": "28.10.2022 klo 18:00",
"29.10.2022 klo 8:30": "29.10.2022 klo 10:00",
"29.10.2022 klo 12:00": "29.10.2022 klo 18:00"
}
},
{
"title": "Robosota",
"area": "Nukkumatila",
"time": {
"29.10.2022 klo 13:00": "29.10.2022 klo 17:00"
}
},
{
"title": "Satakunnan Airsoft ry",
"area": "Aula",
"partner": {
"name": "Satakunnan Airsoft ry",
"link": "https://satasoft.info"
},
"time": {
"28.10.2022 klo 16:00": "28.10.2022 klo 20:00",
"29.10.2022 klo 14:00": "29.10.2022 klo 18:00"
}
},
{
"title": "Pori eSport",
"area": "Aula",
"partner": {
"name": "Pori eSport",
"link": "https://porinravit.fi/esports"
},
"time": {
"28.10.2022 klo 10:00": "28.10.2022 klo 15:30",
"29.10.2022 klo 12:00": "29.10.2022 klo 15:00"
}
},
{
"title": "Insomnia x Skynett Lan - CS:GO Ystävyysottelu",
"area": "Lava",
"time": {
"29.10.2022 klo 22:00": "29.10.2022 klo 23:59"
}
}
]

View File

@ -0,0 +1,97 @@
[
{
"title": "Call of Duty: Modern Warfare 2 (2009)",
"area": "Konsolialue",
"link": "https://challonge.com/insxxii_mw2",
"time": {
"28.10.2022 klo 16:00": "28.10.2022 klo 20:00"
}
},
{
"title": "Super Smash Bros: Ultimate",
"area": "Konsolialue",
"link": "https://challonge.com/insxxii_ssbu",
"time": {
"28.10.2022 klo 16:00": "28.10.2022 klo 20:00",
"29.10.2022 klo 20:00": "29.10.2022 klo 20:30"
}
},
{
"title": "Minecraft",
"link": "https://challonge.com/insxxii_minecraft",
"time": {
"28.10.2022 klo 18:00": "29.10.2022 klo 21:00"
}
},
{
"title": "Overwatch 2",
"link": "https://challonge.com/insxxii_overwatch2",
"partner": {
"name": "Suomi OW",
"link": "https://twitter.com/SuomiOverwatch"
},
"time": {
"28.10.2022 klo 18:30": "28.10.2022 klo 23:59"
}
},
{
"title": "Fall Guys",
"link": "https://challonge.com/insxxii_fallguys",
"time": {
"29.10.2022 klo 0:00": "29.10.2022 klo 2:00"
}
},
{
"title": "Arma 3",
"link": "https://challonge.com/insxxii_arma3",
"partner": {
"name": "Porin Seudun Reserviläisliitto ry",
"link": "https://porin-seudun-reservilaiset.reservilaisliitto.fi"
},
"time": {
"29.10.2022 klo 10:00": "29.10.2022 klo 14:00"
}
},
{
"title": "League of Legends",
"link": "https://challonge.com/insxxii_lol",
"partner": {
"name": "LOL Finland"
},
"time": {
"29.10.2022 klo 14:00": "29.10.2022 klo 16:00"
}
},
{
"title": "Beat Saber (VR)",
"link": "https://challonge.com/insxxii_bs",
"time": {
"29.10.2022 klo 14:00": "29.10.2022 klo 16:00"
}
},
{
"title": "Crash Team Racing",
"link": "https://challonge.com/insxxii_ctr",
"partner": {
"name": "100k esports",
"link": "https://100koo.org"
},
"time": {
"29.10.2022 klo 16:00": "29.10.2022 klo 18:00"
}
},
{
"title": "Rocket League",
"link": "https://challonge.com/insxxii_rl",
"time": {
"29.10.2022 klo 17:00": "29.10.2022 klo 21:30"
}
},
{
"title": "Pro Pilkki",
"link": "https://challonge.com/insxxii_pilkki",
"time": {
"30.10.2022 klo 00:00": "30.10.2022 klo 02:00"
}
}
]

430
index.php Normal file
View File

@ -0,0 +1,430 @@
<?php
function readData($name){
$file = __DIR__.'/datastore/'.$name.'.json';
if(file_exists($file)){
try {
return json_decode(file_get_contents($file), true);
} catch (\Error $e) {
}
}
return [];
}
if (!function_exists('str_contains')) {
function str_contains (string $haystack, string $needle)
{
return empty($needle) || strpos($haystack, $needle) !== false;
}
}
if(isset($_GET['date']) && $_GET['date'] != ''){
$date = $_GET['date'];
} else {
$date = date('d.m.Y');
}
?>
<!DOCTYPE html>
<html lang="fi">
<head>
<title>Insomnia XXII - Extra</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<style>
* {
box-sizing: border-box;
}
@font-face {
font-family: "Roboto Medium";
src: url('./assets/fonts/Roboto-Medium.ttf');
}
@font-face {
font-family: "Bebas Neue Regular";
src: url('./assets/fonts/BebasNeue-Regular.ttf');
}
@font-face {
font-family: "Orbitron Black";
src: url('./assets/fonts/Orbitron-Black.otf');
}
body {
background-image: linear-gradient(to bottom, #040200, #380672);
margin: 0;
display: flex;
flex-direction: column;
}
header, nav, main, section, article, footer {
display: flex;
align-items: center;
justify-content: center;
padding-top: 5vh;
flex-direction: column;
width: 100%;
text-align: center;
}
main {
display: grid;
grid-template-rows: auto;
grid-template-columns: 1fr 1fr;
align-items: flex-start;
}
section {
width: 100%;
}
section:first-child(){
padding-top: 0;
}
main header {
padding: 0;
}
*, *:active, *:focus, *:hover, *:visited, *:link {
color: #ffffff;
font-family: "Roboto Medium", sans-serif;
text-decoration: none;
}
h1 {
display: none;
}
h2, h2:active, h2:focus, h2:hover, h2:visited, h2:link {
font-family: "Orbitron Black", sans-serif;
font-size: 2.5em;
text-align: center;
}
.logo {
max-width: 75vw;
}
nav ul, main section ul {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
text-align: center;
}
nav ul li:first-child, main section ul li:first-child {
margin-left: 0vmin;
}
nav ul li, main section ul li {
margin-left: 5vmin;
}
main section ul li a {
display: flex;
align-items: center;
}
main section ul li a span {
margin-left: 1vmin;
font-size: 2em;
}
section#schedule article, section#tournaments article {
padding: 2.5vh;
}
section#schedule article:hover, section#tournaments article:hover {
background-color: #ffffff11;
}
section#schedule article h3, section#tournaments article h3 {
font-size: 1.5em;
margin-bottom: 0;
}
section#schedule article .area {
margin-top: 0;
}
section#schedule article .time, section#tournaments article .time {
font-size: 1.5em;
}
section#schedule article a, section#tournaments article a {
font-size: 1.25em;
}
.top {
font-size: 1.5em;
margin-top: 5vmin;
}
nav ul li a, nav ul li a:active, nav ul li a:focus, nav ul li a:hover, nav ul li a:visited, nav ul li a:link {
font-family: "Bebas Neue Regular", sans-serif;
font-size: 3em;
}
ul {
list-style-type: none;
padding: 0;
}
footer {
font-size: 1.5em;
text-align: center;
}
.wg-logo {
background-image: url(https://cdn.cwinfo.net/logos/warengroup/logo-light.svg);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
color: transparent;
}
.area[x-extra-area="Insomnia XXII"] {
color: #fff
}
@media (orientation: portrait) {
nav ul {
flex-direction: column;
}
nav ul li {
margin-left: 0vmin;
}
main {
display: flex;
align-items: center;
}
section#info ul {
flex-direction: column;
}
section#info ul li {
margin-top: 5vmin;
}
section#info ul li:first-child() {
margin-top: 0vmin;
}
}
</style>
<!-- Link: Preconnect & DNS Prefetch & Preload -->
<link rel="preconnect" href="//cdn.cwinfo.net">
<link rel="dns-prefetch" href="//cdn.cwinfo.net">
<link rel="preload" as="font" type="font/woff2" href="https://cdn.cwinfo.net/frameworks/font-awesome/6.3.0/webfonts/fa-solid-900.woff2" crossorigin="anonymous">
<link rel="preload" as="style" href="https://cdn.cwinfo.net/frameworks/font-awesome/6.3.0/css/all.min.css" crossorigin="anonymous">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="https://cdn.cwinfo.net/frameworks/font-awesome/6.3.0/css/all.min.css" crossorigin="anonymous" media="screen, print">
</head>
<body>
<header id="header">
<h1>Insomnia XXII</h1>
<img class="logo" title="Insomnia XXII" alt="Insomnia XXII" src="./assets/images/logo.svg">
</header>
<nav id="menu">
<ul>
<li><a href="#schedule"><i class="fa-regular fa-clock"></i> Aikataulu</a></li>
<!--<li><a href="#map"><i class="fa-solid fa-map"></i> Kartta</a></li>-->
<!--<li><a href="#streams"><i class="fa-solid fa-circle-play"></i> Striimit</a></li>-->
<li><a href="#tournaments"><i class="fa-solid fa-trophy"></i> Turnaukset</a></li>
<li><a href="#info"><i class="fa-solid fa-circle-info"></i> Info</a></li>
</ul>
</nav>
<main id="content">
<section id="schedule">
<header>
<h2><i class="fa-regular fa-clock fa-2x"></i> Aikataulu</h2>
</header>
<?php
$schedule = readData("schedule");
foreach($schedule as $program){
$time = http_build_query($program['time'],'',', ');
if(str_contains($time, $date) || $_GET['all'] == '1'){
echo '
<article>
<header>
<h3>'.$program['title'].(isset($program['partner']['name']) && $program['partner']['name'] != '' && $program['title'] != $program['partner']['name'] ? ' by '.$program['partner']['name'] : "").'</h3>
<p class="area" x-extra-area="'.$program['area'].'">'.$program['area'].'</p>
<p>
';
foreach($program['time'] as $startTime => $endTime){
$startTime = explode(" ", $startTime);
$endTime = explode(" ", $endTime);
if($startTime[0] == $date || $endTime[0] == $date || $_GET['all'] == '1'){
if($startTime[0] != $endTime[0]){
echo implode(" ", $startTime).' - '.implode(" ", $endTime).'<br>';
} else {
if(isset($startTime[2]) && isset($endTime[2])){
if($_GET['all'] == '1'){
echo $startTime[0].' klo '.$startTime[2].' - '.$endTime[2].'<br>';
} else {
echo '<span class="time">'.$startTime[2].' - '.$endTime[2].'</span>'.'<br>';
}
} else {
echo $startTime[0].'<br>';
}
}
}
}
echo '
</p>
</header>
</article>
';
}
}
?>
<a href="./?all=1#schedule" class="show-all"><i class="fa-solid fa-list-check"></i> N&auml;yt&auml; kaikki</a>
<p class="disclamer"><i class="fa-solid fa-triangle-exclamation"></i> Varaamme oikeudet muutoksiin</p>
<a href="#header" class="top"><i class="fa-solid fa-caret-up"></i> Siirry yl&ouml;s</a>
</section>
<!--<section id="map">
<header>
<h2><i class="fa-solid fa-map fa-2x"></i> Kartta</h2>
</header>
<a href="#header" class="top"><i class="fa-solid fa-caret-up"></i> Siirry yl&ouml;s</a>
</section>-->
<!--<section id="streams">
<header>
<h2><i class="fa-solid fa-circle-play fa-2x"></i> Striimit</h2>
</header>
<ul>
<li><a href="https://www.youtube.com/channel/UC2qYgQZALCwIM5G0mNMm5xg"><i class="fa-brands fa-youtube fa-5x"></i></a></li>
<li><a href="https://twitch.tv/insomniafi"><i class="fa-brands fa-twitch fa-5x"></i></a> </li>
</ul>
<a href="#header" class="top"><i class="fa-solid fa-caret-up"></i> Siirry yl&ouml;s</a>
</section>-->
<section id="tournaments">
<header>
<h2><i class="fa-solid fa-trophy fa-2x"></i> Turnaukset</h2>
</header>
<?php
$tournaments = readData("tournaments");
foreach($tournaments as $tournament){
$time = http_build_query($tournament['time'],'',', ');
if(str_contains($time, $date) || $_GET['all'] == '1'){
echo '
<article>
<header>
<h3>'.$tournament['title'].(isset($tournament['partner']['name']) && $tournament['partner']['name'] != '' ? ' by '.$tournament['partner']['name'] : "").'</h3>
<p>
';
foreach($tournament['time'] as $startTime => $endTime){
$startTime = explode(" ", $startTime);
$endTime = explode(" ", $endTime);
if($startTime[0] == $date || $endTime[0] == $date || $_GET['all'] == '1'){
if($startTime[0] != $endTime[0]){
echo implode(" ", $startTime).' - '.implode(" ", $endTime).'<br>';
} else {
if(isset($startTime[2]) && isset($endTime[2])){
if($_GET['all'] == '1'){
echo $startTime[0].' klo '.$startTime[2].' - '.$endTime[2].'<br>';
} else {
echo '<span class="time">'.$startTime[2].' - '.$endTime[2].'</span>'.'<br>';
}
} else {
echo $startTime[0].'<br>';
}
}
}
}
echo '
</p>
</header>
<a href="'.$tournament['link'].'"><i class="fa-solid fa-circle-info"></i> Lis&auml;tietoa turnauksesta</a>
</article>
';
}
}
?>
<a href="./?all=1#tournaments" class="show-all"><i class="fa-solid fa-list-check"></i> N&auml;yt&auml; kaikki</a>
<p class="disclamer"><i class="fa-solid fa-triangle-exclamation"></i> Varaamme oikeudet muutoksiin</p>
<a href="#header" class="top"><i class="fa-solid fa-caret-up"></i> Siirry yl&ouml;s</a>
</section>
<section id="info">
<header>
<h2><i class="fa-solid fa-circle-info fa-2x"></i> Info</h2>
</header>
<ul>
<li><a href="https://discord.gg/4fy7uprb85"><i class="fa-brands fa-discord fa-3x"></i> <span>#apua</span></a></li>
<li><a href="mailto:infoxxii@insomnia.fi"><i class="fa-solid fa-at fa-3x"></i> <span>infoxxii@insomnia.fi</span></a></li>
<!--<li style="<?php if(date('H') >= 1 && date('H') <= 8){ echo "opacity: 50%;"; print_r(date('H'));} ?>"><a href="tel:+358931574170"><i class="fa-solid fa-phone fa-3x"></i> <span title="+358 9 31574170 (9:00 - 1:00)">+358 9 31574170</span></a></li>-->
</ul>
<a href="#header" class="top"><i class="fa-solid fa-caret-up"></i> Siirry yl&ouml;s</a>
</section>
<section id="socials">
<header>
<h2>Seuraa meitä somessa</h2>
</header>
<ul>
<li><a href="https://instagram.com/insomnia.fi"><i class="fa-brands fa-instagram fa-5x"></i></a></li>
<li><a href="https://tiktok.com/@insomniafi"><i class="fa-brands fa-tiktok fa-5x"></i></a></li>
<li><a href="https://twitter.com/insomnia.fi"><i class="fa-brands fa-twitter fa-5x"></i></a></li>
</ul>
<a href="#header" class="top"><i class="fa-solid fa-caret-up"></i> Siirry yl&ouml;s</a>
</section>
</main>
<footer id="footer">
<p class="powered-by">
Sivun on toteuttanut<br>
<a href="https://waren.io" class="wg-logo">War&eacute;n Group</a>
</p>
</footer>
</body>
</html>