Get account data into ap_object and remote text template for owner/actor, continue s/ap_activity/ap_object/
parent
aca54e746f
commit
ddc026cb06
@ -1 +1 @@
|
||||
Subproject commit c8834fd690a5803ab6773045f5042e8ae53204fe
|
||||
Subproject commit d1ca725373342a37aecaa56f88c463057807e613
|
@ -0,0 +1,37 @@
|
||||
#include "model/ap/activity.h"
|
||||
|
||||
#define OBJ_TYPE struct ap_object
|
||||
static struct json_object_field capabilities_layout[] = {
|
||||
{
|
||||
.key = "acceptsChatMessages",
|
||||
.offset = offsetof( OBJ_TYPE, capabilities.accepts_chat_messages ),
|
||||
.required = false,
|
||||
.always_write = true,
|
||||
.type = &json_field_bool,
|
||||
},
|
||||
JSON_FIELD_END,
|
||||
};
|
||||
#undef OBJ_TYPE
|
||||
|
||||
static bool capabilities_reader( struct json_pull_parser* jpp, void* field_data, struct json_object_field* layout_field_data )
|
||||
{
|
||||
struct ap_object* o = field_data;
|
||||
o->capabilities.show = true;
|
||||
return json_read_object_layout( jpp, capabilities_layout, field_data );
|
||||
}
|
||||
|
||||
static bool capabilities_writer( struct json_writer* jw, const char* field_name, void* field_data, struct json_object_field* layout_field_data )
|
||||
{
|
||||
struct ap_object* o = field_data;
|
||||
if( !o->capabilities.show ) { return false; }
|
||||
write:
|
||||
json_write_field_name(jw,field_name);
|
||||
json_write_pretty_object_layout( jw, capabilities_layout, field_data );
|
||||
return true;
|
||||
}
|
||||
|
||||
struct json_field_type capabilities_type = {
|
||||
.reader = capabilities_reader,
|
||||
.writer = capabilities_writer,
|
||||
.layout = capabilities_layout,
|
||||
};
|
@ -0,0 +1,30 @@
|
||||
#include "model/ap/activity.h"
|
||||
|
||||
#define OBJ_TYPE struct ap_object
|
||||
static struct json_object_field endpoints_layout[] = {
|
||||
{
|
||||
.key = "sharedInbox",
|
||||
.offset = offsetof( OBJ_TYPE, endpoints.shared_inbox ),
|
||||
.required = false,
|
||||
.type = &json_field_string,
|
||||
},
|
||||
JSON_FIELD_END,
|
||||
};
|
||||
#undef OBJ_TYPE
|
||||
|
||||
static bool endpoints_writer( struct json_writer* jw, const char* field_name, void* field_data, struct json_object_field* layout_field_data )
|
||||
{
|
||||
struct ap_object* o = field_data;
|
||||
if( o->endpoints.shared_inbox ) { goto write; }
|
||||
return false;
|
||||
write:
|
||||
json_write_field_name(jw,field_name);
|
||||
json_write_pretty_object_layout( jw, endpoints_layout, o );
|
||||
return true;
|
||||
}
|
||||
|
||||
struct json_field_type endpoints_type = {
|
||||
.reader = json_field_object_composite_reader,
|
||||
.writer = endpoints_writer,
|
||||
.layout = endpoints_layout,
|
||||
};
|
@ -0,0 +1,30 @@
|
||||
#include "model/ap/activity.h"
|
||||
|
||||
#define OBJ_TYPE struct ap_object
|
||||
static struct json_object_field image_layout[] = {
|
||||
JSON_FIELD_FIXED_STRING( type, "Image", true ),
|
||||
{
|
||||
.key = "url",
|
||||
.offset = 0,
|
||||
.required = true,
|
||||
.type = &json_field_string,
|
||||
},
|
||||
JSON_FIELD_END,
|
||||
};
|
||||
#undef OBJ_TYPE
|
||||
|
||||
bool image_writer( struct json_writer* jw, const char* field_name, void* field_data, struct json_object_field* layout_field_data )
|
||||
{
|
||||
char** avatar = field_data;
|
||||
if( !*avatar ) { return false; }
|
||||
write:
|
||||
json_write_field_name(jw,field_name);
|
||||
json_write_pretty_object_layout( jw, image_layout, avatar );
|
||||
return true;
|
||||
}
|
||||
|
||||
struct json_field_type image_type = {
|
||||
.reader = json_field_object_composite_reader,
|
||||
.writer = image_writer,
|
||||
.layout = image_layout,
|
||||
};
|
@ -1,3 +0,0 @@
|
||||
%( view_begin_layout(f,title); )
|
||||
<h1>%s{ account->display_name }</h1>
|
||||
%( view_end_layout(f); )
|
@ -1,53 +0,0 @@
|
||||
{
|
||||
"@context": [
|
||||
"https://www.w3.org/ns/activitystreams",
|
||||
{"@language":"und"}
|
||||
],
|
||||
"alsoKnownAs":[],
|
||||
"attachment":[
|
||||
{
|
||||
"name":"blog",
|
||||
"type":"PropertyValue",
|
||||
"value":"<a href=\"http://blog.polaris-1.work\" rel=\"ugc\">blog.polaris-1.work</a>"
|
||||
},
|
||||
{
|
||||
"name":"git repo",
|
||||
"type":"PropertyValue",
|
||||
"value":"<a href=\"https://gitea.polaris-1.work/\" rel=\"ugc\">https://gitea.polaris-1.work/</a>"
|
||||
}
|
||||
],
|
||||
"capabilities":{
|
||||
"acceptsChatMessages":false
|
||||
},
|
||||
"discoverable":false,
|
||||
"endpoints":{
|
||||
"sharedInbox":"https://%s{g_server_name}/inbox"
|
||||
},
|
||||
"featured":"https://%s{g_server_name}/owner/collections/featured",
|
||||
"followers":"https://%s{g_server_name}/owner/followers",
|
||||
"following":"https://%s{g_server_name}/owner/following",
|
||||
"icon":{
|
||||
"type":"Image",
|
||||
"url":"https://pl.polaris-1.work/media/167d2f4b1176e30dffcfe29b25faddd5a2336d3c1b2baf2bc337101e29f7d48f.blob"
|
||||
},
|
||||
"id": "https://%s{g_server_name}/owner/actor",
|
||||
"image":{
|
||||
"type":"Image",
|
||||
"url":"https://pl.polaris-1.work/media/8374fc3fece3646babd9d160e5f0b41231950b706f51de964e9dfb77157c7f6b.png"
|
||||
},
|
||||
"inbox":"https://%s{g_server_name}/inbox",
|
||||
"manuallyApprovesFollowers":false,
|
||||
"name":"%s{owner_account->display_name}",
|
||||
"outbox":"https://%s{g_server_name}/outbox",
|
||||
"preferredUsername":"%s{owner_account->handle}",
|
||||
"publicKey":{
|
||||
"id":"https://%s{g_server_name}/owner/actor#main-key",
|
||||
"owner":"https://%s{g_server_name}/owner/actor",
|
||||
"publicKeyPem":"%( write_public_key(f); )"
|
||||
},
|
||||
"summary":"",
|
||||
"tag":[
|
||||
],
|
||||
"type":"Person",
|
||||
"url":"https://%s{g_server_name}/owner"
|
||||
}
|
Loading…
Reference in new issue