diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-07-15 06:09:50 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-07-15 07:46:57 +0200 |
commit | 35aca1f0582c43b5f6818c8fc00b924247e45881 (patch) | |
tree | 66d5e8f7954481863ba6d79db22a6df32f78af69 /src/html.c | |
parent | 5b20475c7faf89bbabc9eab43c7e5622317a18fc (diff) |
Implement rss sync
Diffstat (limited to 'src/html.c')
-rw-r--r-- | src/html.c | 17 |
1 files changed, 5 insertions, 12 deletions
@@ -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) { |