-
Notifications
You must be signed in to change notification settings - Fork 33
/
barbml.js
86 lines (82 loc) · 2.41 KB
/
barbml.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
var data = [];
var count = 0;
var list = "";
var toget = "";
var url = "https://raw.githubusercontent.com/username-pass/bookmarklets/main/";
const autocomplete = document.getElementById("autocomplete");
const resultsHTML = document.getElementById("results");
const iframe = document.getElementById("frame");
fetch(url + "list.txt").then(function(response) {
response.text().then(function(text) {
var list = text
var splist = list.split(" ");
splist.shift();
splist = splist.sort();
var ltxt = '';
console.log(splist);
data = splist;
});
});
autocomplete.oninput = function() {
let results = [];
const userInput = this.value;
resultsHTML.innerHTML = "";
if (userInput.length > 0) {
results = getResults(userInput);
resultsHTML.style.display = "block";
for (i = 0; i < results.length; i++) {
resultsHTML.innerHTML += "<li>" + results[i] + "</li>";
}
}
};
autocomplete.addEventListener('keydown', function(e) {
let results = [];
const userInput = this.value;
resultsHTML.innerHTML = "";
if (userInput.length > 0) {
results = getResults(userInput);
resultsHTML.style.display = "block";
for (i = 0; i < results.length; i++) {
resultsHTML.innerHTML += "<li>" + results[i] + "</li>";
}
}
keyp(e, results);
});
function keyp(e, results) {
var key = ` ${e.code}`;
if (key == " Enter" || key == " Tab") {
var isIn = results.includes(autocomplete.value + "\n");
if (isIn) {
submit(autocomplete.value);
}
autocomplete.value = results[0];
}
}
function getResults(input) {
const results = [];
for (i = 0; i < data.length; i++) {
if (input === data[i].slice(0, input.length)) {
results.push(data[i]);
}
}
return results;
}
function getlist(initial) {
let out = [];
let a = 0;
for (let i = 2; i < initial.length; i = i + 2) {
out[a] = initial[i];
a++;
}
return out;
}
function submit(value) {
let toget = value;
toget = url + toget + ".js";
fetch(toget).then(function(response) {
response.text().then(function(text) {
var txt = text;
frame.eval(txt);
});
});
}