Check Discovery
Check if discovery drin
by Lissandro Dittmar
HTML
<div id="banner-message">
<p>Start discovery check</p>
<button>Start check</button>
</div>
<div style="background-color: white;">
<ol id="listeSuccess">
</ol>
<ol id="liste">
</ol>
<span id="result"></span>
</div>
CSS
i {
color: #669FAB;
}
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
JavaScript
const githubToken = "";
let adapterList;
let dicoveryList;
const test = true;
const ignoreType = ["visualization-icons", "visualization-widgets"];
$("button").on("click", function () {
start();
});
function GithubInteractor(token) {
this.token = token;
}
const interactor = new GithubInteractor(githubToken);
const start = async function () {
await startFunc();
}
const startFunc = async function () {
dicoveryList = await findAllDiscoveryAdapters();
adapterList = await getOldDiscoveryList();
await updateAllAdapters();
}
async function findAllDiscoveryAdapters() {
let resultList = ['ioBroker.js-controller', 'ioBroker.admin', 'ioBroker.discovery'];
const filesListJson = await getDataV4(getDiscoverySearchQL);
if(filesListJson && filesListJson.data && filesListJson.data.repository){
filesListJson.data.repository.object.entries.forEach(async function (file) {
const name = "ioBroker." + file.name.slice(0, -3);
resultList.push(name);
});
}
return resultList;
}
async function getOldDiscoveryList() {
const link = "https://raw.githubusercontent.com/ioBrokerChecker/testData/master/discoveryData.json";
try {
return await (await fetch(link, {cache: "no-cache"})).json();
} catch (e) {
return null;
}
}
async function getAdapterList() {
const link = "https://raw.githubusercontent.com/ioBroker/ioBroker.repositories/master/sources-dist-stable.json";
try {
return await (await fetch(link, {cache: "no-cache"})).json();
} catch (e) {
return null;
}
}
async function getDataV4(query) {
return await (await fetch('https://api.github.com/graphql', {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/json',
'Authorization': 'bearer ' + interactor.token
}),
body: JSON.stringify({query: query})
})).json();
}
function addComminityText(full_name) {
if...