Add brief mode of JSON generation for blerglatest
yajl_gen_array_open(g);
for (i = to; i != from - 1; i--) {
- json_generate_one_record(g, NULL, b, i);
+ json_generate_one_record(g, NULL, b, i, 0);
yajl_gen_get_buf(g, &ybuf, &len);
fwrite(ybuf, len, 1, stdout);
yajl_gen_clear(g);
while (i >= 0) {
b = blerg_open(results[i].author);
if (b != NULL) {
- json_generate_one_record(g, results[i].author, b, results[i].record);
+ json_generate_one_record(g, results[i].author, b, results[i].record, 0);
blerg_close(b);
}
yajl_gen_get_buf(g, &ybuf, &len);
#include "database.h"
#include "json.h"
-void json_generate_one_record(yajl_gen g, const char *author, struct blerg *b, uint64_t record) {
+void json_generate_one_record(yajl_gen g, const char *author, struct blerg *b, uint64_t record, int brief) {
char *data;
char number[21];
int len;
return;
}
+ if (brief && len > 150) {
+ len = 150;
+ /* This is a bit of a hackish way to add an ellipsis, and will
+ * probably cause weird results if we overwrite part of a UTF-8
+ * char */
+ data[149] = '.';
+ data[148] = '.';
+ data[147] = '.';
+ }
+
yajl_gen_map_open(g);
if (author != NULL) {
yajl_gen_string(g, "author", 6);
#ifndef _JSON_H
#define _JSON_H
-void json_generate_one_record(yajl_gen g, const char *author, struct blerg *b, uint64_t record);
+void json_generate_one_record(yajl_gen g, const char *author, struct blerg *b, uint64_t record, int brief);
#endif /* _JSON_H */
}
/* Snarf one record */
- json_generate_one_record(gs->g, NULL, gs->b, gs->entries[gs->i]);
+ json_generate_one_record(gs->g, NULL, gs->b, gs->entries[gs->i], 0);
if (gs->i == 0) {
yajl_gen_array_close(gs->g);
/* Snarf one record */
b = blerg_open(ts->results[ts->i].author);
if (b != NULL) {
- json_generate_one_record(ts->g, ts->results[ts->i].author, b, ts->results[ts->i].record);
+ json_generate_one_record(ts->g, ts->results[ts->i].author, b, ts->results[ts->i].record, 0);
blerg_close(b);
}
}
uint64_t record_count = blerg_get_record_count(b);
if (record_count > 0)
- json_generate_one_record(g, things->arr[i].name, b, record_count - 1);
+ json_generate_one_record(g, things->arr[i].name, b, record_count - 1, 1);
blerg_close(b);
}
yajl_gen_array_close(g);