Internal improvements
This commit is contained in:
parent
0ec5864e54
commit
12d4db5953
|
@ -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: {
|
||||
},
|
||||
};
|
||||
*/
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
var Strings = {
|
||||
|
||||
Back: {
|
||||
en: "Back",
|
||||
it: "Indietro",
|
||||
},
|
||||
Note: {
|
||||
en: "Note",
|
||||
it: "Nota",
|
||||
},
|
||||
};
|
||||
|
|
|
@ -16,6 +16,10 @@ img, video {
|
|||
max-width: 100%;
|
||||
}
|
||||
|
||||
#Bottom > button {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#Root {
|
||||
/*margin-bottom: 2em;*/
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue