!7 html { new Matches m; L artists = mechList("Randall | Artist names"); final SS artistLinks = litcimap("1st Crevolution" := "https://www.reverbnation.com/crevolution"); //mechMapCI("Randall | Artist Links"); final SS artistImages = litcimap( "1st Crevolution" := "http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1014262&contentType=image/jpeg", "Indra Afia" := "http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1014263&contentType=image/jpeg", "Midnyte Flyte Band" := "http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1014264&contentType=image/jpeg"); if (eqic(uri, "/artists")) { ret hhtml( hhead(htitle("Future Rootz Records | Artists") + headStuff()) + hbody(bodyTopStuff() + hcenter( topStuff()) + h2("Artists", style := "margin-top: 30px") + htableRaw2(map(func(fS artist) -> L { S link = or(artistLinks.get(artist), myLink("/artist/" + urlencode(artist))); S facebook = mechMapCI("Randall | Artist Facebook pages").get(artist); S twitter = mechMapCI("Randall | Artist twitter links").get(artist); SS albums = mechMap("Randall | " + artist + " | Albums"); L songs = mechList("Randall | " + artist + " | Songs"); ret ll(targetBlank(link, himg(artistImages.get(artist), width := 200)), targetBlank(link, b(htmlencode(artist))) + (nempty(facebook) ? " " + targetBlank(facebook, hsnippetimg(#1101174, width := 24, height := 24, align := "absmiddle")) : "") + (nempty(twitter) ? " " + targetBlank(twitter, hsnippetimg(#1101176, width := 24, height := 24, align := "absmiddle")) : "") + " " + targetBlank("https://www.youtube.com/channel/UCidR6RXZ6u2-bdxUh_n2cQA", hsnippetimg(#1101189, width := 24, height := 24, align := "absmiddle")) + " | " + ahref(rawSelfLink("/gallery/" + urlencode(artist)), "Photo Gallery") + " | " + ahref(rawSelfLink("/events/" + urlencode(artist)), "Events") + " | " + targetBlank("https://www.youtube.com/channel/UCidR6RXZ6u2-bdxUh_n2cQA", "TV") //+ " | " + targetBlank("https://youtu.be/ST-9ez6jk1k", "TV 2") + (empty(albums) ? "" : p("Albums") + ul_noEncode(map(func(S album, S link) -> S { htmlencode(album) + " | Album | Price: €20 | " + ahref(link, "Buy") }, albums))) + (empty(songs) ? "" : p("Songs") + ul_noEncode(map(func(S song) -> S { S link = mechMapCI("Randall | " + artist + " | Songs | YouTube").get(song); ret ahref(myLink("/song/" + urlencode(artist) + "/" + urlencode(song)), htmlencode(song)) + (nempty(link) ? " | " + ahref(link, "Preview") : ""); /*" | Format: MP3 (256kbit) | Price: 99c | " + ahref("http://futurerootsrecordings.bigcartel.com/product/1st-crevolution", "Buy")*/ }, songs))) ); }, artists), ll(style := "width: 100%"), ll(style := "background-image: url(" + snippetImageURL(#1101190) + "); background-position: center;"), ll(style := "color: white; text-shadow: 2px 2px #000000;")) , style := "background-color: white")); } if (swic(uri, "/gallery/", m)) { fS artist = urldecode(m.rest()); if (!contains(artists, artist)) ret subBot_serve404(); L ids = mL("Randall | " + artist + " | Photo IDs"); ret h1_title(htmlencode(artist)) + h3("Gallery") + lines(map(ids, func(S photoID) -> S { hsnippetimg(photoID, height := 200) })); } if (swic(uri, "/artist/", m)) { fS artist = urldecode(m.rest()); if (!contains(artists, artist)) ret subBot_serve404(); ret h1_title(htmlencode(artist)) + h3("Songs") + ul_noEncode(map(func(S song) -> S { ahref(myLink("/song/" + urlencode(artist) + "/" + urlencode(song)), htmlencode(song)) }, mechList("Randall | " + artist + " | Songs"))); } if (swic(uri, "/song/", m)) ret "Song page for " + htmlencode(urldecode(m.rest())) + soundcloudEmbed("194090074", eq("1", params.get("autoplay"))); if (eqic(uri, "/contact")) ret "Contact page"; // home page if (eq(uri, "/")) ret hhtml( hhead(htitle("Future Rootz Recordings") + headStuff()) + hbody( bodyTopStuff() + hcenter( topStuffWithCircles() + p(himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1014262&contentType=image/jpeg", width := 700)) + p(" ", style := "margin-bottom: 40px") //+ p(treeImg()) //+ [[ ]] )/*, style := "background-color: #66cc00"*/)); ret subBot_serve404(); } sS recordImg(O... params) { ret himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1014261&contentType=image/png", arrayPlus(params, width := 60, align := "absmiddle")); } sS treeImg() { ret himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1014260&contentType=image/jpeg"); } sS topStuffWithCircles() { ret hjssnippet(#1014798) + topStuff(); } sS topStuff() { ret h1( recordImg(style := "margin-right: 40px") + " " + ahref(myLink("/"), "Future Rootz Recordings", style := "color: black; text-decoration: none; background-color: white; padding-left: 1em; padding-right: 1em; border: 1px solid black") + " " + recordImg(style := "margin-left: 40px"), style := "color: #e60000; font-family: Hind Siliguri; font-weight: 700; font-size: 40px") + p(ahref(myLink("/"), "Home") + " | " + ahref(myLink("/artists"), "Artists") + " | " + ahref("/", "Booking") + " | " + ahref("/", "News")+ " | " + ahref("/", "About us") + " | " + ahref("/", "Shop") + " | " + ahref("/", "Newsletter") + " | " + ahref("/", "Impressum") + " " + hsnippetimg(#1101186, width := 24, height := 24, align := 'absmiddle)); } sS headStuff() { ret hmobilefix() + hcss("body { margin: 0; background-color: white; }") + hGoogleFont("Hind Siliguri:700"); } sS bodyTopStuff() { ret hfulltag('canvas, "", id := "canva", style := "position: fixed; top: 0; z-index: -1;") // footer + div(targetBlank("http://facebook.com/", hsnippetimg(#1101174, width := 24, align := 'absmiddle)) + " " + targetBlank("http://instagram.com/", hsnippetimg(#1101188, width := 24, height := 24, align := 'absmiddle)) + " " + targetBlank("http://twitter.com/", hsnippetimg(#1101176, width := 24, height := 24, align := 'absmiddle)), style := "position: fixed; bottom: 0; width: 100%; padding-top: 3px; padding-bottom: 3px; background: white; text-align: center; border-top: 1px solid black"); }