aboutsummaryrefslogtreecommitdiff
path: root/src/html.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-07-15 06:09:50 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-15 07:46:57 +0200
commit35aca1f0582c43b5f6818c8fc00b924247e45881 (patch)
tree66d5e8f7954481863ba6d79db22a6df32f78af69 /src/html.c
parent5b20475c7faf89bbabc9eab43c7e5622317a18fc (diff)
Implement rss sync
Diffstat (limited to 'src/html.c')
-rw-r--r--src/html.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/html.c b/src/html.c
index de888a0..02982d6 100644
--- a/src/html.c
+++ b/src/html.c
@@ -11,6 +11,7 @@
#include <libgen.h>
#include <signal.h>
#include <time.h>
+#include <assert.h>
static int str_starts_with(const char *str, int len, const char *substr, int substr_len) {
return len >= substr_len && memcmp(str, substr, substr_len) == 0;
@@ -47,16 +48,6 @@ static int url_extract_domain(const char *url, char *domain, int domain_len) {
return 0;
}
-static struct json_value_s* json_object_get_field_by_name(struct json_object_s *json_obj, const char *name) {
- struct json_object_element_s *obj_element = json_obj->start;
- while(obj_element) {
- if(strcmp(obj_element->name->string, name) == 0)
- return obj_element->value;
- obj_element = obj_element->next;
- }
- return NULL;
-}
-
typedef int (*PluginListCallback)(const char *name, const char *url, void *userdata);
static struct json_value_s* plugin_list(char *plugin_filepath, const char *url, const char *latest, PluginListCallback callback, void *userdata) {
(void)latest;
@@ -80,8 +71,6 @@ static struct json_value_s* plugin_list(char *plugin_filepath, const char *url,
goto err_cleanup;
}
- /*fprintf(stderr, "plugin list: %s\n", (char*)buffer.data);*/
-
struct json_value_s *json_root = json_parse(buffer.data, buffer.size);
if(!json_root) {
fprintf(stderr, "Failed to load plugin %s list output as json\n", basename(plugin_filepath));
@@ -103,6 +92,9 @@ static struct json_value_s* plugin_list(char *plugin_filepath, const char *url,
struct json_value_s *name_json = json_object_get_field_by_name(array_element_value, "name");
struct json_value_s *url_json = json_object_get_field_by_name(array_element_value, "url");
+ if(!name_json || !url_json)
+ continue;
+
struct json_string_s *name_json_str = json_value_as_string(name_json);
struct json_string_s *url_json_str = json_value_as_string(url_json);
if(!name_json_str || !url_json_str)
@@ -241,6 +233,7 @@ int add_html(const char *name, const char *url, char *html_config_dir, char *pro
}
char updated[32];
+ assert(sizeof(time_t) == 4);
sprintf(updated, "%ld", time(NULL));
result = file_overwrite_in_dir(html_tracked_dir, "updated", updated, strlen(updated));
if(result != 0) {