aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2022-11-10 00:24:26 +0200
committerkaotisk <kaotisk@arching-kaos.org>2022-11-10 00:24:26 +0200
commit9eaed57b5d3f4b771660781f6ac15a7171ac2e39 (patch)
tree6ec5ce09488a8266317ced460cdfb0f62022a152 /src
parent88b8b5e68a41d1f3c6c4d548452a29941db09828 (diff)
downloadarching-kaos-web-ui-9eaed57b5d3f4b771660781f6ac15a7171ac2e39.tar.gz
arching-kaos-web-ui-9eaed57b5d3f4b771660781f6ac15a7171ac2e39.tar.bz2
arching-kaos-web-ui-9eaed57b5d3f4b771660781f6ac15a7171ac2e39.zip
After separation
Diffstat (limited to 'src')
-rw-r--r--src/index.html1034
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...";<