Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Use the chat-timeline-user setting when formatting results for chat searches. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
02349c875d62f7016436ca8f3a52627a |
| User & Date: | dan 2024-07-09 17:30:29.595 |
Context
|
2024-07-22
| ||
| 23:30 | Upgrade autosetup from 0.6.9 to 0.7.1+. Seems to work but need to try it on more systems before merging. ... (check-in: dacbf76c8a user: stephan tags: autosetup-0.7.1) | |
|
2024-07-12
| ||
| 17:50 | Enable OpenSSL to use the Windows certificate store. ... (check-in: 6fc64abe34 user: florian tags: trunk) | |
|
2024-07-09
| ||
| 17:30 | Use the chat-timeline-user setting when formatting results for chat searches. ... (check-in: 02349c875d user: dan tags: trunk) | |
| 15:20 | Use the long date format for all messages in the chat search dialog, not just those that match the current query. ... (check-in: 2a3a32edea user: dan tags: trunk) | |
Changes
Changes to src/chat.c.
| ︙ | ︙ | |||
509 510 511 512 513 514 515 516 517 518 519 |
zOut = chat_format_to_html(g.argv[i], isWiki);
fossil_print("[%d]: %s\n", i-1, zOut);
fossil_free(zOut);
}
}
/*
**
*/
static int chat_poll_rowstojson(
Stmt *p, /* Statement to read rows from */
| > > > > > > > > > > > > > > > > > > > < > | 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 |
zOut = chat_format_to_html(g.argv[i], isWiki);
fossil_print("[%d]: %s\n", i-1, zOut);
fossil_free(zOut);
}
}
/*
** The SQL statement passed as the first argument should return zero or
** more rows of data, each of which represents a single message from the
** "chat" table. The rows returned should be similar to those returned
** by:
**
** SELECT msgid,
** datetime(mtime),
** xfrom,
** xmsg,
** octet_length(file),"
** fname,
** fmime,
** mdel,
** lmtime
** FROM chat;
**
** This function loops through all rows returned by statement p, adding
** a record to the JSON stored in argument pJson for each. See comments
** above function chat_poll_webpage() for a description of the JSON records
** added to pJson.
*/
static int chat_poll_rowstojson(
Stmt *p, /* Statement to read rows from */
int bRaw, /* True to return raw format xmsg */
Blob *pJson /* Append json array entries here */
){
int cnt = 0;
const char *zChatUser = db_get("chat-timeline-user",0);
while( db_step(p)==SQLITE_ROW ){
int isWiki = 0; /* True if chat message is x-fossil-wiki */
int id = db_column_int(p, 0);
const char *zDate = db_column_text(p, 1);
const char *zFrom = db_column_text(p, 2);
const char *zRawMsg = db_column_text(p, 3);
int nByte = db_column_int(p, 4);
|
| ︙ | ︙ | |||
673 674 675 676 677 678 679 |
** in a prominent manner and then stop polling for new messages.
*/
void chat_poll_webpage(void){
Blob json; /* The json to be constructed and returned */
sqlite3_int64 dataVersion; /* Data version. Used for polling. */
const int iDelay = 1000; /* Delay until next poll (milliseconds) */
int nDelay; /* Maximum delay.*/
| < < | 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 |
** in a prominent manner and then stop polling for new messages.
*/
void chat_poll_webpage(void){
Blob json; /* The json to be constructed and returned */
sqlite3_int64 dataVersion; /* Data version. Used for polling. */
const int iDelay = 1000; /* Delay until next poll (milliseconds) */
int nDelay; /* Maximum delay.*/
int msgid = atoi(PD("name","0"));
const int msgBefore = atoi(PD("before","0"));
int nLimit = msgBefore>0 ? atoi(PD("n","0")) : 0;
const int bRaw = P("raw")!=0;
Blob sql = empty_blob;
Stmt q1;
nDelay = db_get_int("chat-poll-timeout",420); /* Default about 7 minutes */
login_check_credentials();
if( !g.perm.Chat ) {
chat_emit_permissions_error(1);
return;
}
chat_create_tables();
cgi_set_content_type("application/json");
dataVersion = db_int64(0, "PRAGMA data_version");
blob_append_sql(&sql,
"SELECT msgid, datetime(mtime), xfrom, xmsg, octet_length(file),"
" fname, fmime, %s, lmtime"
" FROM chat ",
|
| ︙ | ︙ | |||
727 728 729 730 731 732 733 |
msgid
);
}
db_prepare(&q1, "%s", blob_sql_text(&sql));
blob_reset(&sql);
blob_init(&json, "{\"msgs\":[\n", -1);
while( nDelay>0 ){
| | | 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 |
msgid
);
}
db_prepare(&q1, "%s", blob_sql_text(&sql));
blob_reset(&sql);
blob_init(&json, "{\"msgs\":[\n", -1);
while( nDelay>0 ){
int cnt = chat_poll_rowstojson(&q1, bRaw, &json);
if( cnt || msgBefore>0 ){
break;
}
sqlite3_sleep(iDelay); nDelay--;
while( nDelay>0 ){
sqlite3_int64 newDataVers = db_int64(0,"PRAGMA repository.data_version");
if( newDataVers!=dataVersion ){
|
| ︙ | ︙ | |||
807 808 809 810 811 812 813 |
iFirst, nLimit
);
}
db_prepare(&q1, "%s", blob_sql_text(&sql));
blob_reset(&sql);
blob_init(&json, "{\"msgs\":[\n", -1);
| | | 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 |
iFirst, nLimit
);
}
db_prepare(&q1, "%s", blob_sql_text(&sql));
blob_reset(&sql);
blob_init(&json, "{\"msgs\":[\n", -1);
chat_poll_rowstojson(&q1, 0, &json);
db_finalize(&q1);
blob_appendf(&json, "\n], \"first\":%lld, \"last\":%lld}", iMin, iMax);
cgi_set_content(&json);
return;
}
/*
|
| ︙ | ︙ |