ref: 6c7016b5b7119d833af543fe5ad707b1b0db5c7e
parent: d7047b022e63c014469877be1faa54a977e51e89
author: Julien Blanchard <[email protected]>
date: Fri Mar 31 13:48:23 EDT 2023
Use esmprint, move getjsonkey to util
--- a/masto9.c
+++ b/masto9.c
@@ -19,15 +19,6 @@
return p;
}
-static JSON *
-getjsonkey(JSON *obj, char *key)
-{
- JSON *value = jsonbyname(obj, key);
- if (value == nil)
- sysfatal("jsonbyname: key %s not found in %J", key, obj);
- return value;
-}
-
void
gethome(char *token, char *host, Toot toots[], char *after)
{
@@ -35,9 +26,8 @@
char *endpoint;
int i = 0;
- endpoint = emalloc(sizeof(char)*1024);
if(after != nil) {
- snprintf(endpoint, 1024, "timelines/home?max_id=%s", after);
+ endpoint = esmprint("timelines/home?max_id=%s", after);
} else {
endpoint = "timelines/home";
}
@@ -108,7 +98,7 @@
}
void
-notifications(char *token, char *host, Notification notifs[])
+getnotifications(char *token, char *host, Notification notifs[])
{
JSON *obj, *id, *content, *display_name, *handle, *type, *account, *status;
int i = 0;
@@ -152,8 +142,8 @@
void
posttoot(char *token, char *host, char *text)
{
- char url[MAXURL];
- snprintf(url, MAXURL, "https://%s/api/v1/statuses", host);
+ char *url;
+ url = esmprint("https://%s/api/v1/statuses", host);
httppost(token, url, concat("status=", text));
print("Posted:\n %s\n", text);
@@ -181,8 +171,8 @@
void
perform(char *token, char *host, char *id, char *action)
{
- char url[MAXURL];
- snprintf(url, sizeof(url), "%s/api/v1/statuses/%s/%s", host, id, action);
+ char *url;
+ url = esmprint("%s/api/v1/statuses/%s/%s", host, id, action);
httppost(token, url, "");
}
@@ -217,9 +207,9 @@
void
reply(char *token, char *host, char *id)
{
- char content[TOOTBUFSIZE];
+ char *content;
int fd, wait;
- char *s, *t, *u, url[MAXURL];
+ char *s, *t, *u, *url;
Biobuf body;
wait = 0;
@@ -233,11 +223,11 @@
print("Reply to %s\n", u);
Binit(&body, 0, OREAD);
if((s = Brdstr(&body, 0, 1)) != nil)
- t = smprint("%s", s);
+ t = esmprint("%s", s);
free(s);
if(t != nil){
- snprintf(url, MAXURL, "%s/api/v1/statuses", host);
- snprintf(content, TOOTBUFSIZE, "in_reply_to_id=%s&status=@%s %s", id, u, t);
+ url = esmprint("%s/api/v1/statuses", host);
+ content = esmprint("in_reply_to_id=%s&status=@%s %s", id, u, t);
httppost(token, url, content);
print("\nReply sent.\n");
@@ -299,9 +289,9 @@
mastodonget(char *token, char *host, char *endpoint)
{
JSON *obj;
- char *response, url[MAXURL];
+ char *response, *url;
- snprintf(url, MAXURL, "https://%s/api/v1/%s", host, endpoint);
+ url = esmprint("https://%s/api/v1/%s", host, endpoint);
response = httpget(token, url);
obj = jsonparse(response);
@@ -327,8 +317,7 @@
Toot toot = toots[i];
char *username;
- username = emalloc(sizeof(char)*256);
- snprintf(username, 256, "%s (%s)", toot.display_name, toot.handle);
+ username = esmprint("%s (%s)", toot.display_name, toot.handle);
Bprint(&out, "\n\n——————————\n");
if(toot.reblogged == 1) {
@@ -361,8 +350,7 @@
Notification notif = notifs[i];
char *username;
- username = emalloc(sizeof(char)*256);
- snprintf(username, 256, "%s (%s)", notif.display_name, notif.handle);
+ username = esmprint("%s (%s)", notif.display_name, notif.handle);
if (strcmp(notif.type, "reblog") == 0) {
Bprint(&out, "\n⊙ %s retooted\n %s", username, fmthtml(cleanup(notif.content)));
@@ -427,7 +415,7 @@
displaytoots(toots, host);
} else if(strcmp(command, "notifications") == 0) {
Notification notifs[NOTIFSCOUNT];
- notifications(token, host, notifs);
+ getnotifications(token, host, notifs);
displaynotifications(notifs);
}
--- a/masto9.h
+++ b/masto9.h
@@ -51,7 +51,6 @@
/* utils */
char *concat(char *s1, char *s2);
void *emalloc(ulong);
-void *erealloc(void*, ulong);
char *estrdup(char*);
char *estrjoin(char **strings, char *sep);
char *esmprint(char*, ...);
@@ -59,3 +58,4 @@
u32int strhash(char *);
void removesubstring(char *, char *);
void removetag(char *, char *);
+JSON *getjsonkey(JSON *, char *);
--- a/util.c
+++ b/util.c
@@ -41,29 +41,6 @@
return s;
}
-/* char* */
-/* estrjoin(char *s, ...) */
-/* { */
-/* va_list ap; */
-/* char *r, *t, *p, *e; */
-/* int n; */
-
-/* va_start(ap, s); */
-/* n = strlen(s) + 1; */
-/* while((p = va_arg(ap, char*)) != nil) */
-/* n += strlen(p); */
-/* va_end(ap); */
-
-/* r = emalloc(n); */
-/* e = r + n; */
-/* va_start(ap, s); */
-/* t = strecpy(r, e, s); */
-/* while((p = va_arg(ap, char*)) != nil) */
-/* t = strecpy(t, e, p); */
-/* va_end(ap); */
-/* return r; */
-/* } */
-
char *
concat(char *s1, char *s2)
{
@@ -158,4 +135,13 @@
start = strstr(start, tag);
}
+}
+
+JSON *
+getjsonkey(JSON *obj, char *key)
+{
+ JSON *value = jsonbyname(obj, key);
+ if (value == nil)
+ sysfatal("jsonbyname: key %s not found in %J", key, obj);
+ return value;
}