mirror of
https://github.com/Llewellynvdm/conky.git
synced 2025-01-27 09:08:25 +00:00
Experimental RSS code.
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@864 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
d5634abad4
commit
3b03ca2a76
@ -179,6 +179,22 @@ if test x$want_xmms2 = xyes; then
|
|||||||
AC_DEFINE(XMMS2, 1, [Define if you want XMMS2 support])
|
AC_DEFINE(XMMS2, 1, [Define if you want XMMS2 support])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl RSS
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([rss],
|
||||||
|
AC_HELP_STRING([--enable-rss], [enable if you want rss support (requires libmrss) @<:@default=no@:>@]),
|
||||||
|
[want_rss="$enableval"], [want_rss=no])
|
||||||
|
#
|
||||||
|
AM_CONDITIONAL(BUILD_RSS, test x$want_rss = xyes)
|
||||||
|
if test x$want_rss = xyes; then
|
||||||
|
WANT_GLIB=yes
|
||||||
|
PKG_CHECK_MODULES([MRSS], [mrss])
|
||||||
|
CFLAGS="$CFLAGS $MRSS_CFLAGS"
|
||||||
|
LIBS="$LIBS $MRSS_LIBS"
|
||||||
|
AC_DEFINE(RSS, 1, [Define if you want rss support])
|
||||||
|
fi
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl IMLIB2
|
dnl IMLIB2
|
||||||
@ -218,10 +234,8 @@ if test x$want_portmon = xyes; then
|
|||||||
if test "x$PORT_MONITORS_MISSING" = xyes; then
|
if test "x$PORT_MONITORS_MISSING" = xyes; then
|
||||||
AC_MSG_ERROR([missing a needed network header for port monitoring])
|
AC_MSG_ERROR([missing a needed network header for port monitoring])
|
||||||
fi
|
fi
|
||||||
PKG_CHECK_MODULES([GLIB], [glib-2.0])
|
WANT_GLIB=yes
|
||||||
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
AC_DEFINE(TCP_PORT_MONITOR, 1, [Define if you want tcp port monitoring support])
|
||||||
LIBS="$LIBS $GLIB_LIBS"
|
|
||||||
AC_DEFINE(TCP_PORT_MONITOR, 1, [Define if you want tcp port monitoring support])
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -356,6 +370,15 @@ if test x$want_xft = "xyes"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl GLIB
|
||||||
|
dnl
|
||||||
|
|
||||||
|
if test x$WANT_GLIB = xyes; then
|
||||||
|
PKG_CHECK_MODULES([GLIB], [glib-2.0])
|
||||||
|
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||||
|
LIBS="$LIBS $GLIB_LIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl KVM
|
dnl KVM
|
||||||
@ -519,4 +542,5 @@ $PACKAGE $VERSION configured successfully:
|
|||||||
* general:
|
* general:
|
||||||
hddtemp: $want_hddtemp
|
hddtemp: $want_hddtemp
|
||||||
portmon: $want_portmon
|
portmon: $want_portmon
|
||||||
|
RSS: $want_rss
|
||||||
EOF
|
EOF
|
||||||
|
@ -51,6 +51,10 @@ if BUILD_HDDTEMP
|
|||||||
hddtemp = hddtemp.c
|
hddtemp = hddtemp.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if BUILD_RSS
|
||||||
|
rss = rss.c
|
||||||
|
endif
|
||||||
|
|
||||||
conky_SOURCES = \
|
conky_SOURCES = \
|
||||||
$(audacious) \
|
$(audacious) \
|
||||||
$(bmpx) \
|
$(bmpx) \
|
||||||
@ -67,6 +71,7 @@ conky_SOURCES = \
|
|||||||
$(netbsd) \
|
$(netbsd) \
|
||||||
$(openbsd) \
|
$(openbsd) \
|
||||||
$(port_monitors) \
|
$(port_monitors) \
|
||||||
|
$(rss) \
|
||||||
$(solaris) \
|
$(solaris) \
|
||||||
timed_thread.c \
|
timed_thread.c \
|
||||||
timed_thread.h \
|
timed_thread.h \
|
||||||
|
55
src/conky.c
55
src/conky.c
@ -93,6 +93,9 @@ static void print_version()
|
|||||||
#ifdef TCP_PORT_MONITOR
|
#ifdef TCP_PORT_MONITOR
|
||||||
" * portmon\n"
|
" * portmon\n"
|
||||||
#endif /* TCP_PORT_MONITOR */
|
#endif /* TCP_PORT_MONITOR */
|
||||||
|
#ifdef RSS
|
||||||
|
" * rss\n"
|
||||||
|
#endif
|
||||||
"\n");
|
"\n");
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
@ -1163,6 +1166,9 @@ enum text_object_type {
|
|||||||
OBJ_bmpx_uri,
|
OBJ_bmpx_uri,
|
||||||
OBJ_bmpx_bitrate,
|
OBJ_bmpx_bitrate,
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef RSS
|
||||||
|
OBJ_rss,
|
||||||
|
#endif
|
||||||
#ifdef TCP_PORT_MONITOR
|
#ifdef TCP_PORT_MONITOR
|
||||||
OBJ_tcp_portmon,
|
OBJ_tcp_portmon,
|
||||||
#endif
|
#endif
|
||||||
@ -1276,6 +1282,12 @@ struct text_object {
|
|||||||
int port;
|
int port;
|
||||||
char *dev;
|
char *dev;
|
||||||
} hddtemp; /* 2 */
|
} hddtemp; /* 2 */
|
||||||
|
#endif
|
||||||
|
#ifdef RSS
|
||||||
|
struct {
|
||||||
|
char *uri;
|
||||||
|
int count;
|
||||||
|
} rss;
|
||||||
#endif
|
#endif
|
||||||
} data;
|
} data;
|
||||||
};
|
};
|
||||||
@ -2030,6 +2042,10 @@ static void free_text_objects(unsigned int count, struct text_object *objs)
|
|||||||
case OBJ_bmpx_track:
|
case OBJ_bmpx_track:
|
||||||
case OBJ_bmpx_uri:
|
case OBJ_bmpx_uri:
|
||||||
case OBJ_bmpx_bitrate:
|
case OBJ_bmpx_bitrate:
|
||||||
|
#endif
|
||||||
|
#ifdef RSS
|
||||||
|
case OBJ_rss:
|
||||||
|
free(objs[i].data.rss.uri);
|
||||||
#endif
|
#endif
|
||||||
case OBJ_pre_exec:
|
case OBJ_pre_exec:
|
||||||
case OBJ_battery:
|
case OBJ_battery:
|
||||||
@ -3100,6 +3116,21 @@ static struct text_object *construct_text_object(const char *s, const char *arg,
|
|||||||
memset(&(info.bmpx), 0, sizeof(struct bmpx_s));
|
memset(&(info.bmpx), 0, sizeof(struct bmpx_s));
|
||||||
END
|
END
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef RSS
|
||||||
|
OBJ(rss, 0)
|
||||||
|
if (arg) {
|
||||||
|
int argc, count;
|
||||||
|
char *uri = (char *)malloc(64 * sizeof(char *));
|
||||||
|
|
||||||
|
argc = sscanf(arg, "%63s %d", uri, &count);
|
||||||
|
printf("argc: %d, uri: %s, count: %d\n", argc, uri, count);
|
||||||
|
obj->data.rss.uri = uri;
|
||||||
|
obj->data.rss.count = count;
|
||||||
|
} else
|
||||||
|
CRIT_ERR("rss: needs arguments");
|
||||||
|
|
||||||
|
END
|
||||||
|
#endif
|
||||||
#ifdef HDDTEMP
|
#ifdef HDDTEMP
|
||||||
OBJ(hddtemp, 0)
|
OBJ(hddtemp, 0)
|
||||||
if (!arg || scan_hddtemp(arg, &obj->data.hddtemp.dev,
|
if (!arg || scan_hddtemp(arg, &obj->data.hddtemp.dev,
|
||||||
@ -4254,6 +4285,30 @@ static void generate_text_internal(char *p, int p_max_size, struct text_object *
|
|||||||
OBJ(hr) {
|
OBJ(hr) {
|
||||||
new_hr(p, obj->data.i);
|
new_hr(p, obj->data.i);
|
||||||
}
|
}
|
||||||
|
#ifdef RSS
|
||||||
|
OBJ(rss) {
|
||||||
|
GList *walk = NULL;
|
||||||
|
GList *list = NULL;
|
||||||
|
char *titles = malloc(1024*sizeof(char *));
|
||||||
|
|
||||||
|
memset(titles, 0, sizeof(titles));
|
||||||
|
list = get_rss_info(obj->data.rss.uri, obj->data.rss.count);
|
||||||
|
|
||||||
|
for (walk = g_list_first(list); walk != NULL; walk = g_list_next(walk)) {
|
||||||
|
snprintf(titles, 1023, "%s%s\n", titles, (char *)walk->data);
|
||||||
|
free(walk->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* we don't need last \n */
|
||||||
|
titles[strlen(titles)-2] = '\0';
|
||||||
|
|
||||||
|
snprintf(p, p_max_size, "%s", titles);
|
||||||
|
|
||||||
|
free(titles);
|
||||||
|
g_list_free(walk);
|
||||||
|
g_list_free(list);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifdef HDDTEMP
|
#ifdef HDDTEMP
|
||||||
OBJ(hddtemp) {
|
OBJ(hddtemp) {
|
||||||
char *temp;
|
char *temp;
|
||||||
|
12
src/conky.h
12
src/conky.h
@ -46,6 +46,10 @@
|
|||||||
#include <xmmsclient/xmmsclient.h>
|
#include <xmmsclient/xmmsclient.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef RSS
|
||||||
|
#include <glib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "mboxscan.h"
|
#include "mboxscan.h"
|
||||||
#include "timed_thread.h"
|
#include "timed_thread.h"
|
||||||
|
|
||||||
@ -243,6 +247,9 @@ enum {
|
|||||||
INFO_XMMS2 = 22,
|
INFO_XMMS2 = 22,
|
||||||
#endif
|
#endif
|
||||||
INFO_ENTROPY = 23,
|
INFO_ENTROPY = 23,
|
||||||
|
#ifdef RSS
|
||||||
|
INFO_RSS = 24,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -589,6 +596,11 @@ int scan_hddtemp(const char *arg, char **dev, char **addr, int *port);
|
|||||||
char *get_hddtemp_info(char *dev, char *addr, int port, char *unit);
|
char *get_hddtemp_info(char *dev, char *addr, int port, char *unit);
|
||||||
#endif /* HDDTEMP */
|
#endif /* HDDTEMP */
|
||||||
|
|
||||||
|
/* in rss.c */
|
||||||
|
#ifdef RSS
|
||||||
|
GList* get_rss_info(char *uri, int count);
|
||||||
|
#endif /* RSS */
|
||||||
|
|
||||||
/* in linux.c */
|
/* in linux.c */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user