add misskey support to known instances
This commit is contained in:
parent
e7744a1964
commit
e5971e3848
|
@ -10,8 +10,8 @@ import {SLOTS, normalize_known, known_load, known_save} from './known_instances.
|
||||||
document.querySelector('#mastodon_another_instance_button_template').innerHTML + '`;');
|
document.querySelector('#mastodon_another_instance_button_template').innerHTML + '`;');
|
||||||
const mastodon_top_instances =
|
const mastodon_top_instances =
|
||||||
Function('return JSON.parse(`' + document.querySelector('#mastodon_top_instances').innerHTML + '`);')();
|
Function('return JSON.parse(`' + document.querySelector('#mastodon_top_instances').innerHTML + '`);')();
|
||||||
|
|
||||||
const misskey_container = document.querySelector('#misskey_instance_buttons');
|
const misskey_container = document.querySelector('#misskey_instance_buttons');
|
||||||
const misskey_button_template = Function('first', 'instance',
|
const misskey_button_template = Function('first', 'instance',
|
||||||
'return `' + document.querySelector('#misskey_instance_button_template').innerHTML + '`;');
|
'return `' + document.querySelector('#misskey_instance_button_template').innerHTML + '`;');
|
||||||
const misskey_another_button_template = Function(
|
const misskey_another_button_template = Function(
|
||||||
|
@ -28,10 +28,16 @@ import {SLOTS, normalize_known, known_load, known_save} from './known_instances.
|
||||||
known = await resp.json();
|
known = await resp.json();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
known = [{
|
known = {
|
||||||
"instance": "mastodon.social",
|
mastodon:[{
|
||||||
"hits": 0
|
"instance": "mastodon.social",
|
||||||
}];
|
"hits": 0
|
||||||
|
}],
|
||||||
|
misskey:[
|
||||||
|
"instance": "misskey.io",
|
||||||
|
"hits": 0
|
||||||
|
],
|
||||||
|
};
|
||||||
}
|
}
|
||||||
known_save(known)
|
known_save(known)
|
||||||
fetch('/api/known_instances', {method: 'DELETE'})
|
fetch('/api/known_instances', {method: 'DELETE'})
|
||||||
|
@ -40,17 +46,12 @@ import {SLOTS, normalize_known, known_load, known_save} from './known_instances.
|
||||||
return known;
|
return known;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function replace_buttons(top_instances, known_instances, container,
|
||||||
async function replace_buttons(){
|
template, template_another_instance){
|
||||||
let known = await get_known();
|
|
||||||
|
|
||||||
known = normalize_known(known);
|
|
||||||
known_save(known);
|
|
||||||
|
|
||||||
let filtered_top_instances = []
|
let filtered_top_instances = []
|
||||||
for(let instance of mastodon_top_instances){
|
for(let instance of top_instances){
|
||||||
let found = false;
|
let found = false;
|
||||||
for(let k of known){
|
for(let k of known_instances){
|
||||||
if(k['instance'] == instance['instance']){
|
if(k['instance'] == instance['instance']){
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
|
@ -61,20 +62,35 @@ import {SLOTS, normalize_known, known_load, known_save} from './known_instances.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let instances = known.concat(filtered_top_instances).slice(0, SLOTS);
|
let instances = known_instances.concat(filtered_top_instances).slice(0, SLOTS);
|
||||||
|
|
||||||
let html = '';
|
let html = '';
|
||||||
|
|
||||||
let first = true;
|
let first = true;
|
||||||
for(let instance of instances){
|
for(let instance of instances){
|
||||||
html += mastodon_button_template(first, instance['instance'])
|
html += template(first, instance['instance'])
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
html += mastodon_another_button_template();
|
html += template_another_instance();
|
||||||
|
|
||||||
mastodon_container.innerHTML = html;
|
container.innerHTML = html;
|
||||||
}
|
}
|
||||||
|
|
||||||
replace_buttons();
|
async function init_buttons(){
|
||||||
|
let known = await get_known();
|
||||||
|
|
||||||
|
known.mastodon = normalize_known(known.mastodon);
|
||||||
|
known.misskey = normalize_known(known.misskey);
|
||||||
|
known_save(known);
|
||||||
|
|
||||||
|
replace_buttons(mastodon_top_instances, known.mastodon,
|
||||||
|
mastodon_container, mastodon_button_template,
|
||||||
|
mastodon_another_button_template);
|
||||||
|
replace_buttons(misskey_top_instances, known.misskey,
|
||||||
|
misskey_container, misskey_button_template,
|
||||||
|
misskey_another_button_template);
|
||||||
|
}
|
||||||
|
|
||||||
|
init_buttons();
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -1,6 +1,24 @@
|
||||||
const STORAGE_KEY = 'forget_known_instances';
|
const STORAGE_KEY = 'forget_known_instances@2021-12-09';
|
||||||
export const SLOTS = 5;
|
export const SLOTS = 5;
|
||||||
|
|
||||||
|
function load_and_migrate_old(){
|
||||||
|
const OLD_KEY = "forget_known_instances";
|
||||||
|
let olddata = localStorage.getItem(OLD_KEY);
|
||||||
|
if(olddata != null){
|
||||||
|
olddata = JSON.parse(olddata)
|
||||||
|
let newdata = {
|
||||||
|
mastodon: olddata,
|
||||||
|
misskey: [
|
||||||
|
"instance": "misskey.io",
|
||||||
|
"hits": 0
|
||||||
|
]
|
||||||
|
};
|
||||||
|
known_save(newdata);
|
||||||
|
localStorage.removeItem(OLD_KEY);
|
||||||
|
return newdata;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function known_save(known){
|
export function known_save(known){
|
||||||
localStorage.setItem(STORAGE_KEY, JSON.stringify(known));
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(known));
|
||||||
}
|
}
|
||||||
|
@ -9,6 +27,8 @@ export function known_load(){
|
||||||
let known = localStorage.getItem(STORAGE_KEY);
|
let known = localStorage.getItem(STORAGE_KEY);
|
||||||
if(known){
|
if(known){
|
||||||
known = JSON.parse(known);
|
known = JSON.parse(known);
|
||||||
|
} else {
|
||||||
|
known = load_and_migrate_old();
|
||||||
}
|
}
|
||||||
return known;
|
return known;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue