<command>
<option>curl</option>
</command>
- <option>url interval_in_minutes</option>
+ <option>url (interval_in_minutes)</option>
</term>
<listitem>
<para>Download data from URI using Curl at the
#include "conky.h"
#include "logging.h"
#include "ccurl_thread.h"
+#include "text_object.h"
#ifdef DEBUG
#include <assert.h>
}
/* straight copy, used by $curl */
-void ccurl_parse_data(void *result, const char *data)
+static void ccurl_parse_data(void *result, const char *data)
{
strncpy(result, data, max_user_text);
}
timed_thread_unlock(curloc->p_timed_thread);
}
+void curl_parse_arg(struct text_object *obj, const char *arg)
+{
+ int argc;
+ float interval = 0;
+ char *uri = (char *) malloc(128 * sizeof(char));
+
+ argc = sscanf(arg, "%127s %f", uri, &interval);
+ if (argc < 1) {
+ free(uri);
+ NORM_ERR("wrong number of arguments for $curl");
+ return;
+ }
+ obj->data.curl.uri = uri;
+ obj->data.curl.interval = interval > 0 ? interval * 60 : 15*60;
+}
+
+void curl_print(struct text_object *obj, char *p, int p_max_size)
+{
+ if (!obj->data.curl.uri) {
+ NORM_ERR("error processing Curl data");
+ return;
+ }
+ ccurl_process_info(p, p_max_size, obj->data.curl.uri, obj->data.curl.interval);
+}
/* runs instance of $curl */
void ccurl_process_info(char *p, int p_max_size, char *uri, int interval);
+void curl_parse_arg(struct text_object *, const char *);
+void curl_print(struct text_object *, char *, int);
+
/* $curl exports end */
#endif /* _CURL_THREAD_H_ */
#endif
#ifdef HAVE_CURL
OBJ(curl) {
- if (obj->data.curl.uri != NULL) {
- ccurl_process_info(p, p_max_size, obj->data.curl.uri, obj->data.curl.interval);
- } else {
- NORM_ERR("error processing Curl data");
- }
+ curl_print(obj, p, p_max_size);
}
#endif
#ifdef RSS
#endif
#ifdef HAVE_CURL
END OBJ_ARG(curl, 0, "curl needs arguments: <uri> <interval in minutes>")
- int argc;
- float interval = 0;
- char *uri = (char *) malloc(128 * sizeof(char));
-
- argc = sscanf(arg, "%127s %f", uri, &interval);
- if (argc == 2) {
- obj->data.curl.uri = uri;
- obj->data.curl.interval = interval > 0 ? interval * 60 : 15*60;
- } else {
- NORM_ERR("wrong number of arguments for $curl");
- }
+ curl_parse_arg(obj, arg);
#endif
#ifdef RSS
END OBJ_ARG(rss, 0, "rss needs arguments: <uri> <interval in minutes> <action> [act_par] [spaces in front]")