diff --git a/public/arrow.png b/public/arrow.png new file mode 100644 index 0000000..100db58 Binary files /dev/null and b/public/arrow.png differ diff --git a/public/arrow.svg b/public/arrow.svg new file mode 100644 index 0000000..3f00c8b --- /dev/null +++ b/public/arrow.svg @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/public/default.css b/public/default.css index cb86cbd..e605a39 100644 --- a/public/default.css +++ b/public/default.css @@ -15,6 +15,18 @@ body { font-size: 15px; line-height: 1.4; font-family: 'Noto Sans KR', sans-serif; + scrollbar-width: none; + -ms-overflow-style: none; +} + +body::-webkit-scrollbar { + display: none; +} + +#top { + position: absolute; + top: 0; + left: 0; } .bg { @@ -30,6 +42,14 @@ body { z-index: -1; // this is optional } +.arrow { + position: absolute; + left: 50%; + transform: translateX(-50%); + width: 30px; + padding-top: 30px; +} + #krtitle { position: absolute; top: 20%; @@ -68,6 +88,12 @@ body { height: 100%; } +#parade { + position: relative; + width: 100%; + height: 100%; +} + .entry { position: relative; width: 100%; @@ -82,20 +108,28 @@ body { writing-mode: vertical-lr; } +.sticky { + position: -webkit-sticky; + position: sticky; + top: 20px; + text-align: end; + z-index: 99; +} + .first { - position: absolute; - top: 20px; - right: 18px; + display: inline-block; + width: 10px; z-index: 2; writing-mode: vertical-lr; + vertical-align: top; } .second { - position: absolute; - top: 20px; - right: 40px; + display: inline-block; + width: 10px; z-index: 2; writing-mode: vertical-lr; + padding-left: 10px; } .third { @@ -127,6 +161,7 @@ audio { bottom: 15px; right: 20px; } */ + .list-sub { position: fixed; top: 36px; @@ -387,12 +422,17 @@ button { top: 50%; left: 50%; transform: translate(-50%, -65%); - /* height: 600px; */ + height: 350px; writing-mode: vertical-lr; + cursor: pointer; } @media screen and (max-width: 700px) { + .sticky { + padding-right: 10px; + } + #krtitle { position: absolute; top: 20%; diff --git a/public/thumbnail.jpg b/public/thumbnail.jpg new file mode 100644 index 0000000..2f9009e Binary files /dev/null and b/public/thumbnail.jpg differ diff --git a/server.js b/server.js index 3cd692c..e88e84c 100644 --- a/server.js +++ b/server.js @@ -54,9 +54,16 @@ var io = require("socket.io")(fastify.server, { //get '/' fastify.get("/", async function (request, reply) { - //console.log(request.url); - let url = request.url.replace(/\/$/, ''); + reply.view("/src/pages/parade.html", {}); +}); +//get '/en/' +fastify.get("/en/", async function (request, reply) { + reply.view("/src/pages/parade.en.html", {}); +}); + +//get '/list' +fastify.get("/list", async function (request, reply) { //get list let list = await fs.readdir('/media/storage/public/sound-parade/'); list.reverse(); @@ -83,9 +90,16 @@ fastify.get("/", async function (request, reply) { // console.log(folders); // - reply.view("/src/pages/parade.html", { - list: folders, - }); + reply.send(folders); +}); + +//get '/uploads/:foldername/:filename' +fastify.get("/uploads/:foldername/:filename", async function (request, reply) { + + //get file & send + var file = await fs.readFile('/media/storage/public/sound-parade/' + request.params.foldername + '/' + request.params.filename); + + reply.send(file); }); //get '/live @@ -98,58 +112,6 @@ fastify.get("/preview/:foldername", function (request, reply) { reply.view("/src/pages/preview.html", {}); }); -//get '/entry', '/entry/', '/en/entry', '/en/entry/', '/entry/test' -["/entry", "/entry/", "/en/entry", "/en/entry/", "/entry/test"].forEach(function(item) { - fastify.get(item, async function (request, reply) { - - //console.log(request.url); - let url = request.url.replace(/\/$/, ''); - - //get list - let list = await fs.readdir('/media/storage/public/sound-parade/'); - list.reverse(); - - // console.log(list); - - let folders = []; - for (const item of list) { - let json = await fs.readFile('/media/storage/public/sound-parade/' + item + '/fields.json') - .catch((err) => { - console.error(err); - }); - if (json != undefined) { - var fields = JSON.parse(json.toString('utf8')); - folders.push({ - foldername: item, - group: fields.group, - title: fields.title, - comment: fields.comment, - }); - } - } - - // console.log(folders); - - // - if (url == "/entry") { - reply.view("/src/pages/entry.html", { - list: folders, - }); - } else if (url == "/en/entry") { - reply.view("/src/pages/entry.en.html", { - list: folders, - }); - } else if (url == "/entry/test") { - reply.view("/src/pages/entry.test.html", { - list: folders, - }); - } - - }); -}); -// --> https://stackoverflow.com/a/40899275 -// all the regex didn't work for me -- a 'last resort' method - //get '/entries' fastify.get("/entries", async function (request, reply) { @@ -214,8 +176,10 @@ fastify.get("/delete/:foldername/:pass", async function (request, reply) { reply.send({ result: res }); }); -//post on '/entry' -fastify.post("/entry", async function (request, reply) { +//post on '/' +fastify.post("/", async function (request, reply) { + + console.log("-- h.."); // got the event. // stores files to tmp dir and return paths const files = await request.saveRequestFiles().catch(err => { diff --git a/src/pages/entry.en.html b/src/pages/entry.en.html index ba7ebb6..f3ca6cb 100644 --- a/src/pages/entry.en.html +++ b/src/pages/entry.en.html @@ -3,7 +3,7 @@ - Walking Towards the Flow | entry + Walking towards the Flow | entry + + + + + + + + + +
+
+
+
+
+
+ + +
+
+

Introduction

+

+ «Walking towards the Flow» is a sound parade that creates a procession of sounds in the online space. Anyone can participate. This parade is made by collecting the sounds you sent. +

+

+ The path of sound flows like the Milky Way through which the stars circulate, always there, whether you are listening to it or not. +

+

+ The permanence of this eternal parade gives us final consolation. Sometimes we think that we are space debris in infinite orbit, but The moment it is observed, it is no longer loneliness or forgotten, but remembered. +

+

+ «Walking towards the Flow» will perform offline on November 27 (Sun). In the performance, the sounds gathered on the website can be heard in the physical space, and audiences can walk and stop together to hear the voices of those who empathize with the flow. +

+

+ We look forward to your interest and participation in the online recruitment and offline performances.
+

+
+
+

+ Recruiting sounds
+ November 13, 2022 (Sun) – November 26, 2022 (Sat) +

+

+ Live performance
+ November 27th, 2022 (Sunday) 16:00 +

+

+ Performance Place
+ Seoul Museum of Art Seosomun Main Branch 1st floor Lobby, 2nd floor Learning Station, Rooftop Garden +

+

+ Parade Composition
+ Flock0 promises — Flock1 flags — Flock2 bodies — Flock3 objects — Flock4 someone +

+

+ Performance Reservation
+ https://zrr.kr/aHTS +

+

+ Artists
+ diana band × Choong-geun Yoon +

+

+ (Inquiry: wonjung24@gmail.com) +

+
+
+
+

How to participate

+
    +
  1. 1. Record the sound for about 30 seconds with a recording device or phone according to the characteristics of the flock. +
      +
    1. • Flock1 flags — Speak out five times about what you like or value.
    2. +
    3. • Flock2 bodies — Record the sound of your body. Applause and whistling.
    4. +
    5. • Flock3 objects — Find the sound of things around you. Bubble wrap sound, Beads sound.
    6. +
    7. • Flock4 someone — Collect the sound of others. animal, sound of water, place to take a walk.
    8. +
    +
  2. +
  3. 2. Upload the recorded sound file.
  4. +
  5. 3. After filling out the title and description of the sound, draw the shape of the sound and submit it.
  6. +
  7. * If you upload a sound source that contains hate speech, it will be deleted.
  8. +
+
+
+

Sound Submission

+
+
    +
  • +

    1. Sound Type

    +
      +
    • + Flock1 flags +
    • +
    • + Flock2 bodies +
    • +
    • + Flock3 objects +
    • +
    • + Flock4 someone +
    • +
    +
  • +
  • +

    2. Sound File

    + +
  • +
  • +

    3. Title

    + +
  • +
  • +

    4. Description of the sound

    + +
  • + +
  • +

    5. Draw an image of the sound

    +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    + +
  • +
  • +

    6. Passward

    + + Passward is 2-digit numbers. It's required if you delete it. +
  • +
  • + + +
  • +
+

+ ↓  +

+
+
+ + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/src/pages/parade.html b/src/pages/parade.html index b92d42f..fcc2f3b 100644 --- a/src/pages/parade.html +++ b/src/pages/parade.html @@ -3,8 +3,10 @@ - - 흐름을 향하여 걷는 + + 흐름을 향하여 걷는 Walking towards the Flow + + + + + + + + + + + +
+
+
+
+
+ +
+

소개

+

+ «흐름을 향하여 걷는»은 온라인 공간에서 열리는 사운드 퍼레이드입니다. 이 소리의 행렬은 여러분이 보내주시는 소리가 모여 만들어지며, 누구나 참여하실 수 있습니다. +

+

+ 소리가 흐르는 길은 별들이 순회하는 저 은하수와 같이, 언제나 그 자리에 있으면서 여러분이 소리를 듣고 있든 그렇지 않든 흐르고 있습니다. +

+

+ 이 영원한 퍼레이드의 영속성은 우리에게 최후의 안도를 줍니다. 때로는 자신이 위성궤도를 무한히 돌고 있는 우주 부스러기라는 생각이 들다가도, 그것이 관측되는 순간 더는 외로움이나 잊혀짐이 아니라 기억됨이 됩니다. +

+

+ «흐름을 향하여 걷는»은 오프라인 공연으로 함께 하실 수도 있습니다. 11월 27일(일) 진행하는 공연에서는 웹사이트에 모인 소리들이 물리적 공간에 펼쳐지고, 관객은 함께 걷고 멈추며 흐름에 공감해주신 분들의 소리를 듣습니다. +

+

+ 온라인으로 진행하는 소리 모집과 오프라인 공연에 많은 관심과 참여 바랍니다.
+

+
+
+

+ 소리 모집
+ 2022년 11월 13일(일)–26일(토) +

+

+ 공연 일정
+ 2022년 11월 27일(일), 16:00 +

+

+ 공연 장소
+ 서울시립미술관 서소문본관 1층 로비, 2층 러닝스테이션, 옥상정원 +

+

+ 공연 구성
+ 무리0 약속들 — 무리1 깃발들 — 무리2 신체들 — 무리3 사물들 — 무리4 누구들 +

+

+ 작가
+ 다이애나밴드 × 윤충근 +

+

+ 문의
wonjung24@gmail.com +

+
+
+
+

참여 방법

+
    +
  1. 1. 무리의 특성에 따라 녹음기기나 핸드폰으로 30초 가량의 소리를 녹음해주세요. +
      +
    1. • 무리1 깃발들 — 좋아하는 것, 가치에 대해 다섯 번 외쳐주세요.
    2. +
    3. • 무리2 신체들 — 몸에서 나는 소리를 녹음해 보아요. 박수, 휘파람도 좋아요.
    4. +
    5. • 무리3 사물들 — 주변 사물들의 소리를 찾아 주세요. 뽁뽁이 소리, 구슬 소리
    6. +
    7. • 무리4 누구들 — 누구의 소리를 모아주세요. 반려동물, 물 소리, 산책의 장소
    8. +
    +
  2. +
  3. 2. 녹음한 소리 파일을 업로드해주세요.
  4. +
  5. 3. 소리의 제목과 묘사을 입력한 뒤, 소리의 모양을 그려 제출해주세요.
  6. +
  7. * 혐오 표현이 포함된 음원을 업로드하시면 삭제됩니다.
  8. +
+
+
+

소리 제출

+
+
    +
  • +

    1. 소리 유형

    +
      +
    • + 무리1 깃발들 +
    • +
    • + 무리2 신체들 +
    • +
    • + 무리3 사물들 +
    • +
    • + 무리4 누구들 +
    • +
    +
  • +
  • +

    2. 소리 파일

    + +
  • +
  • +

    3. 소리 제목

    + +
  • +
  • +

    4. 소리 묘사

    + +
  • + +
  • +

    5. 소리 모양

    +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    + +
  • +
  • +

    6. 비밀 번호

    + + 두 자리 숫자를 입력해주세요. 업로드한 소리를 삭제할 때 쓰입니다. +
  • +
  • + +
  • +
+

+ ↓  +

+
+
+
+

소리 목록

+

제출해주신 소리는 아래 목록에 시간순으로 쌓입니다. 각각의 모양을 클릭하면, 모양에 해당하는 소리를 듣고 소리에 대한 정보를 확인할 수 있습니다.

+ {{#each list}} +
+
+ + +
    +
    +
  • 유형 |
    {{this.group}}
    +
  • +
    +
  • 제목 |
    {{this.title}}
    +
  • +
    +
  • 묘사 |
    {{this.comment}}
    +
  • +
    +
+ + +
+
+ {{/each}} +
+
+
+ + + + + \ No newline at end of file diff --git a/src/pages/preview.html b/src/pages/preview.html index 669ec1f..a1e9e24 100644 --- a/src/pages/preview.html +++ b/src/pages/preview.html @@ -213,8 +213,8 @@ var object = { "id": 1, "type": "abc", - "src": "https://p.dianaband.info/public/sound-parade/" + list[post] + "/pixels.png", - "audio": "https://p.dianaband.info/public/sound-parade/" + list[post] + "/audio.mp3", + "src": "/uploads/" + list[post] + "/pixels.png", + "audio": "/uploads/" + list[post] + "/audio.mp3", "alt": "알트", "size": { "base": 40,