mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-22 13:25:04 +00:00
Merge pull request 'add support for Subway Tooter app' (#111) from pswilde/snac2:master into master
Reviewed-on: https://codeberg.org/grunfink/snac2/pulls/111
This commit is contained in:
commit
8fe76454d3
2 changed files with 31 additions and 0 deletions
8
httpd.c
8
httpd.c
|
@ -223,6 +223,14 @@ int server_get_handler(xs_dict *req, const char *q_path,
|
|||
srv_baseurl);
|
||||
}
|
||||
else
|
||||
if (strcmp(q_path, "/.well-known/host-meta") == 0) {
|
||||
status = 200;
|
||||
*ctype = "application/xrd+xml";
|
||||
*body = xs_str_new("<XRD>"
|
||||
"<Link rel=\"lrdd\" type=\"application/xrd+xml\" template=\"%s/.well-known/webfinger?resource={uri}\"/>"
|
||||
"</XRD>");
|
||||
}
|
||||
else
|
||||
if (strcmp(q_path, "/nodeinfo_2_0") == 0) {
|
||||
status = 200;
|
||||
*ctype = "application/json; charset=utf-8";
|
||||
|
|
23
mastoapi.c
23
mastoapi.c
|
@ -359,6 +359,12 @@ int oauth_post_handler(const xs_dict *req, const char *q_path,
|
|||
}
|
||||
}
|
||||
|
||||
/* no code?
|
||||
I'm not sure of the impacts of this right now, but Subway Tooter does not
|
||||
provide a code so one must be generated */
|
||||
if (xs_is_null(code)){
|
||||
code = random_str();
|
||||
}
|
||||
if (gtype && code && cid && csec && ruri) {
|
||||
xs *app = app_get(cid);
|
||||
|
||||
|
@ -1622,6 +1628,15 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
|
|||
status = 200;
|
||||
}
|
||||
else
|
||||
if (strcmp(cmd, "/v2/filters") == 0) { /** **/
|
||||
/* snac will never have filters
|
||||
* but still, without a v2 endpoint a short delay is introduced
|
||||
* in some apps */
|
||||
*body = xs_dup("[]");
|
||||
*ctype = "application/json";
|
||||
status = 200;
|
||||
}
|
||||
else
|
||||
if (strcmp(cmd, "/v1/favourites") == 0) { /** **/
|
||||
/* snac will never support a list of favourites */
|
||||
*body = xs_dup("[]");
|
||||
|
@ -1990,6 +2005,14 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path,
|
|||
if (!xs_is_null(payload))
|
||||
args = xs_json_loads(payload);
|
||||
}
|
||||
else if (i_ctype && xs_startswith(i_ctype, "application/x-www-form-urlencoded"))
|
||||
{
|
||||
// Some apps send form data instead of json so we should cater for those
|
||||
if (!xs_is_null(payload)) {
|
||||
xs *upl = xs_url_dec(payload);
|
||||
args = xs_url_vars(upl);
|
||||
}
|
||||
}
|
||||
else
|
||||
args = xs_dup(xs_dict_get(req, "p_vars"));
|
||||
|
||||
|
|
Loading…
Reference in a new issue