Cleanup arguments
FossilOrigin-Name: e3a7340b33ff1af23c7f161ea5b1ca10c161e1522e9989bcb355006f38206a04
This commit is contained in:
parent
280aa9b9bd
commit
1fa14898b0
6 changed files with 67 additions and 90 deletions
|
@ -15,7 +15,7 @@
|
|||
|
||||
#ifndef MASTODONT_ARGUMENTS_H
|
||||
#define MASTODONT_ARGUMENTS_H
|
||||
|
||||
#include "mastodont_notif_types.h"
|
||||
/*
|
||||
* Originally, when the arguments were being designed for each function,
|
||||
* I found that many REST operations tended to result similar variable names
|
||||
|
@ -65,6 +65,12 @@ struct mstdnt_args
|
|||
char* visibility;
|
||||
int remote;
|
||||
int local;
|
||||
char** exclude_types;
|
||||
size_t exclude_types_len;
|
||||
char* account_id;
|
||||
char** exclude_visibilities;
|
||||
size_t exclude_visibilities_len;
|
||||
enum mstdnt_notification_type* include_types;
|
||||
};
|
||||
|
||||
#endif /* MASTODONT_ARGUMENTS_H */
|
||||
|
|
33
include/mastodont_notif_types.h
Normal file
33
include/mastodont_notif_types.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation, either version 3 of the License, or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef MASTODONT_NOTIF_TYPES
|
||||
#define MASTODONT_NOTIF_TYPES
|
||||
|
||||
enum mstdnt_notification_type
|
||||
{
|
||||
MSTDNT_NOTIFICATION_FOLLOW,
|
||||
MSTDNT_NOTIFICATION_FOLLOW_REQUEST,
|
||||
MSTDNT_NOTIFICATION_MENTION,
|
||||
MSTDNT_NOTIFICATION_REBLOG,
|
||||
MSTDNT_NOTIFICATION_FAVOURITE,
|
||||
MSTDNT_NOTIFICATION_POLL,
|
||||
MSTDNT_NOTIFICATION_STATUS,
|
||||
MSTDNT_NOTIFICATION_EMOJI_REACT,
|
||||
MSTDNT_NOTIFICATION_CHAT_MENTION,
|
||||
MSTDNT_NOTIFICATION_REPORT
|
||||
};
|
||||
|
||||
#endif /* MASTODONT_NOTIF_TYPES */
|
|
@ -20,20 +20,6 @@
|
|||
#include "mastodont_status.h"
|
||||
#include <cjson/cJSON.h>
|
||||
|
||||
enum mstdnt_notification_type
|
||||
{
|
||||
MSTDNT_NOTIFICATION_FOLLOW,
|
||||
MSTDNT_NOTIFICATION_FOLLOW_REQUEST,
|
||||
MSTDNT_NOTIFICATION_MENTION,
|
||||
MSTDNT_NOTIFICATION_REBLOG,
|
||||
MSTDNT_NOTIFICATION_FAVOURITE,
|
||||
MSTDNT_NOTIFICATION_POLL,
|
||||
MSTDNT_NOTIFICATION_STATUS,
|
||||
MSTDNT_NOTIFICATION_EMOJI_REACT,
|
||||
MSTDNT_NOTIFICATION_CHAT_MENTION,
|
||||
MSTDNT_NOTIFICATION_REPORT
|
||||
};
|
||||
|
||||
struct mstdnt_notification
|
||||
{
|
||||
char* id;
|
||||
|
@ -65,7 +51,7 @@ int mastodont_get_notifications(mastodont_t* data,
|
|||
struct mstdnt_notification** notifs,
|
||||
size_t* size);
|
||||
|
||||
int mstdnt_load_account_from_json(struct mstdnt_notification* notif, cJSON* js);
|
||||
int mstdnt_load_notification_from_json(struct mstdnt_notification* notif, cJSON* js);
|
||||
void mstdnt_cleanup_notifications(struct mstdnt_notification* notif, size_t notif_len);
|
||||
void mstdnt_cleanup_notification(struct mstdnt_notification* notif);
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ static int mstdnt_read_token_result(struct mstdnt_storage* storage,
|
|||
|
||||
|
||||
int mastodont_register_app(mastodont_t* data,
|
||||
struct mstdnt_app_register_args* args,
|
||||
struct mstdnt_args* args,
|
||||
struct mstdnt_storage* storage,
|
||||
struct mstdnt_app* app)
|
||||
{
|
||||
|
@ -84,15 +84,6 @@ int mastodont_register_app(mastodont_t* data,
|
|||
struct mstdnt_fetch_results results = { 0 };
|
||||
|
||||
/* Default args */
|
||||
struct mstdnt_app_register_args _args;
|
||||
if (args == NULL)
|
||||
{
|
||||
_args.client_name = "mastodont-c"; /* Defaults to false */
|
||||
_args.redirect_uris = NULL;
|
||||
_args.scopes = NULL;
|
||||
_args.website = NULL;
|
||||
args = &_args;
|
||||
}
|
||||
storage->needs_cleanup = 0;
|
||||
|
||||
union param_value u_client_name, u_redirect_uris,
|
||||
|
@ -137,7 +128,7 @@ cleanup:
|
|||
|
||||
|
||||
int mastodont_obtain_oauth_token(mastodont_t* data,
|
||||
struct mstdnt_oauth_token_args* args,
|
||||
struct mstdnt_args* args,
|
||||
struct mstdnt_storage* storage,
|
||||
struct mstdnt_oauth_token* token)
|
||||
{
|
||||
|
@ -145,19 +136,6 @@ int mastodont_obtain_oauth_token(mastodont_t* data,
|
|||
struct mstdnt_fetch_results results = { 0 };
|
||||
|
||||
/* Default args */
|
||||
struct mstdnt_oauth_token_args _args;
|
||||
if (args == NULL)
|
||||
{
|
||||
_args.grant_type = NULL;
|
||||
_args.client_id = NULL;
|
||||
_args.client_secret = NULL;
|
||||
_args.redirect_uri = NULL;
|
||||
_args.scope = NULL;
|
||||
_args.code = NULL;
|
||||
_args.username = NULL;
|
||||
_args.password = NULL;
|
||||
args = &_args;
|
||||
}
|
||||
storage->needs_cleanup = 0;
|
||||
|
||||
union param_value u_grant_type, u_client_id,
|
||||
|
|
|
@ -13,7 +13,11 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <mastodont_notification.h>
|
||||
#include <mastodont_fetch.h>
|
||||
#include <mastodont_json_helper.h>
|
||||
#include <mastodont_query.h>
|
||||
|
||||
int mastodont_get_notifications(mastodont_t* data,
|
||||
struct mstdnt_get_notifications_args* args,
|
||||
|
@ -27,20 +31,24 @@ int mastodont_get_notifications(mastodont_t* data,
|
|||
/* Default args */
|
||||
storage->needs_cleanup = 0;
|
||||
|
||||
union param_value
|
||||
u_account_id = args->account_id,
|
||||
u_with_muted = args->with_muted,
|
||||
u_max_id = args->max_id,
|
||||
u_min_id = args->min_id,
|
||||
u_since_id = args->since_id,
|
||||
u_offset = args->offset,
|
||||
u_limit = args->limit;
|
||||
union param_value u_account_id, u_with_muted, u_max_id,
|
||||
u_min_id, u_since_id, u_offset, u_limit;
|
||||
u_account_id.s = args->account_id;
|
||||
u_with_muted.i = args->with_muted;
|
||||
u_max_id.s = args->max_id;
|
||||
u_min_id.s = args->min_id;
|
||||
u_since_id.s = args->since_id;
|
||||
u_offset.i = args->offset;
|
||||
u_limit.i = args->limit;
|
||||
|
||||
struct _mstdnt_query_param params[] = {
|
||||
{ _MSTDNT_QUERY_STRING, "client_name", u_client_name },
|
||||
{ _MSTDNT_QUERY_STRING, "redirect_uris", u_redirect_uris },
|
||||
{ _MSTDNT_QUERY_STRING, "scopes", u_scopes },
|
||||
{ _MSTDNT_QUERY_STRING, "website", u_website },
|
||||
{ _MSTDNT_QUERY_STRING, "account_id", u_account_id },
|
||||
{ _MSTDNT_QUERY_INT, "with_muted", u_with_muted },
|
||||
{ _MSTDNT_QUERY_STRING, "max_id", u_max_id },
|
||||
{ _MSTDNT_QUERY_STRING, "min_id", u_min_id },
|
||||
{ _MSTDNT_QUERY_STRING, "since_id", u_since_id },
|
||||
{ _MSTDNT_QUERY_INT, "offset", u_offset },
|
||||
{ _MSTDNT_QUERY_INT, "limit", u_limit },
|
||||
};
|
||||
|
||||
char* post = _mstdnt_query_string(NULL, params, _mstdnt_arr_len(params));
|
||||
|
@ -60,7 +68,7 @@ int mastodont_get_notifications(mastodont_t* data,
|
|||
}
|
||||
*/
|
||||
|
||||
res = mstdnt_read_app_result(storage, &results, app);
|
||||
/* res = mstdnt_read_app_result(storage, &results, app);*/
|
||||
|
||||
cleanup_fetch:
|
||||
mastodont_fetch_results_cleanup(&results);
|
||||
|
@ -69,7 +77,7 @@ cleanup:
|
|||
return res;
|
||||
}
|
||||
|
||||
int mstdnt_load_account_from_json(struct mstdnt_notification* notif, cJSON* js)
|
||||
int mstdnt_load_notification_from_json(struct mstdnt_notification* notif, cJSON* js)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
38
src/status.c
38
src/status.c
|
@ -110,7 +110,7 @@ int mstdnt_load_statuses_from_result(struct mstdnt_status* statuses[],
|
|||
|
||||
int mastodont_account_statuses(mastodont_t* data,
|
||||
char* id,
|
||||
struct mstdnt_account_statuses_args* args,
|
||||
struct mstdnt_args* args,
|
||||
struct mstdnt_storage* storage,
|
||||
struct mstdnt_status* statuses[],
|
||||
size_t* size)
|
||||
|
@ -121,22 +121,6 @@ int mastodont_account_statuses(mastodont_t* data,
|
|||
snprintf(url, MSTDNT_URLSIZE, "api/v1/accounts/%s/statuses", id);
|
||||
|
||||
/* Default args */
|
||||
struct mstdnt_account_statuses_args _args;
|
||||
if (args == NULL)
|
||||
{
|
||||
_args.pinned = 0;
|
||||
_args.tagged = NULL;
|
||||
_args.with_muted = 1;
|
||||
_args.offset = 0;
|
||||
_args.exclude_reblogs = 0;
|
||||
_args.exclude_replies = 0;
|
||||
_args.only_media = 0;
|
||||
_args.max_id = NULL;
|
||||
_args.since_id = NULL;
|
||||
_args.min_id = NULL;
|
||||
_args.limit = 20;
|
||||
args = &_args;
|
||||
}
|
||||
storage->needs_cleanup = 0;
|
||||
|
||||
if (mastodont_fetch_curl(data, url, &results, CURLOPT_HTTPGET) != CURLE_OK)
|
||||
|
@ -150,7 +134,7 @@ int mastodont_account_statuses(mastodont_t* data,
|
|||
}
|
||||
|
||||
int mastodont_create_status(mastodont_t* data,
|
||||
struct mstdnt_create_status_args* args,
|
||||
struct mstdnt_args* args,
|
||||
struct mstdnt_storage* storage)
|
||||
{
|
||||
int res = 0;
|
||||
|
@ -158,24 +142,6 @@ int mastodont_create_status(mastodont_t* data,
|
|||
struct mstdnt_fetch_results results = { 0 };
|
||||
|
||||
/* Default args */
|
||||
struct mstdnt_create_status_args _args;
|
||||
if (args == NULL)
|
||||
{
|
||||
_args.content_type = "html"; /* TODO */
|
||||
_args.expires_in = 0;
|
||||
_args.in_reply_to_conversation_id = NULL;
|
||||
_args.in_reply_to_id = NULL;
|
||||
_args.language = NULL;
|
||||
_args.media_ids = NULL;
|
||||
_args.poll = NULL;
|
||||
_args.preview = 0;
|
||||
_args.scheduled_at = NULL;
|
||||
_args.sensitive = 0;
|
||||
_args.spoiler_text = NULL;
|
||||
_args.status = NULL;
|
||||
_args.visibility = "public";
|
||||
args = &_args;
|
||||
}
|
||||
storage->needs_cleanup = 0;
|
||||
|
||||
union param_value u_content_type, u_expires_in,
|
||||
|
|
Loading…
Reference in a new issue