use JSON_TYPE_* enum - frontends - front-ends for some sites (experiment)
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit e8fb7f182b86a5d29310497d145f1dba48d3e7a2
(DIR) parent a5e2f07cb75a19578454e096f2c9f77cebc30084
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Wed, 30 Mar 2022 00:02:27 +0200
use JSON_TYPE_* enum
Diffstat:
M reddit/reddit.c | 40 ++++++++++++++++----------------
M youtube/youtube.c | 70 ++++++++++++++++----------------
2 files changed, 55 insertions(+), 55 deletions(-)
---
(DIR) diff --git a/reddit/reddit.c b/reddit/reddit.c
@@ -88,9 +88,9 @@ reddit_list_processnode(struct json_node *nodes, size_t depth, const char *value
struct tm *tm;
if (depth == 3 &&
- nodes[0].type == TYPE_OBJECT &&
- nodes[1].type == TYPE_OBJECT &&
- nodes[2].type == TYPE_STRING &&
+ nodes[0].type == JSON_TYPE_OBJECT &&
+ nodes[1].type == JSON_TYPE_OBJECT &&
+ nodes[2].type == JSON_TYPE_STRING &&
!strcmp(nodes[0].name, "") &&
!strcmp(nodes[1].name, "data")) {
if (!strcmp(nodes[2].name, "before")) {
@@ -105,11 +105,11 @@ reddit_list_processnode(struct json_node *nodes, size_t depth, const char *value
/* new item */
if (depth == 5 &&
- nodes[0].type == TYPE_OBJECT &&
- nodes[1].type == TYPE_OBJECT &&
- nodes[2].type == TYPE_ARRAY &&
- nodes[3].type == TYPE_OBJECT &&
- nodes[4].type == TYPE_OBJECT &&
+ nodes[0].type == JSON_TYPE_OBJECT &&
+ nodes[1].type == JSON_TYPE_OBJECT &&
+ nodes[2].type == JSON_TYPE_ARRAY &&
+ nodes[3].type == JSON_TYPE_OBJECT &&
+ nodes[4].type == JSON_TYPE_OBJECT &&
!strcmp(nodes[0].name, "") &&
!strcmp(nodes[1].name, "data") &&
!strcmp(nodes[2].name, "children") &&
@@ -124,11 +124,11 @@ reddit_list_processnode(struct json_node *nodes, size_t depth, const char *value
item = &(r->items[r->nitems - 1]);
if (depth >= 5 &&
- nodes[0].type == TYPE_OBJECT &&
- nodes[1].type == TYPE_OBJECT &&
- nodes[2].type == TYPE_ARRAY &&
- nodes[3].type == TYPE_OBJECT &&
- nodes[4].type == TYPE_OBJECT &&
+ nodes[0].type == JSON_TYPE_OBJECT &&
+ nodes[1].type == JSON_TYPE_OBJECT &&
+ nodes[2].type == JSON_TYPE_ARRAY &&
+ nodes[3].type == JSON_TYPE_OBJECT &&
+ nodes[4].type == JSON_TYPE_OBJECT &&
!strcmp(nodes[0].name, "") &&
!strcmp(nodes[1].name, "data") &&
!strcmp(nodes[2].name, "children") &&
@@ -137,11 +137,11 @@ reddit_list_processnode(struct json_node *nodes, size_t depth, const char *value
if (depth == 6) {
node = &nodes[5];
switch (node->type) {
- case TYPE_BOOL:
+ case JSON_TYPE_BOOL:
if (!strcmp(node->name, "is_video"))
item->is_video = value[0] == 't';
break;
- case TYPE_NUMBER:
+ case JSON_TYPE_NUMBER:
if (!strcmp(node->name, "ups"))
item->ups = strtol(value, NULL, 10);
else if (!strcmp(node->name, "downs"))
@@ -155,7 +155,7 @@ reddit_list_processnode(struct json_node *nodes, size_t depth, const char *value
memcpy(&(item->created_tm), tm, sizeof(*tm));
}
break;
- case TYPE_STRING:
+ case JSON_TYPE_STRING:
if (!strcmp(node->name, "name"))
strlcpy(item->name, value, sizeof(item->name));
else if (!strcmp(node->name, "title"))
@@ -179,21 +179,21 @@ reddit_list_processnode(struct json_node *nodes, size_t depth, const char *value
break;
}
} else if (depth == 8 &&
- nodes[5].type == TYPE_OBJECT &&
- nodes[6].type == TYPE_OBJECT &&
+ nodes[5].type == JSON_TYPE_OBJECT &&
+ nodes[6].type == JSON_TYPE_OBJECT &&
(!strcmp(nodes[5].name, "media") || !strcmp(nodes[5].name, "secure_media")) &&
!strcmp(nodes[6].name, "reddit_video")) {
node = &nodes[7];
switch (node->type) {
- case TYPE_NUMBER:
+ case JSON_TYPE_NUMBER:
/* prefer "insecure" */
if (nodes[5].name[0] == 's' && item->duration)
break;
if (!strcmp(node->name, "duration"))
item->duration = strtol(value, NULL, 10);
break;
- case TYPE_STRING:
+ case JSON_TYPE_STRING:
/* prefer "insecure" */
if (nodes[5].name[0] == 's' && item->dash_url[0])
break;
(DIR) diff --git a/youtube/youtube.c b/youtube/youtube.c
@@ -90,9 +90,9 @@ processnode(struct json_node *nodes, size_t depth, const char *value,
/* new item, structures can be very deep, just check the end for:
(items|contents)[].videoRenderer objects */
if (depth >= 3 &&
- nodes[depth - 3].type == TYPE_ARRAY &&
- nodes[depth - 2].type == TYPE_OBJECT &&
- nodes[depth - 1].type == TYPE_OBJECT &&
+ nodes[depth - 3].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 2].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 1].type == JSON_TYPE_OBJECT &&
(!strcmp(nodes[depth - 3].name, "items") ||
!strcmp(nodes[depth - 3].name, "contents")) &&
!strcmp(nodes[depth - 1].name, "videoRenderer")) {
@@ -105,10 +105,10 @@ processnode(struct json_node *nodes, size_t depth, const char *value,
item = &(r->items[r->nitems - 1]);
if (depth >= 4 &&
- nodes[depth - 4].type == TYPE_ARRAY &&
- nodes[depth - 3].type == TYPE_OBJECT &&
- nodes[depth - 2].type == TYPE_OBJECT &&
- nodes[depth - 1].type == TYPE_STRING &&
+ nodes[depth - 4].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 3].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 2].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 1].type == JSON_TYPE_STRING &&
(!strcmp(nodes[depth - 4].name, "items") ||
!strcmp(nodes[depth - 4].name, "contents")) &&
!strcmp(nodes[depth - 2].name, "videoRenderer") &&
@@ -117,13 +117,13 @@ processnode(struct json_node *nodes, size_t depth, const char *value,
}
if (depth >= 7 &&
- nodes[depth - 7].type == TYPE_ARRAY &&
- nodes[depth - 6].type == TYPE_OBJECT &&
- nodes[depth - 5].type == TYPE_OBJECT &&
- nodes[depth - 4].type == TYPE_OBJECT &&
- nodes[depth - 3].type == TYPE_ARRAY &&
- nodes[depth - 2].type == TYPE_OBJECT &&
- nodes[depth - 1].type == TYPE_STRING &&
+ nodes[depth - 7].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 6].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 5].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 4].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 3].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 2].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 1].type == JSON_TYPE_STRING &&
(!strcmp(nodes[depth - 7].name, "items") ||
!strcmp(nodes[depth - 7].name, "contents")) &&
!strcmp(nodes[depth - 5].name, "videoRenderer") &&
@@ -135,11 +135,11 @@ processnode(struct json_node *nodes, size_t depth, const char *value,
}
if (depth >= 5 &&
- nodes[depth - 5].type == TYPE_ARRAY &&
- nodes[depth - 4].type == TYPE_OBJECT &&
- nodes[depth - 3].type == TYPE_OBJECT &&
- nodes[depth - 2].type == TYPE_OBJECT &&
- nodes[depth - 1].type == TYPE_STRING &&
+ nodes[depth - 5].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 4].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 3].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 2].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 1].type == JSON_TYPE_STRING &&
(!strcmp(nodes[depth - 5].name, "items") ||
!strcmp(nodes[depth - 5].name, "contents")) &&
!strcmp(nodes[depth - 3].name, "videoRenderer") &&
@@ -157,15 +157,15 @@ processnode(struct json_node *nodes, size_t depth, const char *value,
}
if (depth >= 9 &&
- nodes[depth - 9].type == TYPE_ARRAY &&
- nodes[depth - 8].type == TYPE_OBJECT &&
- nodes[depth - 7].type == TYPE_OBJECT &&
- nodes[depth - 6].type == TYPE_OBJECT &&
- nodes[depth - 5].type == TYPE_ARRAY &&
- nodes[depth - 4].type == TYPE_OBJECT &&
- nodes[depth - 3].type == TYPE_OBJECT &&
- nodes[depth - 2].type == TYPE_OBJECT &&
- nodes[depth - 1].type == TYPE_STRING &&
+ nodes[depth - 9].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 8].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 7].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 6].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 5].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 4].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 3].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 2].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 1].type == JSON_TYPE_STRING &&
(!strcmp(nodes[depth - 9].name, "items") ||
!strcmp(nodes[depth - 9].name, "contents")) &&
!strcmp(nodes[depth - 7].name, "videoRenderer") &&
@@ -179,13 +179,13 @@ processnode(struct json_node *nodes, size_t depth, const char *value,
}
if (depth >= 7 &&
- nodes[depth - 7].type == TYPE_ARRAY &&
- nodes[depth - 6].type == TYPE_OBJECT &&
- nodes[depth - 5].type == TYPE_OBJECT &&
- nodes[depth - 4].type == TYPE_OBJECT &&
- nodes[depth - 3].type == TYPE_ARRAY &&
- nodes[depth - 2].type == TYPE_OBJECT &&
- nodes[depth - 1].type == TYPE_STRING &&
+ nodes[depth - 7].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 6].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 5].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 4].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 3].type == JSON_TYPE_ARRAY &&
+ nodes[depth - 2].type == JSON_TYPE_OBJECT &&
+ nodes[depth - 1].type == JSON_TYPE_STRING &&
(!strcmp(nodes[depth - 7].name, "items") ||
!strcmp(nodes[depth - 7].name, "contents")) &&
!strcmp(nodes[depth - 5].name, "videoRenderer") &&