diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/index.html | 1034 |
1 files changed, 147 insertions, 887 deletions
diff --git a/src/index.html b/src/index.html index 13637fa..985ede0 100644 --- a/src/index.html +++ b/src/index.html @@ -1,892 +1,152 @@ <!DOCTYPE html> <html> -<head> - <meta charset="utf-8"> - <title>Arching Kaos</title> - <link rel="stylesheet" type="text/css" href="//ipfs.arching-kaos.com/ipfs/Qmcusex5HCKKeKAouXtUiwGoFxZzzsvcmo4dGewKBETwDv?filename=style2.css"> - <link rel="stylesheet" type="text/css" href="//ipfs.arching-kaos.com/ipfs/Qme4Lao1ffeyDtn4r9z8ZPCUPipRWJHPJig9Kh9XHw1ete?filename=style.css"> - <link rel="stylesheet" type="text/css" href="./css/akn.css"> - <style type="text/css"> - </style> - <link rel="icon" href="https://ipfs.arching-kaos.com/ipfs/QmagKP1zLWaGHLR4191dpvsCYHS8tuPCRYJgfK9Zdr6i9S?filename=logo.png" sizes="32x32"> - <link rel="icon" href="https://ipfs.arching-kaos.com/ipfs/QmagKP1zLWaGHLR4191dpvsCYHS8tuPCRYJgfK9Zdr6i9S?filename=logo.png" sizes="192x192"> - <link rel="apple-touch-icon" href="https://ipfs.arching-kaos.com/ipfs/QmagKP1zLWaGHLR4191dpvsCYHS8tuPCRYJgfK9Zdr6i9S?filename=logo.png"> - <meta name="msapplication-TileImage" content="https://ipfs.arching-kaos.com/ipfs/QmagKP1zLWaGHLR4191dpvsCYHS8tuPCRYJgfK9Zdr6i9S?filename=logo.png"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <script src="https://cdnjs.cloudflare.com/ajax/libs/stellar-freighter-api/1.1.2/index.min.js"></script> - <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> -</head> -<body> - <p class="hsm" onclick="hsm()">Hide menu</p> - <div class="sidebar"> - <div class="header"> - <img src="//ipfs.arching-kaos.com/ipfs/QmcyDhApg19qDcjdCpTFaezXrjfcUrC9MZq9wKo69trRDH"> - <h1 style="text-align: center;">Arching Kaos</h1> - </div> - <div class="options-menu" style="display:none;"> - <select> - <option value="ARCHINGKAOS">ARCHINGKAOS</option> - <option value="KAOTISKHUND" disabled>KAOTISKHUND</option> - </select> - <select> - <option value="archingkaos">ipfs.arching-kaos.com</option> - <option value="ipfsio" disabled>ipfs.io</option> - <option value="localhost" disabled>localhost</option> - </select> - </div> - <hr> - <div id="menu" class="linkin"> - <a href="#welcome-section" onclick="menusel(this)">Home</a> - <a href="#mixtapes-section" onclick="menusel(this)">Mixtapes</a> - <a href="#news-section" onclick="menusel(this)">News</a> - <a href="#files-section" onclick="menusel(this)">Files</a> - <a href="#zchain-data-section" onclick="menusel(this)">zchain</a> - <a href="#stats-section" onclick="menusel(this)">Stats</a> - <a href="#chat-section" onclick="menusel(this)">Chat</a> - <a href="#about-section" onclick="menusel(this)">About</a> - <a href="#loading-status" onclick="menusel(this)">Logs</a> - </div> -</div> -<div id="stellar-freigher-connect-address" onmouseenter="showStellar()" onmouseleave="hideStellar()"> -<button class="sub-input" id="stellar-freigher-connect-address-button" onclick="connect()" >Connect with Stellar address</button> -<div id="stellar-related-dropdown" class="linkin"> - <div id="menu"> - <span id="mypage-section-link"><a href="#mypage-section" onclick="menusel(this)">My page</a> </span> - <span id="stellar-balances-link"><a href="#stellar-balances" onclick="menusel(this)">Balances</a> </span> - <span id="stellar-data-config-link"><a href="#stellar-data-config" onclick="menusel(this)">Data</a> </span> - <span id="arching-kaos-id-link"><a href="#arching-kaos-id" onclick="menusel(this)">AKID</a> </span> - </div> -</div> -</div> -<div class="main"> - <div id="welcome-section"> - <h2>Welcome!!!</h2> - <p>This is the application page of Arching Kaos project.</p> - <p>Please wait for your web browser to find the content!</p> - <p>Loading ...</p> - <progress id="total-progress"></progress> - <pre id="logtext"></pre> - <em>* When you see "Reached genesis link..." it means that a zchain was properly loaded in the page.</em> - </div> - <div id="about-section"> - <h2>About</h2> - <p>Arching Kaos is a project about radio, music, communications and decentralization.</p> - <p>On site, you can listen to the latest mixes of music (menu entry "Mixtapes"), read latest news ("News") of the network and chat (you guessed it, "Chat" menu entry).</p> - <p>You can see the zchains appearing in "zchain" and logs of the process on "Logs"</p> - <p>Note that to participate you will need to set up your Arching Kaos set, which is not so convinient yet but possible.</p> - <p>Furthermore, if you are using Freighter extension you can additionally see:</p> - <ol> - <li>Your balances on your wallet</li> - <li>Your configuration IPNS address (if any)</li> - <li>Your Arching Kaos configuration (if any)</li> - <li>Your zchain (...)</li> - <li>Your posted newsfeed (...)</li> - </ol> - <p>Finally, on the stats page you can find people that are participating over the Stellar Network, using the ARCHINGKAOS token/asset/coin.</p> - </div> - <div id="stellar-balances"><h2>Balances</h2><em id="stellar-balances-not-found">No data found (yet?)!</em><table id="stellar-balances-table"></table></div> - <div id="stellar-data-config"><h2>Data</h2><em id="stellar-data-config-not-found">No data found (yet?)!</em></div> - <div id="arching-kaos-id"><h2>AKID</h2><em id="akid-not-found">No data found (yet?)!</em></div> - <div id="mypage-section"> - <h2>My page</h2> - <div id="my-news"><h3>My news</h3><em id="my-news-sec-not-found">No data found (yet?)!</em></div> - <div id="my-mixtapes"><h3>My mixtapes</h3><em id="my-mixtapes-sec-not-found">No data found (yet?)!</em></div> - <div id="my-zchain"><h3>My zchain</h3><em id="my-zchain-sec-not-found">No data found (yet?)!</em></div> - </div> - <div id="zchain-data-section"><h2>zchains</h2><em id="zchain-data-sec-not-found">No data found (yet?)!</em></div> - <div id="news-section"><h2>News</h2><em id="news-sec-not-found">No data found (yet?)!</em></div> - <div id="mixtapes-section"><h2>Mixtapes</h2><em id="mixtapes-sec-not-found">No data found (yet?)!</em></div> - <div id="files-section"><h2>Files</h2><em id="files-sec-not-found">No data found (yet?)!</em></div> - <div id="chat-section"><h2>Chat</h2> - <iframe src="https://irc.arching-kaos.com" style="width: -webkit-fill-available; width: -moz-available; height: 80vh;"></iframe> - </div> - <div id="stats-section"><h2>Stats</h2></div> - <div id="loading-status"><h2>Logs</h2></div> -</div> -<div class="footer"> - <hr> - Arching Kaos <a target="_blank" href="https://git.kaotisk-hund.com/arching-kaos-tools/.git">Tools</a>, <a target="_blank" href="https://arching-kaos.org">Org</a>, <a target="_blank" href="https://arching-kaos.net">Net</a> | - <a target="_blank" href="https://github.com/arching-kaos/arching-kaos-web-ui/issues/new/choose">Report an issue</a> | - Powered by <a target="_blank" href="https://www.kaotisk-hund.com">Kaotisk Hund</a>. -</div> -</body> -<script src="//cdnjs.cloudflare.com/ajax/libs/stellar-sdk/10.0.1/stellar-sdk.js"></script> -<script src="./js/app.js"></script> -<!--<script> - var progressPlaceholder = document.querySelector('#total-progress'); - var logtextPlaceholder = document.querySelector('#logtext'); - progressPlaceholder.value = '0'; - /* - * Show and hide the menu - */ - function hsm(){ - var m = document.querySelector('.sidebar'); - var t = document.querySelector('.hsm'); - var c = document.querySelector('.main'); - if (m.hidden===true){ - m.hidden=false; - t.innerHTML = "Hide menu"; - c.style.maxWidth = "100vw" - c.style.left = "27vw"; - } else { - m.hidden=true; - t.innerHTML = "Show menu"; - c.style.maxWidth = "100vw"; - c.style.left = "1vw"; - } - } - - var profilemenuids = []; - /* - * Array of all the menu-panes IDs - */ - var menuids = ['#welcome-section','#about-section','#zchain-data-section','#news-section','#stats-section','#mixtapes-section','#chat-section','#mypage-section','#stellar-balances','#stellar-data-config','#arching-kaos-id', '#loading-status', '#files-section']; - // Function to hide all the panes - function menuinit(){ - menuids.forEach(m=>document.querySelector(m).hidden=true); - } - // And call - menuinit(); - // We bring up the default pane ( #welcome-section ) - document.querySelector('#welcome-section').hidden=false; - - /* - * Function called on clicks on the menu bar - * Unhides the pane connected to the clicked menu entry - */ - function menusel(m){ - menuinit(); - document.querySelector(m.hash).hidden=false; - } - - // Here we store the participants found - var participants = []; - - // loading-status element - var lse = document.querySelector("#loading-status"); - /* - * Get Trustlines for ARCHINGKAOS asset - * Returns DOM element with number of trustlines - */ - function gettrustlines(){ - var sta = document.createElement("pre"); - sta.innerHTML = "Loading trustlines..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - var url='https://horizon.stellar.org/assets?asset_code=ARCHINGKAOS&asset_issuer=GB4QVKD6NW3CSNO5TNPARAWNPPXOPSSTKB35XCWB7PUNBIQTK3DVELB2'; - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - var stats = document.querySelector('#stats-section') - var small = document.createElement("small") - small.innerHTML = 'Connected trustlines: ' + json._embedded.records[0].accounts.authorized - stats.appendChild(small) - }) - } - sta.innerHTML+=" Done!" - logtextPlaceholder.innerHTML = sta.innerHTML; - progressPlaceholder.max++; - progressPlaceholder.value++; - }) - } - gettrustlines() - /* - * Get addresses that trust the asset - * Limit is 200 addresses cause horizon API limitations. - * - * TODO: Crawl through the pagination - * - * Returns div DOM elements for each found address, embedding - * the address both in innerHTML and in id of the div. - */ - function getholders(a=0){ - var sta = document.createElement("pre"); - sta.innerHTML = "Searching holders..." - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - var url='https://horizon.stellar.org/accounts?asset=ARCHINGKAOS:GB4QVKD6NW3CSNO5TNPARAWNPPXOPSSTKB35XCWB7PUNBIQTK3DVELB2&limit=200' - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - var stats = document.querySelector('#stats-section') - json._embedded.records.forEach(r=>{ - var p = document.createElement("div") - p.innerHTML = r.account_id - p.id = r.account_id - checkforconfig(r.account_id) - stats.appendChild(p) - }) - // if (json._links.next) getholders(json._links.next.href) - }) - } - }) - sta.innerHTML+=" Done" - logtextPlaceholder.innerHTML = sta.innerHTML; - progressPlaceholder.max++; - progressPlaceholder.value++; - } - getholders() - - /* - * Function that checks the address' variable 'config' to see - * if it's set up. - * - * Returns the IPNS link in the DOM as p element and proceeds to - * get nickname from the variables - */ - function checkforconfig(addr) { - var sta = document.createElement("pre"); - sta.innerHTML = "Checking configuration for "+ addr+ "..." - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - url='https://horizon.stellar.org/accounts/'+addr+'/data/config' - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - var cnf = document.createElement("p") - if(document.querySelector("#stellar-data-config-not-found")) document.querySelector("#stellar-data-config-not-found").hidden = true; - cnf.innerHTML = atob(json.value) - document.querySelector('#'+addr).appendChild(cnf) - document.querySelector('#'+addr).style="color: #3dbb3d;" - progressPlaceholder.max++; - progressPlaceholder.value++; - getnickname(atob(json.value),addr) - }) - } - }) - } - - /* - * Function that gets nickname and parses the config variable. - * - * Returns the key:value pairs of the configuration and proceeds - * to get the zchain - */ - function getnickname(a,eid){ - var sta = document.createElement("pre"); - sta.innerHTML = "Parsing the configuration..." - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - url='https://ipfs.arching-kaos.com/ipns/'+a - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - /* Could be json object with - * - genesis - * - gpg - * - profile { - * - nickname - * } - * - zchain - */ - var divs = document.querySelector('#'+eid) - if(json.genesis){ - var p = document.createElement("p") - p.innerHTML="Genesis: " +json.genesis - divs.appendChild(p) - } - if(json.gpg){ - var p = document.createElement("p") - p.innerHTML="GPG: " +json.gpg - divs.appendChild(p) - } - if(json.profile.nickname){ - var p = document.createElement("p") - p.innerHTML="Nickname: " +json.profile.nickname - divs.appendChild(p) - } - if(json.zchain){ - var p = document.createElement("p") - p.innerHTML="zchain: " +json.zchain - divs.appendChild(p) - } - participants[eid]=json; - progressPlaceholder.max++; - progressPlaceholder.value++; - zseek(json.zchain); - }) - } - }) - } - - /* - * We now connect our client to horizon - */ - var server = new StellarSdk.Server('https://horizon.stellar.org'); - // We ask for the 'a' stellar address the balances - function letme(a){ - server.accounts() - .accountId(a) - .call().then(function(r){ const L = r; putit(r); }); - } - // We print them - function putit(i){ - var ta=document.querySelector("#stellar-balances-table"); - readit(i); - for (b in i.balances) { - var row = document.createElement("tr"); - x = i.balances[b]; - var amount = document.createElement("td"); - var assetCode = document.createElement("td"); - amount.innerHTML = x.balance; - assetCode.innerHTML = ( x.asset_code && x.asset_code != "undefined" ? x.asset_code : 'XLM'); - row.appendChild(assetCode); - row.appendChild(amount); - ta.appendChild(row); - progressPlaceholder.max++; - progressPlaceholder.value++; - if(document.querySelector("#stellar-balances-not-found")) document.querySelector("#stellar-balances-not-found").hidden = true; - } - } - // We also search for a config file and display it - async function dataf(i){ - var sta = document.createElement("pre"); - sta.innerHTML = "Loading your profile..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - url='https://horizon.stellar.org/accounts/'+i+'/data/config' - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - var cnf = document.createElement("p"); - cnf.innerHTML = atob(json.value); - document.querySelector('#stellar-data-config').appendChild(cnf); - progressPlaceholder.max++; - progressPlaceholder.value++; - akiseek(atob(json.value)); - }) - } - }) - } - // Although we implemented something similar already, - // it seems like I was not happy so JRM - // #TODO : Revisit this - - /* - * Function to seek configuration for any address i - * it's used to seek specifically the Freighter user's address. - * - * Returns p DOM elements on #arching-kaos-id pane - */ - function akiseek(i){ - var sta = document.createElement("pre"); - sta.innerHTML = "Parsing AKID..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - url='https://ipfs.arching-kaos.com/ipns/'+i; - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - /* Could be json object with - * - genesis - * - gpg - * - profile { - * - nickname - * } - * - zchain - */ - var divs = document.querySelector('#arching-kaos-id'); - if(json.genesis){ - var p = document.createElement("p"); - p.innerHTML="Genesis: " +json.genesis; - divs.appendChild(p); - } - if(json.gpg){ - var p = document.createElement("p"); - p.innerHTML="GPG: " +json.gpg; - divs.appendChild(p); - } - if(json.profile.nickname){ - var p = document.createElement("p"); - p.innerHTML="Nickname: " +json.profile.nickname; - divs.appendChild(p); - } - if(json.zchain){ - var p = document.createElement("p"); - p.innerHTML="zchain: " +json.zchain; - divs.appendChild(p); - } - progressPlaceholder.max++; - progressPlaceholder.value++; - zseek(json.zchain,eid,json); - }) - } - }) - } - /* - * Function to seek Zblocks - * - * Returns Block and Signature for each ZBLOCK found. - * - * Proceeds to the blocks found. - */ - function zseek(i,d,j){ - var sta = document.createElement("pre"); - sta.innerHTML = "Seeking zchain "+i+"..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - var divs = document.querySelector('#zchain-data-section'); - if(i){ - var p = document.createElement("p"); - p.innerHTML="zchain: " +i; - divs.appendChild(p); - } - lse.appendChild(sta); - url = 'https://ipfs.arching-kaos.com/ipns/'+i; - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - /* Could be json object with - * - block - * - block_signature - */ - var divs = document.querySelector('#zchain-data-section'); - if(json.block){ - var p = document.createElement("p"); - p.innerHTML="Block: " +json.block; - divs.appendChild(p); - } - if(json.block_signature){ - var p = document.createElement("p"); - p.innerHTML="Signature: " +json.block_signature; - divs.appendChild(p); - } - progressPlaceholder.max++; - progressPlaceholder.value++; - seekblock(json.block,i,d,j); - }) - } - }) - } - - /* - * Seeks a block and parses it. - * - * Returns each element found in #zchain-data-section pane. - * - * Proceeds to execute the block. - */ - function seekblock(i,l,d,j){ - console.log(i,l,d,j); - var sta = document.createElement("pre"); - sta.innerHTML = "Seeking block "+i+"..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - url = 'https://ipfs.arching-kaos.com/ipfs/'+i; - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - /* Could be json object with - * - action - * - data - * - gpg - * - timestamp - * - previous - * - detach - */ - var divs = document.querySelector('#zchain-data-section'); - if(json.action){ - var p = document.createElement("p"); - p.innerHTML="Action: " +json.action; - divs.appendChild(p); - } - if(json.detach){ - var p = document.createElement("p"); - p.innerHTML="Detach: " +json.detach; - divs.appendChild(p); - } - if(json.gpg){ - var p = document.createElement("p"); - p.innerHTML="GPG: " +json.gpg; - divs.appendChild(p); - } - if(json.data){ - var p = document.createElement("p"); - var a = document.createElement("a"); - a.href = 'https://ipfs.arching-kaos.com/ipfs/'+json.data; - a.innerHTML = json.data; - p.innerHTML="Data: "; - p.appendChild(a); - divs.appendChild(p); - } - if(json.timestamp){ - var p = document.createElement("p"); - p.innerHTML="Timestamp: " +json.timestamp; - divs.appendChild(p); - } - if(json.previous){ - var p = document.createElement("p"); - p.innerHTML="Previous: " +json.previous; - divs.appendChild(p); - } - divs.appendChild(document.createElement("hr")); - progressPlaceholder.max++; - progressPlaceholder.value++; - exe(json.action,json.data,json,l,d,j); - if(json.previous!="QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH"){ - seekzblock(json.previous); - } else { - var sta = document.createElement("pre"); - sta.innerHTML = "Reached genesis link: "+json.previous+"!"; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - } - }) - } - }) - } - - // seeks a zblock obviously. another double function - // TODO: figure out why the second one exists - - /* - * Function gets ZBLOCK and parses it - * - * Returns Block and Signature elements on DOM as p - * - * Proceeds to seek the block found - */ - function seekzblock(i){ - var sta = document.createElement("pre"); - sta.innerHTML = "Seeking ZBLOCK "+i+"..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - var divs = document.querySelector('#zchain-data-section'); - if (document.querySelector("#zchain-data-sec-not-found")) document.querySelector("#zchain-data-sec-not-found").hidden=true; - if(i){ - var p = document.createElement("p"); - p.innerHTML="zblock: " +i; - divs.appendChild(p); - } - lse.appendChild(sta); - url = 'https://ipfs.arching-kaos.com/ipfs/'+i; - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - /* Could be json object with - * - block - * - block_signature - */ - var divs = document.querySelector('#zchain-data-section'); - if(json.block){ - var p = document.createElement("p"); - p.innerHTML="Block: " +json.block; - p.id=i; - divs.appendChild(p); - } - if(json.block_signature){ - var p = document.createElement("p"); - p.innerHTML="Signature: " +json.block_signature; - divs.appendChild(p); - } - progressPlaceholder.max++; - progressPlaceholder.value++; - seekblock(json.block,i); - }) - } - }) - } - - /* - * Function that executes a specified block - * - * Returns the result of execution on the proper page in DOM - */ - function exe(a,d,j,x,y,z){ - //console.log("Executing...",a,d,j,x,y,z) - var sta = document.createElement("pre"); - sta.innerHTML = "Executing block "+d+"..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - gurl = 'https://ipfs.arching-kaos.com/ipfs/' - fetch(gurl+d, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - /* Could be json object with - * - block - * - block_signature - */ - if (a == "files/add") { - var divs = document.querySelector('#files-section'); - var art = document.createElement("article"); - art.id = d; - if(json.title){ - var h3 = document.createElement("h3"); - h3.innerHTML = json.filename; - art.appendChild(h3); - } - if(json.datetime){ - var small = document.createElement("p"); - small.innerHTML="Published: " +json.datetime; - art.appendChild(small); - } - for (let i in participants){ - if ( participants[i].gpg === j.gpg ){ - if (participants[i].profile.nickname){ - var small = document.createElement("p"); - small.innerHTML="Author: " +participants[i].profile.nickname; - art.appendChild(small); - } - } - } - if(json.ipfs){ - // getipfstext(json.ipfs,art.id); - var small = document.createElement("a"); - small.innerHTML=json.filename; - small.href="https://ipfs.arching-kaos.com/ipfs/"+json.ipfs+"?filename="+json.filename; - art.appendChild(small); - } - divs.appendChild(art); - if(document.querySelector("#files-sec-not-found")) document.querySelector("#files-sec-not-found").hidden = true; - divs.appendChild(document.createElement("hr")); - } - if (a == "news/add") { - var divs = document.querySelector('#news-section'); - var art = document.createElement("article"); - art.id = d; - if(json.title){ - var h3 = document.createElement("h3"); - h3.innerHTML = json.title; - art.appendChild(h3); - } - if(json.datetime){ - var small = document.createElement("p"); - small.innerHTML="Published: " +json.datetime; - art.appendChild(small); - } - for (let i in participants){ - if ( participants[i].gpg === j.gpg ){ - if (participants[i].profile.nickname){ - var small = document.createElement("p"); - small.innerHTML="Author: " +participants[i].profile.nickname; - art.appendChild(small); - } - } - } - if(json.ipfs){ - getipfstext(json.ipfs,art.id); - } - if (document.querySelector("#news-sec-not-found")) document.querySelector("#news-sec-not-found").hidden=true; - divs.appendChild(art); - divs.appendChild(document.createElement("hr")); - } - if (a == "mixtape/add") { - var divs = document.querySelector('#mixtapes-section'); - var art = document.createElement("article"); - art.id = d; - if(json.title){ - var h3 = document.createElement("h3"); - h3.innerHTML = json.title; - art.appendChild(h3); - } - if(json.artist){ - var h4 = document.createElement("h4"); - h4.innerHTML = json.artist; - art.appendChild(h4); - } - if(json.datetime){ - var small = document.createElement("small"); - small.innerHTML="Published: " +json.datetime; - art.appendChild(small); - } - if(json.ipfs){ - var audio = document.createElement("audio"); - audio.setAttribute('controls',''); - var source = document.createElement("source"); - source.src = 'https://ipfs.arching-kaos.com/ipfs/' + json.ipfs; - audio.appendChild(source); - art.appendChild(audio); - } - if (document.querySelector("#mixtapes-sec-not-found")) document.querySelector("#mixtapes-sec-not-found").hidden=true; - divs.appendChild(art); - } - // seekblock(json.block) - progressPlaceholder.max++; - progressPlaceholder.value++; - }) - } - }) - } - - /* - * Function gets an IPFS text file and parses it - * so it can be... - * Return(ed) in a pre DOM element - */ - function getipfstext(ipfs,articleid){ - url = 'https://ipfs.arching-kaos.com/ipfs/'+ipfs; - fetch(url, { - method:'GET', - headers:{ - Accept: 'text/plain' - } - }).then(response=>{ - if(response.ok){ - response.text().then(text=>{ - var divs = document.querySelector('#'+articleid); - if(text){ - var pre = document.createElement("div"); - var lines = text.split('\n'); - // remove one line, starting at the first position - lines.splice(0,1); - // join the array back into a single string - var newtext = lines.join('\n'); - pre.innerHTML = marked.parse(newtext); - divs.appendChild(pre); - } - progressPlaceholder.max++; - progressPlaceholder.value++; - // seekblock(json.block) - }) - } - }) - } - // Whatever function XD - function readit(i){ - console.log(i); - } - - var stellar_connection_status = 0; - - // Put it there. in the field - function putKeyToField(k){ - let base = document.querySelector("#stellar-freigher-connect-address-button"); - stellar_connection_status = 1; - dataf(k); - base.innerHTML=k; - base.onclick=''; - } - - function showStellar(){ - if (stellar_connection_status === 1 ){ - document.querySelector("#stellar-balances-link").hidden=false; - document.querySelector("#stellar-data-config-link").hidden=false; - document.querySelector("#arching-kaos-id-link").hidden=false; - document.querySelector("#mypage-section-link").hidden=false; - } - } - - // Hide stellar stuff if no freighter - if (!window.freighterApi.isConnected()) { - document.querySelector("#stellar-freigher-connect-address-button").hidden=true; - } - - function hideStellar(){ - document.querySelector("#stellar-balances-link").hidden=true; - document.querySelector("#stellar-data-config-link").hidden=true; - document.querySelector("#arching-kaos-id-link").hidden=true; - document.querySelector("#mypage-section-link").hidden=true; - } - - hideStellar(); - - // That's how we get the publicKey - const retrievePublicKey = async () => { - let publicKey = ""; - let error = ""; - - try { - publicKey = await window.freighterApi.getPublicKey() - .then(publicKey => {putKeyToField(publicKey);letme(publicKey)}); - } catch (e) { - error = e; - } - if (error) { - return error; - } - return publicKey; - }; - - // Function that initiates the connection with the Wallet ( we just read ) - function connect(){ - console.log("When pressed: "+stellar_connection_status); - if ( stellar_connection_status === 1 ){ - showStellar(); - } else { - const result = retrievePublicKey(); - } - console.log("After "+stellar_connection_status); - } - - var localnode = "https://aka.arching-kaos.net:8610/v0/zlatest"; - - /* - * Get latest block from localnode - * If any, adds its contents to the page - */ - function ringlocalbell(){ - var sta = document.createElement("pre"); - sta.innerHTML = "Ringing local bell..."; - logtextPlaceholder.innerHTML = sta.innerHTML; - lse.appendChild(sta); - var url=localnode; - fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' - } - }).then(response=>{ - if(response.ok){ - response.json().then(json=>{ - seekzblock(json.zlatest); - }) - } - sta.innerHTML+=" Done!"; - }) - } - - ringlocalbell(); - - -</script>--> + <head> + <meta charset="utf-8"> + < |