mirror of
https://github.com/WCBROW01/zblock.git
synced 2025-12-12 04:28:07 -05:00
[main.c] Fix feed retrieval code
This commit is contained in:
13
main.c
13
main.c
@ -137,6 +137,7 @@ static void timer_retrieve_feeds(struct discord *client, struct discord_timer *t
|
|||||||
// get our buffer out
|
// get our buffer out
|
||||||
zblock_feed_buffer *feed_buffer;
|
zblock_feed_buffer *feed_buffer;
|
||||||
curl_easy_getinfo(handle, CURLINFO_PRIVATE, &feed_buffer);
|
curl_easy_getinfo(handle, CURLINFO_PRIVATE, &feed_buffer);
|
||||||
|
fclose(feed_buffer->fp); // close the file descriptor for the buffer (also flushes buffer)
|
||||||
if (!msg->data.result) {
|
if (!msg->data.result) {
|
||||||
// hell yeah parse that RSS feed
|
// hell yeah parse that RSS feed
|
||||||
mrss_t *mrss_feed;
|
mrss_t *mrss_feed;
|
||||||
@ -158,7 +159,7 @@ static void timer_retrieve_feeds(struct discord *client, struct discord_timer *t
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (update_pubDate) {
|
if (update_pubDate) {
|
||||||
feed_buffer->info.url = mrss_feed->item->pubDate;
|
feed_buffer->info.last_pubDate = mrss_feed->item->pubDate;
|
||||||
zblock_feed_info_update(database_conn, &feed_buffer->info);
|
zblock_feed_info_update(database_conn, &feed_buffer->info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,19 +169,18 @@ static void timer_retrieve_feeds(struct discord *client, struct discord_timer *t
|
|||||||
log_error("Error parsing feed: %s\n", mrss_strerror(mrss_err));
|
log_error("Error parsing feed: %s\n", mrss_strerror(mrss_err));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log_error("Error downloading RSS feed: %s\n", msg->data.result);
|
log_error("Error downloading RSS feed: %s\n", curl_easy_strerror(msg->data.result));
|
||||||
}
|
}
|
||||||
|
|
||||||
// free our buffers
|
// free our buffers
|
||||||
curl_multi_remove_handle(multi, handle);
|
curl_multi_remove_handle(multi, handle);
|
||||||
curl_easy_cleanup(handle);
|
curl_easy_cleanup(handle);
|
||||||
fclose(feed_buffer->fp);
|
|
||||||
free(feed_buffer->buf);
|
free(feed_buffer->buf);
|
||||||
}
|
}
|
||||||
} while (msg);
|
} while (msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mc && running_handles > 0) {
|
if (!mc && running_handles) {
|
||||||
mc = curl_multi_poll(multi, NULL, 0, 300, NULL);
|
mc = curl_multi_poll(multi, NULL, 0, 300, NULL);
|
||||||
}
|
}
|
||||||
if (mc) {
|
if (mc) {
|
||||||
@ -188,7 +188,9 @@ static void timer_retrieve_feeds(struct discord *client, struct discord_timer *t
|
|||||||
log_fatal("curl_multi_poll(): %s", curl_multi_strerror(mc));
|
log_fatal("curl_multi_poll(): %s", curl_multi_strerror(mc));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} while (running_handles > 0);
|
|
||||||
|
running_handles_prev = running_handles;
|
||||||
|
} while (running_handles);
|
||||||
|
|
||||||
curl_multi_cleanup(multi);
|
curl_multi_cleanup(multi);
|
||||||
|
|
||||||
@ -196,7 +198,6 @@ static void timer_retrieve_feeds(struct discord *client, struct discord_timer *t
|
|||||||
all_done:
|
all_done:
|
||||||
free(feed_list);
|
free(feed_list);
|
||||||
PQclear(database_res);
|
PQclear(database_res);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bot_command_add(struct discord *client, const struct discord_interaction *event) {
|
static void bot_command_add(struct discord *client, const struct discord_interaction *event) {
|
||||||
|
|||||||
Reference in New Issue
Block a user