Internal improvements

This commit is contained in:
octospacc 2023-04-23 00:48:14 +02:00
parent 0ec5864e54
commit 12d4db5953
7 changed files with 65 additions and 21 deletions

View File

@ -31,6 +31,9 @@ var ApiSchema = {
Mastodon: "account",
Misskey: "user",
},
Quoting: {
Mastodon: "reblog",
},
Time: {
Mastodon: "created_at",
Misskey: "createdAt",
@ -57,24 +60,34 @@ var ApiSchema = {
Mastodon: "display_name",
Misskey: "name",
},
Type: {}, // user, bot, channel, group
Type: { // user, bot, channel, group
Mastodon: {"__Eval__": `
var Type;
if (TreeOld.bot) Type = 'Bot';
if (TreeOld.group) Type = 'Group';
TreeNew[KeyNew] = Type;
`},
},
Url: {
Mastodon: "url",
},
},
};
function ApiTransform(Data, FromSource, DestType) {
return JsonTransformB(Data, ApiSchema, ApiSchema[DestType], FromSource);
};
/*
var TransParsers = {
Mastodon: {
Account(Data) {
//return JsonTransformA(Data, TransSchemas.Mastodon.Author, TransSchemas.Mastodon);
return JsonTransformB(Data, ApiSchema, ApiSchema.Profile, 'Mastodon');
},
/*
Instance(Data) {
return JsonTransformA(Data, TransSchemas.Mastodon.Instance, TransSchemas.Mastodon);
},
*/
Status(Data) {
//return JsonTransformA(Data, TransSchemas.Mastodon.Status, TransSchemas.Mastodon);
return JsonTransformB(Data, ApiSchema, ApiSchema.Note, 'Mastodon');
@ -83,3 +96,4 @@ var TransParsers = {
Misskey: {
},
};
*/

View File

@ -30,7 +30,7 @@ FakeApi.Mastodon.Account = {
url: "https://mastodon.example.com/@Tester",
};
FakeApi.Friendiiverse.Featured.Featured.push(
TransParsers.Mastodon.Account(FakeApi.Mastodon.Account));
ApiTransform(FakeApi.Mastodon.Account, 'Mastodon', 'Profile'));
FakeApi.Mastodon.Status = {
account: FakeApi.Mastodon.Account,

View File

@ -13,6 +13,7 @@ var FriendicaCredentials = 'redacted:redacted';
// Development
var Debug = true;
var UseFakeApi = true;
var UserData = {};
</script>
</head>
<body>
@ -26,15 +27,12 @@ var UseFakeApi = true;
</div>
<!--
<div id="PlazasView"></div>
<textarea id="Input"></textarea>
<button id="Post">Post</button>
<div id="ChannelView"></div>
<div id="TimelineView"></div>
<xmp id="DataView"></xmp>
-->
</div>
<div id="Bottom">
<a href="javascript:void(0);" onclick="Root.lastChild.remove();">↩️ Back</a>
<button onclick="Root.lastChild.remove();">↩️ Back</button>
<button onclick="ComposeNote();">Note</button>
<a href="https://gitlab.com/octtspacc/Friendiiverse">📜️ Source Code</a>
</div>
<script>NoscriptView.remove();</script>

View File

@ -132,7 +132,7 @@ function FetchMastodon(Proc) {
};
};
function ResFetchMastodon(Res) {
var Notes = TransParsers.Mastodon.Status(Res.responseJson);
var Notes = ApiTransform(Res.responseJson, 'Mastodon', 'Note');
LogDebug(Notes, 'l');
Tasker[Res.Proc[0]].Return(Notes);
};
@ -196,15 +196,22 @@ PlazasView.innerHTML = `
</li>
</ul>
</div>
<div>
<h3>Categories</h3>
<ul>
<li>Testing</li>
<li>#fediverse</li>
</ul>
</div>
`;
*/
function ComposeNote() {
var Window = MakeWindow();
Window.innerHTML += `
<h2>Compose</h2>
<textarea style="width: 100%; height: 20em;"></textarea>
<p>
<button onclick="PostNote(this.parentNode.parentNode.querySelector('textarea').value);">Note!</button>
</p>
`;
};
function PostNote(Text) {
Obj = ExtrimObj(ApiSchema.Note);
};
DoAsync(FetchFeatured, FillFeatured);
CoverView.remove();

View File

@ -1,3 +1,10 @@
var Strings = {
Back: {
en: "Back",
it: "Indietro",
},
Note: {
en: "Note",
it: "Nota",
},
};

View File

@ -16,6 +16,10 @@ img, video {
max-width: 100%;
}
#Bottom > button {
height: 100%;
}
#Root {
/*margin-bottom: 2em;*/
}

View File

@ -28,6 +28,14 @@ function CopyObj(Obj) {
return JSON.parse(JSON.stringify(Obj));
};
function ExtrimObj(Obj) {
Obj = CopyObj(Obj);
Object.keys(Obj).forEach(function(Key){
Obj[Key] = undefined;
});
return Obj;
};
function B64Obj(Obj) {
return btoa(JSON.stringify(Obj));
};
@ -81,6 +89,7 @@ function JsonTransformCycleA(TreeOld, SchemaCurr, SchemaRoot) {
});
return TreeNew;
};
function JsonTransformB(TreesOld, SchemaNew, NodeNew, TypeOld) {
if (Array.isArray(TreesOld)) {
var ListNew = [];
@ -99,10 +108,14 @@ function JsonTransformCycleB(TreeOld, SchemaNew, NodeNew, TypeOld) {
var KeyOld = TreeNew[KeyNew][TypeOld];
var ObjOld = TreeOld[KeyOld];
if (IsObj(KeyOld)) {
// Deep nested children in TreeOld
// Object in SchemaNew / Deep nested children in TreeOld
Object.keys(KeyOld).forEach(function(KeyObj){
if (KeyObj === '__Eval__') {
eval(KeyOld[KeyObj]);
};
});
} else {
// Direct children in TreeOld
// Value in SchemaNew / Direct children in TreeOld
if (IsObj(ObjOld)) {
TreeNew[KeyNew] = JsonTransformB(ObjOld, SchemaNew, SchemaNew[KeyNew], TypeOld);
} else {
@ -111,5 +124,6 @@ function JsonTransformCycleB(TreeOld, SchemaNew, NodeNew, TypeOld) {
};
};
});
TreeNew.__TreeOld__ = TreeOld;
return TreeNew;
};