forked from cory/tildefriends
79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
|
import * as tfrpc from '/tfrpc.js';
|
||
|
import * as strava from './strava.js';
|
||
|
|
||
|
let g_database;
|
||
|
let g_shared_database;
|
||
|
|
||
|
tfrpc.register(async function createIdentity() {
|
||
|
return ssb.createIdentity();
|
||
|
});
|
||
|
tfrpc.register(async function appendMessage(id, message) {
|
||
|
return ssb.appendMessageWithIdentity(id, message);
|
||
|
});
|
||
|
tfrpc.register(function url() {
|
||
|
return core.url;
|
||
|
});
|
||
|
tfrpc.register(async function getUser() {
|
||
|
return core.user;
|
||
|
});
|
||
|
tfrpc.register(function getIdentities() {
|
||
|
return ssb.getIdentities();
|
||
|
});
|
||
|
tfrpc.register(async function databaseGet(key) {
|
||
|
return g_database ? g_database.get(key) : undefined;
|
||
|
});
|
||
|
tfrpc.register(async function databaseSet(key, value) {
|
||
|
return g_database ? g_database.set(key, value) : undefined;
|
||
|
});
|
||
|
tfrpc.register(async function databaseRemove(key, value) {
|
||
|
return g_database ? g_database.remove(key, value) : undefined;
|
||
|
});
|
||
|
tfrpc.register(async function sharedDatabaseGet(key) {
|
||
|
return g_shared_database ? g_shared_database.get(key) : undefined;
|
||
|
});
|
||
|
tfrpc.register(async function sharedDatabaseSet(key, value) {
|
||
|
return g_shared_database ? g_shared_database.set(key, value) : undefined;
|
||
|
});
|
||
|
tfrpc.register(async function sharedDatabaseRemove(key, value) {
|
||
|
return g_shared_database ? g_shared_database.remove(key, value) : undefined;
|
||
|
});
|
||
|
tfrpc.register(async function query(sql, args) {
|
||
|
let result = [];
|
||
|
await ssb.sqlAsync(sql, args, function callback(row) {
|
||
|
result.push(row);
|
||
|
});
|
||
|
return result;
|
||
|
});
|
||
|
tfrpc.register(async function store_blob(blob) {
|
||
|
if (typeof(blob) == 'string') {
|
||
|
blob = utf8Encode(blob);
|
||
|
}
|
||
|
if (Array.isArray(blob)) {
|
||
|
blob = Uint8Array.from(blob);
|
||
|
}
|
||
|
return await ssb.blobStore(blob);
|
||
|
});
|
||
|
|
||
|
tfrpc.register(async function get_blob(id) {
|
||
|
return utf8Decode(await ssb.blobGet(id));
|
||
|
});
|
||
|
tfrpc.register(strava.refresh_token);
|
||
|
|
||
|
async function main() {
|
||
|
g_shared_database = await shared_database('state');
|
||
|
if (core.user.credentials?.session?.name) {
|
||
|
g_database = await database('state');
|
||
|
}
|
||
|
|
||
|
let attempt;
|
||
|
if (core.user.credentials?.session?.name) {
|
||
|
let shared_db = await shared_database('state');
|
||
|
attempt = await shared_db.get(core.user.credentials.session.name);
|
||
|
}
|
||
|
app.setDocument(utf8Decode(getFile('index.html')).replace('${data}', JSON.stringify({
|
||
|
attempt: attempt,
|
||
|
state: core.user?.credentials?.session?.name,
|
||
|
})));
|
||
|
}
|
||
|
|
||
|
main();
|