mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-25 06:25:04 +00:00
Added a timeout flag to search_by_content().
This commit is contained in:
parent
3ab733cdf5
commit
dc74cac6c9
3 changed files with 11 additions and 7 deletions
13
data.c
13
data.c
|
@ -2491,25 +2491,28 @@ void notify_clear(snac *snac)
|
||||||
/** searches **/
|
/** searches **/
|
||||||
|
|
||||||
xs_list *search_by_content(snac *user, const xs_list *timeline,
|
xs_list *search_by_content(snac *user, const xs_list *timeline,
|
||||||
const char *regex, int timeout)
|
const char *regex, int max_secs, int *timeout)
|
||||||
/* returns a list of posts which content matches the regex */
|
/* returns a list of posts which content matches the regex */
|
||||||
{
|
{
|
||||||
xs_list *r = xs_list_new();
|
xs_list *r = xs_list_new();
|
||||||
|
|
||||||
if (timeout == 0)
|
if (max_secs == 0)
|
||||||
timeout = 3;
|
max_secs = 3;
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
char *v;
|
char *v;
|
||||||
|
|
||||||
time_t t = time(NULL) + timeout;
|
time_t t = time(NULL) + max_secs;
|
||||||
|
*timeout = 0;
|
||||||
|
|
||||||
while (xs_list_next(timeline, &v, &c)) {
|
while (xs_list_next(timeline, &v, &c)) {
|
||||||
xs *post = NULL;
|
xs *post = NULL;
|
||||||
|
|
||||||
/* timeout? */
|
/* timeout? */
|
||||||
if (time(NULL) > t)
|
if (time(NULL) > t) {
|
||||||
|
*timeout = 1;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
|
|
3
main.c
3
main.c
|
@ -377,9 +377,10 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (strcmp(cmd, "search") == 0) { /** **/
|
if (strcmp(cmd, "search") == 0) { /** **/
|
||||||
xs *tl = timeline_simple_list(&snac, "private", 0, XS_ALL);
|
xs *tl = timeline_simple_list(&snac, "private", 0, XS_ALL);
|
||||||
|
int to;
|
||||||
|
|
||||||
/* 'url' contains the regex */
|
/* 'url' contains the regex */
|
||||||
xs *r = search_by_content(&snac, tl, url, 10);
|
xs *r = search_by_content(&snac, tl, url, 10, &to);
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
char *v;
|
char *v;
|
||||||
|
|
2
snac.h
2
snac.h
|
@ -180,7 +180,7 @@ xs_val *list_content(snac *user, const char *list_id, const char *actor_md5, int
|
||||||
void list_distribute(snac *user, const char *who, const xs_dict *post);
|
void list_distribute(snac *user, const char *who, const xs_dict *post);
|
||||||
|
|
||||||
xs_list *search_by_content(snac *user, const xs_list *timeline,
|
xs_list *search_by_content(snac *user, const xs_list *timeline,
|
||||||
const char *regex, int timeout);
|
const char *regex, int max_secs, int *timeout);
|
||||||
|
|
||||||
int actor_add(const char *actor, xs_dict *msg);
|
int actor_add(const char *actor, xs_dict *msg);
|
||||||
int actor_get(const char *actor, xs_dict **data);
|
int actor_get(const char *actor, xs_dict **data);
|
||||||
|
|
Loading…
Reference in a new issue