aboutsummaryrefslogtreecommitdiff
path: root/src/js/arching-kaos-tools.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/arching-kaos-tools.js')
-rw-r--r--src/js/arching-kaos-tools.js572
1 files changed, 374 insertions, 198 deletions
diff --git a/src/js/arching-kaos-tools.js b/src/js/arching-kaos-tools.js
index 0f62fd5..c8ebfb9 100644
--- a/src/js/arching-kaos-tools.js
+++ b/src/js/arching-kaos-tools.js
@@ -1,44 +1,81 @@
-/* Arching Kaos Tools
- *
- * Kaotisk Hund - 2024
- *
- * @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
- *
- */
-function getArrayLength(array){
- var length = 0;
- for ( e in array ) {
- length++;
- }
- return length;
-}
-
-function showResult(id){
+// Arching Kaos Tools
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { archingKaosLog } from "./arching-kaos-log.js";
+import { makeElement } from "./arching-kaos-generator.js";
+import { progressPlaceholder, resultsArea, aknet } from "./app.js";
+import { archingKaosFetchJSON } from "./arching-kaos-fetch.js";
+import { getIPFSURL, getIPNSURL } from "./url-generators.js";
+import {
+ stellarParticipantInfo,
+ getStellarParticipantsScanned,
+ getStellarNetworkConfiguredAddresses,
+ setFullZblock,
+ setZblock,
+ setData,
+ getParticipants,
+ setZchainLoadingStatus,
+ getZchainLoadingStatuses,
+ setSortedMixtapes,
+ getMixtapes,
+ increaseZchainsFound,
+ setZchain
+} from "./environment-setup.js";
+import { akModuleComments } from "./arching-kaos-modules-comments.js";
+import { akModuleFiles } from "./arching-kaos-modules-files.js";
+import { akModuleMixtapes } from "./arching-kaos-modules-mixtapes.js";
+import { akModuleNews } from "./arching-kaos-modules-news.js";
+import { akModuleMarkdown } from "./arching-kaos-modules-markdown.js";
+import { storeReference, resolveReferences } from "./arching-kaos-modules-references.js";
+import { getSettings } from "./arching-kaos-web-ui-settings.js";
+import { debugLog } from "./utils.js";
+
+var settings = getSettings();
+
+export function showResult(id)
+{
const found = document.querySelector(`#${id}`).cloneNode(true);
- const overlay = document.createElement('div');
- overlay.id = 'unique-overlay';
const title = {
element:'h3',
innerText : "Result"
};
- makeElement(title, overlay);
var closeButton = {
element:'button',
innerHTML: 'x',
id:"buttonCloseResult"
};
- makeElement(closeButton, overlay);
- makeElement(found, overlay);
- makeElement(overlay, resultsArea);
+ var resultsHeader = {
+ element: 'div',
+ id: 'results-header',
+ innerHTML:[
+ title,
+ closeButton
+ ]
+ };
+ const overlay = {
+ element:'div',
+ id:'unique-overlay',
+ innerHTML:[
+ resultsHeader
+ ]
+ };
+ makeElement(overlay, resultsArea());
+ document.querySelector('#unique-overlay').appendChild(found);
closeButton = document.querySelector('#buttonCloseResult');
closeButton.addEventListener("click", ()=>{
document.querySelector('#unique-overlay').remove();
});
}
-function renderStellarAddressPlaceholder(stellarAddress){
+function renderStellarAddressPlaceholder(stellarAddress)
+{
var divs = document.querySelector('#'+stellarAddress);
- if ( divs === null ){
+ if ( divs === null )
+ {
var details = document.createElement('details');
details.id = '#'+stellarAddress;
var summary = document.createElement('summary');
@@ -50,42 +87,77 @@ function renderStellarAddressPlaceholder(stellarAddress){
return divs;
}
-function nodeInfoRender(json, stellarAddress){
+function nodeInfoRender(json, stellarAddress, parentTag=null)
+{
var divs = renderStellarAddressPlaceholder(stellarAddress);
- for( key in Object.keys(json) ){
- if ( typeof(json[Object.keys(json)[key]]) === "string" ) {
- if(!document.querySelector('#'+Object.keys(json)[key]+'-'+stellarAddress)){
- var p = document.createElement("p");
- p.id = Object.keys(json)[key]+'-'+stellarAddress;
- p.innerText = Object.keys(json)[key] + ": " +json[Object.keys(json)[key]];
- divs.appendChild(p);
+ const keys = Object.keys(json);
+ if ( parentTag === null )
+ {
+ debugLog(json);
+ for( var i = 0; i < keys.length; i++ )
+ {
+ if ( typeof(json[keys[i]]) === "string" )
+ {
+ if(!document.querySelector('#'+keys[i]+'-'+stellarAddress))
+ {
+ var p = {
+ element:"p",
+ id: `${keys[i]}-${stellarAddress}`,
+ innerText: `${keys[i]}: ${json[keys[i]]}`
+ };
+ makeElement(p, divs);
+ }
+ }
+ else if ( typeof(json[keys[i]]) === "Object"||"Array" )
+ {
+ nodeInfoRender(json[keys[i]], stellarAddress, keys[i]);
}
}
- else if ( typeof(json[Object.keys(json)[key]]) === "Object"||"Array" ) {
- nodeInfoRender(json[Object.keys(json)[key]], stellarAddress);
+ }
+ else if ( typeof(parentTag) === "string" )
+ {
+ for( var i = 0; i < keys.length; i++ )
+ {
+ if ( typeof(json[keys[i]]) === "string" )
+ {
+ if(!document.querySelector(`#${parentTag}-${keys[i]}-${stellarAddress}`))
+ {
+ var p = {
+ element:"p",
+ id: `${parentTag}-${keys[i]}-${stellarAddress}`,
+ innerText: `${parentTag}.${keys[i]}: ${json[keys[i]]}`
+ };
+ makeElement(p, divs);
+ }
+ }
}
}
}
-function nodeInfoRenderAndProceed(json, stellarAddress){
+function nodeInfoRenderAndProceed(json, stellarAddress)
+{
nodeInfoRender(json, stellarAddress);
- participants[stellarAddress]=json;
- if ( stellarParticipantsScanned === 0 ) {
+ stellarParticipantInfo(stellarAddress, json);
+ if ( getStellarParticipantsScanned() === 0 )
+ {
archingKaosLog('Scanned all Stellar participants');
}
- progressPlaceholder.value++;
- if (json.zlatest) {
+ progressPlaceholder().value++;
+ if (json.zlatest)
+ {
seekZblock(json.zlatest, [json.gpg, json]);
}
//seekZchain(json.zchain,stellarAddress,json);
}
-function renderZblockAndProceed(json, params){
- console.log(typeof(params))
+function renderZblockAndProceed(json, params)
+{
+ debugLog(typeof(params))
const [zblockIPFSHash, group, recursive] = params;
- console.log(group);
+ debugLog(group);
var zblockElement = document.querySelector('#zb-'+zblockIPFSHash);
- if(json.block){
+ if(json.block)
+ {
var p = {
element:"p",
innerText:"Block: " +json.block,
@@ -93,24 +165,27 @@ function renderZblockAndProceed(json, params){
};
makeElement(p, zblockElement);
}
- if(json.block_signature){
+ if(json.block_signature)
+ {
var p = {
element:"p",
innerText:"Signature: " +json.block_signature
};
makeElement(p, zblockElement);
}
- progressPlaceholder.max++;
- progressPlaceholder.value++;
+ progressPlaceholder().max++;
+ progressPlaceholder().value++;
//if (recursive) seekBlock(json.block,zblockIPFSHash,group,json);
seekBlock(json.block,zblockIPFSHash,group,json,recursive);
}
-function mixtapeSorting(a,b){
+function mixtapeSorting(a,b)
+{
return a.timestamp - b.timestamp
}
-function blockRenderAndProceed(json, params){
+function blockRenderAndProceed(json, params)
+{
const [group, zblockIPFSHash, blockIPFSHash, zblockObject, recursive] = params;
/* Could be json object with
* - action
@@ -122,28 +197,32 @@ function blockRenderAndProceed(json, params){
*/
// var divs = document.querySelector('#zchain-data-section');
var detailsPlace = document.querySelector('#zb-'+zblockIPFSHash);
- if(json.action){
+ if(json.action)
+ {
var p = {
element:"p",
innerText:"Action: " +json.action
};
if(detailsPlace!== null) makeElement(p, detailsPlace);
}
- if(json.detach){
+ if(json.detach)
+ {
var p = {
element:"p",
innerText:"Detach: " +json.detach
};
if(detailsPlace!== null) makeElement(p, detailsPlace);
}
- if(json.gpg){
+ if(json.gpg)
+ {
var p = {
element:"p",
innerText:"GPG: " +json.gpg
};
if(detailsPlace!== null) makeElement(p, detailsPlace);
}
- if(json.data){
+ if(json.data)
+ {
var p = {
element:"p",
innerText:"Data: ",
@@ -153,66 +232,68 @@ function blockRenderAndProceed(json, params){
};
if(detailsPlace!== null) makeElement(p, detailsPlace);
}
- if(json.timestamp){
+ if(json.timestamp)
+ {
var p = {
element:"p",
innerText:"Timestamp: " +json.timestamp + " [" + new Date(json.timestamp*1000) + "]"
};
if(detailsPlace!== null) makeElement(p, detailsPlace);
}
- if(json.previous){
+ if(json.previous)
+ {
var p = {
element:"p",
innerText:"Previous: " +json.previous
};
if(detailsPlace!== null) makeElement(p, detailsPlace);
}
- progressPlaceholder.value++;
+ progressPlaceholder().value++;
exe(json.action,json.data,json,zblockIPFSHash,group,zblockObject,recursive);
- if ( checkIfGenesis(json.previous) ){
+ if ( checkIfGenesis(json.previous) )
+ {
archingKaosLog("Done loading " + group + " zchain!")
- progressPlaceholder.value++;
- zchainLoadingStatus[group] = {loading: "completed"};
- if ( getArrayLength(zchainLoadingStatus) === stellarNetworkConfiguredAddresses){
+ progressPlaceholder().value++;
+ setZchainLoadingStatus(group, {loading: "completed"});
+ if ( getZchainLoadingStatuses().length === getStellarNetworkConfiguredAddresses())
+ {
var x=0;
- for ( element in zchainLoadingStatus ) {
- if ( zchainLoadingStatus[element].loading === "completed" ){
+ for ( var element = 0; element < getZchainLoadingStatuses().length; element++ )
+ {
+ if ( getZchainLoadingStatuses()[element].loading === "completed" )
+ {
x++;
}
}
- if ( x === getArrayLength(zchainLoadingStatus) ){
+ if ( x === getZchainLoadingStatuses().length )
+ {
archingKaosLog("Everything is completed!");
- sortedMixtapes = mixtapes.sort(mixtapeSorting);
+ setSortedMixtapes(getMixtapes().sort(mixtapeSorting));
}
}
- resolveReferences(references);
- radioLoad();
- } else {
- console.log("deep in :" +group);
- if (recursive) seekZblock(json.previous, [group]);
+ resolveReferences();
+ //radioLoad();
}
-}
-
-function getNicknameAssossiatedWithGPG(gpgIPFSHash){
- for (let i in participants){
- if ( participants[i].gpg === gpgIPFSHash ){
- if (participants[i].profile.nickname){
- return participants[i].profile.nickname;
- }
- }
+ else
+ {
+ debugLog("deep in :" +group);
+ if (recursive) seekZblock(json.previous, [group]);
}
}
-function getConfiguration(nodeInfoIPNSLink,stellarAddress){
- progressPlaceholder.max++;
- archingKaosLog("Parsing the configuration...")
- archingKaosFetchJSON(getIPNSURL(nodeInfoIPNSLink), nodeInfoRenderAndProceed, stellarAddress)
+export function getConfiguration(nodeInfoIPNSLink,stellarAddress)
+{
+ progressPlaceholder().max++;
+ archingKaosLog("Parsing the configuration...");
+ archingKaosFetchJSON(getIPNSURL(nodeInfoIPNSLink), nodeInfoRenderAndProceed, stellarAddress);
}
-function seekZchain(zchainIPNSLink,stellarAddress,json){
+function seekZchain(zchainIPNSLink,stellarAddress,json)
+{
var divs = document.querySelector('#zchain-data-section');
var details = 0;
- if ( document.querySelector('#zd-' + zchainIPNSLink) === null ){
+ if ( document.querySelector('#zd-' + zchainIPNSLink) === null )
+ {
details = {
element:"details",
id : 'zd-' + zchainIPNSLink,
@@ -222,7 +303,8 @@ function seekZchain(zchainIPNSLink,stellarAddress,json){
}
details = document.querySelector('#zd-' + zchainIPNSLink);
- if(zchainIPNSLink){
+ if(zchainIPNSLink)
+ {
var p = {
element:"summary",
innerText:"zchain: " + zchainIPNSLink
@@ -230,27 +312,32 @@ function seekZchain(zchainIPNSLink,stellarAddress,json){
makeElement(p, details);
}
archingKaosLog("Seeking zchain " + zchainIPNSLink + "...");
- console.log(json)
+ debugLog(json);
archingKaosFetchJSON(getIPNSURL(zchainIPNSLink), seekZblock, [zchainIPNSLink, stellarAddress, json]);
}
-function checkIfGenesis(zblockIPFSHash){
- if(zblockIPFSHash==="QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH" || zblockIPFSHash === "genesis"){
+function checkIfGenesis(zblockIPFSHash)
+{
+ if(zblockIPFSHash==="QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH" || zblockIPFSHash === "genesis")
+ {
return true;
- } else {
+ }
+ else
+ {
return false;
}
}
-function seekBlock(blockIPFSHash, zblockIPFSHash, group, zblockObject, recursive){
- console.log(blockIPFSHash);
- console.log(zblockIPFSHash);
- console.log(group);
- console.log(zblockObject);
- console.log(recursive);
+function seekBlock(blockIPFSHash, zblockIPFSHash, group, zblockObject, recursive)
+{
+ debugLog(blockIPFSHash);
+ debugLog(zblockIPFSHash);
+ debugLog(group);
+ debugLog(zblockObject);
+ debugLog(recursive);
archingKaosLog("Seeking block "+blockIPFSHash+"...");
// detailsPlace = document.querySelector('#zb-'+zblockIPFSHash);
- progressPlaceholder.max++;
+ progressPlaceholder().max++;
archingKaosFetchJSON(
getIPFSURL(blockIPFSHash),
blockRenderAndProceed,
@@ -258,12 +345,19 @@ function seekBlock(blockIPFSHash, zblockIPFSHash, group, zblockObject, recursive
);
}
-function getNicknameAssossiatedWithGPG(gpgIPFSHash){
- for (let i in participants){
- if ( participants[i].gpg === gpgIPFSHash ){
- if (participants[i].profile.nickname !== 'undefined'){
+export function getNicknameAssossiatedWithGPG(gpgIPFSHash)
+{
+ const participants = getParticipants();
+ for (var i = 0; i < participants.length; i++)
+ {
+ if ( participants[i].gpg === gpgIPFSHash )
+ {
+ if (participants[i].profile.nickname !== 'undefined')
+ {
return participants[i].profile.nickname;
- } else {
+ }
+ else
+ {
return gpgIPFSHash;
}
}
@@ -271,29 +365,53 @@ function getNicknameAssossiatedWithGPG(gpgIPFSHash){
return gpgIPFSHash;
}
-function renderGroupOnDataSection(group){
+function renderGroupOnDataSection(group)
+{
var divs = document.querySelector('#zchain-data-section');
- if (divs.querySelector("#zchain-data-sec-not-found")){
+ if (divs.querySelector("#zchain-data-sec-not-found"))
+ {
divs.querySelector("#zchain-data-sec-not-found").remove();
}
- if ( divs.querySelector('#zd-' + group) === null ){
+ var group_render = "";
+ if ( typeof(group) === "string" )
+ {
+ group_render = group;
+ }
+ else
+ {
+ group_render = group.fingerprint;
+ }
+ if ( divs.querySelector('#zd-' + group_render) === null )
+ {
var details = {
element:"details",
- id : 'zd-' + group,
+ id : 'zd-' + group_render,
className : 'zchain-details',
innerHTML:[
- { element:'summary', innerText: group }
+ { element:'summary', innerText: group_render }
]
};
- makeElement(details, divs);
- } else {
- //console.log('Else got hit in seekZchain');
+ makeElement(details, divs.querySelector('.content'));
+ }
+ else
+ {
+ //debugLog('Else got hit in seekZchain');
return 0;
}
}
-function renderZblockUnderGroup(zblock, group){
- const divs = document.querySelector('#zd-' + group);
+function renderZblockUnderGroup(zblock, group)
+{
+ var group_render = "";
+ if ( typeof(group) === "string" )
+ {
+ group_render = group;
+ }
+ else
+ {
+ group_render = group.fingerprint;
+ }
+ const divs = document.querySelector('#zd-' + group_render);
var zblockElement = {
element:"article",
id: "zb-"+zblock,
@@ -304,61 +422,70 @@ function renderZblockUnderGroup(zblock, group){
makeElement(zblockElement, divs);
}
-function seekZblock(zblockIPFSHash, params){
+export function seekZblock(zblockIPFSHash, params)
+{
var [group, recursive=true] = params;
- console.log(params)
- console.log(group)
+ debugLog(params);
+ debugLog(group);
// const [zchainIPNSLink, stellarAddress, recursive] = params;
renderGroupOnDataSection(group);
renderZblockUnderGroup(zblockIPFSHash, group);
archingKaosLog("Seeking ZBLOCK " + zblockIPFSHash + "...");
-// if (recursive !== true || recursive !== false){
+// if (recursive !== true || recursive !== false)
+// {
// recursive = true;
// }
archingKaosFetchJSON(getIPFSURL(zblockIPFSHash), renderZblockAndProceed, [zblockIPFSHash, group, recursive]);
}
-function getConfiguration(nodeInfoIPNSLink,stellarAddress){
- progressPlaceholder.max++;
- archingKaosLog("Parsing the configuration...")
- archingKaosFetchJSON(getIPNSURL(nodeInfoIPNSLink), nodeInfoRenderAndProceed, stellarAddress)
-}
-
-function renderZblockAsModule(json, params){
+function renderZblockAsModule(json, params)
+{
const [action, group, zblockIPFSHash, zblockObject, blockObject, references, recursive] = params;
- if (action == "files/add") {
+ if (action == "files/add")
+ {
akModuleFiles(zblockIPFSHash, blockObject, json);
}
- else if (action == "news/add") {
+ else if (action == "news/add")
+ {
akModuleNews(zblockIPFSHash, zblockObject, blockObject, json);
}
- else if (action == "comments/add") {
+ else if (action == "markdown/add")
+ {
+ akModuleMarkdown(zblockIPFSHash, zblockObject, blockObject, json);
+ }
+ else if (action == "comments/add")
+ {
akModuleComments(zblockIPFSHash,blockObject, json);
}
- else if (action == "references/add"){
+ else if (action == "references/add")
+ {
storeReference(zblockIPFSHash, zblockObject, blockObject, json, references);
}
- else if (action == "mixtape/add") {
+ else if (action == "mixtape/add")
+ {
akModuleMixtapes(zblockIPFSHash, zblockObject, blockObject, json);
}
- else {
+ else
+ {
archingKaosLog(action + " module not found");
}
- if (!recursive) {
+ if (!recursive)
+ {
var button = document.createElement('button');
button.innerText =`${action.split('/')[0]}-${zblockIPFSHash} 📖`;
- var params = `${action.split('/')[0]}-${zblockIPFSHash}`
+ var params = `${action.split('/')[0]}-${zblockIPFSHash}`;
button.onclick = ()=>{
showResult(params);
};
- resultsArea.appendChild(button);
+ resultsArea().appendChild(button);
}
}
-function saveDataAndFullZblocks(json,params){
+function saveDataAndFullZblocks(json,params)
+{
const [action, group, zblockIPFSHash, zblockObject, blockObject, references, recursive] = params;
- fullZblocks[zblockIPFSHash]={
+ setFullZblock(zblockIPFSHash, {
zblock:zblockIPFSHash,
block:zblockObject.block,
block_signature:zblockObject.block_signature,
@@ -369,142 +496,191 @@ function saveDataAndFullZblocks(json,params){
detach:blockObject.detach,
gpg:blockObject.gpg,
timestamp:blockObject.timestamp
- };
- zblocks[group] = new Array;
- zblocks[group].push(zblockIPFSHash);
- data[blockObject.data]=json;
- progressPlaceholder.max++;
- progressPlaceholder.value++;
+ });
+ setZblock(group, zblockIPFSHash);
+ setData(blockObject.data, json);
+ progressPlaceholder().max++;
+ progressPlaceholder().value++;
}
-function doStuffWithFetchedDataBlock(json, params){
- saveDataAndFullZblocks(json,params);
+function doStuffWithFetchedDataBlock(json, params)
+{
+ saveDataAndFullZblocks(json, params);
renderZblockAsModule(json, params);
}
-function exe(action,dataIPFSHash,blockObject,zblockIPFSHash,group,zblockObject,recursive){
+function exe(action,dataIPFSHash,blockObject,zblockIPFSHash,group,zblockObject,recursive)
+{
archingKaosLog(`Render ZBLOCK ${zblockIPFSHash} as ${action} ...`);
archingKaosFetchJSON(
getIPFSURL(dataIPFSHash),
doStuffWithFetchedDataBlock,
- [action, group, zblockIPFSHash, zblockObject, blockObject, references, recursive]
+ [action, group, zblockIPFSHash, zblockObject, blockObject, null, recursive]
);
}
-function getipfstext(ipfsHash, articleid){
- fetch(getIPFSURL(ipfsHash), {
- method:'GET',
- headers:{
- Accept: 'text/plain'
- }
- }).then(response=>{
- if(response.ok){
- response.text().then(text=>{
- var divs = document.querySelector('#'+articleid);
- if(text){
- var lines = text.split('\n');
- // remove one line, starting at the first position
- // lines.splice(0,1);
- var newtext = lines.join('\n');
- var pre = {
- element:"div",
- className:"news-text",
- innerHTML:DOMPurify.sanitize(marked.parse(newtext))
- };
- makeElement(pre, divs);
- }
- })
- }
- })
+export function getPreviewText(text, params)
+{
+ var [ articleid, button ] = params;
+ var divs = document.querySelector(articleid);
+ if(text)
+ {
+ var newtext = text.substring(0, 500);
+ var pre = {
+ element:"div",
+ innerHTML:[
+ {
+ element:"div",
+ className:"news-text",
+ innerHTML:DOMPurify.sanitize(marked.parse(newtext))
+ },
+ button
+ ]
+ };
+ makeElement(pre, divs);
+ }
+}
+
+export function getFullText(text, params)
+{
+ var [ articleid ] = params;
+ var divs = document.querySelector(articleid);
+ if(text)
+ {
+ var pre = {
+ element:"div",
+ className:"news-text",
+ innerHTML:DOMPurify.sanitize(marked.parse(text))
+ };
+ makeElement(pre, divs);
+ }
}
-function checkIfZchainAndProceed(json, params){
+function checkIfZchainAndProceed(json, params)
+{
const [group] = params;
- if (json.zlatest) {
- if (!aknet.querySelector('#ak-zchain-'+json.zchain)){
+ if (json.zlatest)
+ {
+ if (!aknet().querySelector('#ak-zchain-'+json.zchain))
+ {
var pre = {
element:"pre",
innerText:json.zchain,
id:'ak-zchain-'+json.zchain
};
- makeElement(pre, aknet);
+ makeElement(pre, aknet());
}
}
seekZblock(json.zlatest, [group, true]);
}
-function sblockExpanding(json, args){
+function sblockExpanding(json, args)
+{
const [sblockHash] = args;
- if (json.zblocks){
- for ( zblock in json.zblocks ){
+ if (json.zblocks)
+ {
+ for ( var zblock = 0; zblock < json.zblocks.length; zblock++ )
+ {
seekZblock(json.zblocks[zblock],sblockHash,false);
archingKaosLog("Found "+json.zblocks[zblock]+" of "+sblockHash);
}
}
- if (json.zpairs){
- for ( pair in json.zpairs ){
+ if (json.zpairs)
+ {
+ for ( var pair = 0; pair < json.zpairs.length; pair++ )
+ {
seekZchain(json.zpairs[pair].latest,json.zpairs[pair].zchain,true);
archingKaosLog("Found "+json.zblocks[zblock]+" of "+json.zpairs[pair].zchain);
}
}
- if (json.previous) {
+ if (json.previous)
+ {
crawlSchain(json.previous);
}
}
-function crawlSchain(sblockHash){
- shatest = /0{128}/
- if ( shatest.test(sblockHash) ){
- console.log('genesis!!!');
- } else {
- zchainLoadingStatus[sblockHash] = {loading : "started"};
- zchainsFound++;
- zchains[sblockHash] = [];
- var url=settings.localAPI+'/v0/sblock/'+sblockHash;
+function crawlSchain(sblockHash)
+{
+ var shatest = /0{128}/
+ if ( shatest.test(sblockHash) )
+ {
+ debugLog('genesis!!!');
+ }
+ else
+ {
+ setZchainLoadingStatus(sblockHash, {loading : "started"});
+ increaseZchainsFound();
+ setZchain(sblockHash, []);
+ var url=settings.ak.connect.list[settings.ak.connect.active]+'/v0/sblock/'+sblockHash;
archingKaosLog("Fetching "+sblockHash+" sblock...");
archingKaosFetchJSON(url, sblockExpanding, [sblockHash]);
archingKaosLog("Fetching "+sblockHash+" sblock... Done!");
}
}
-function initCrawlSchain(json){
- if (json.latest_block){
+function initCrawlSchain(json)
+{
+ if (json.latest_block)
+ {
crawlSchain(json.latest_block);
archingKaosLog("Diving in "+json.latest_block+" ...");
- } else {
+ }
+ else
+ {
archingKaosLog("Can't dive ...");
}
}
-function checkPeers(json){
- for (peer in json){
- archingKaosLog("Checking peer: "+json[peer].cjdns.ip)
- checkIfZchainAndProceed(json[peer].node_info, [json[peer].node_info.gpg]);
+function checkPeers(json)
+{
+ for ( var peer = 0; peer < json.length; peer++)
+ {
+ if ( json[peer].cjdns !== undefined )
+ {
+ archingKaosLog("Checking peer: "+json[peer].cjdns.ip);
+ checkIfZchainAndProceed(json[peer].node_info, [json[peer].node_info.gpg]);
+ }
+ if ( json[peer].yggdrasil !== undefined )
+ {
+ archingKaosLog("Checking peer: "+json[peer].yggdrasil.ip);
+ checkIfZchainAndProceed(json[peer].node_info, [json[peer].node_info.gpg]);
+ }
}
}
-function checkLocalPeers(){
+export function seekPeer(value)
+{
+ archingKaosFetchJSON(`http://[${value}]:8610/v0/node_info`, checkIfZchainAndProceed, ["custom"]);
+}
+
+export function checkLocalPeers()
+{
archingKaosLog("🔎 Querying for peers...");
var url=settings.ak.connect.list[settings.ak.connect.active]+'/v0/peers';
- archingKaosFetchJSON(url, checkPeers);
+ archingKaosFetchJSON(url, checkPeers, ["localpeers"]);
archingKaosLog("Querying for peers... Done!");
}
-function checkLocalNodeInfo(){
+export function checkLocalNodeInfo()
+{
archingKaosLog("Ringing local bell...");
var url=settings.ak.connect.list[settings.ak.connect.active]+'/v0/node_info';
archingKaosFetchJSON(url, checkIfZchainAndProceed, ["localnode"]);
archingKaosLog("Ringing local bell... Done!");
}
-function checkLocalSchain(){
+export function checkLocalSchain()
+{
archingKaosLog("Querying for schain...");
+ debugLog(settings);
var url=settings.ak.connect.list[settings.ak.connect.active]+'/v0/slatest';
+ debugLog(url);
archingKaosFetchJSON(url, initCrawlSchain);
archingKaosLog("Querying for schain... Done!");
}
-async function ringlocalbell(){
+async function ringlocalbell()
+{
checkLocalNodeInfo();
// checkLocalPeers();
// checkLocalSchain();