mirror of
https://github.com/privacore/open-source-search-engine.git
synced 2025-07-16 02:46:08 -04:00
Add Msg20Reply::m_isDisplaySumSetFromTags
This commit is contained in:
2
Msg20.h
2
Msg20.h
@ -184,6 +184,8 @@ public:
|
||||
char m_outlinkInContent ; // set for m_getLinkText
|
||||
char m_outlinkInComment ; // set for m_getLinkText
|
||||
char m_isPermalink ; // set for m_getLinkText (buzz)
|
||||
|
||||
bool m_isDisplaySumSetFromTags;
|
||||
|
||||
// . serialize() converts these ptrs into offsets in m_buf[] and
|
||||
// deserialize() converts them back into ptrs on the receiver's end
|
||||
|
11
Summary.cpp
11
Summary.cpp
@ -14,6 +14,7 @@ Summary::Summary()
|
||||
, m_numDisplayLines(0)
|
||||
, m_displayLen(0)
|
||||
, m_maxNumCharsPerLine(0)
|
||||
, m_isSetFromTags(false)
|
||||
, m_q(NULL)
|
||||
, m_wordWeights(NULL)
|
||||
, m_wordWeightSize(0)
|
||||
@ -45,6 +46,10 @@ int32_t Summary::getSummaryLen() {
|
||||
return m_summaryLen;
|
||||
}
|
||||
|
||||
bool Summary::isSetFromTags() {
|
||||
return m_isSetFromTags;
|
||||
}
|
||||
|
||||
bool Summary::verifySummary( char *titleBuf, int32_t titleBufLen ) {
|
||||
if ( m_summaryLen > 0 ) {
|
||||
// trim elipsis
|
||||
@ -89,6 +94,8 @@ bool Summary::setSummaryFromTags( Xml *xml, int32_t maxSummaryLen, char *titleBu
|
||||
// itemprop = "description"
|
||||
if ( xml->getTagContent("itemprop", "description", m_summary, MAX_SUMMARY_LEN, minSummaryLen, maxSummaryLen, &m_summaryLen) ) {
|
||||
if ( verifySummary( titleBuf, titleBufLen ) ) {
|
||||
m_isSetFromTags = true;
|
||||
|
||||
if ( g_conf.m_logDebugSummary ) {
|
||||
log(LOG_DEBUG, "sum: generated from itemprop description. summary='%.*s'", m_summaryLen, m_summary);
|
||||
}
|
||||
@ -100,6 +107,8 @@ bool Summary::setSummaryFromTags( Xml *xml, int32_t maxSummaryLen, char *titleBu
|
||||
// meta property = "og:description"
|
||||
if ( xml->getTagContent("property", "og:description", m_summary, MAX_SUMMARY_LEN, minSummaryLen, maxSummaryLen, &m_summaryLen, true, TAG_META ) ) {
|
||||
if ( verifySummary( titleBuf, titleBufLen ) ) {
|
||||
m_isSetFromTags = true;
|
||||
|
||||
if ( g_conf.m_logDebugSummary ) {
|
||||
log(LOG_DEBUG, "sum: generated from meta property og:description. summary='%.*s'", m_summaryLen, m_summary);
|
||||
}
|
||||
@ -111,6 +120,8 @@ bool Summary::setSummaryFromTags( Xml *xml, int32_t maxSummaryLen, char *titleBu
|
||||
// meta name = "description"
|
||||
if ( xml->getTagContent("name", "description", m_summary, MAX_SUMMARY_LEN, minSummaryLen, maxSummaryLen, &m_summaryLen, true, TAG_META ) ) {
|
||||
if ( verifySummary( titleBuf, titleBufLen ) ) {
|
||||
m_isSetFromTags = true;
|
||||
|
||||
if ( g_conf.m_logDebugSummary ) {
|
||||
log(LOG_DEBUG, "sum: generated from meta name description. summary='%.*s'", m_summaryLen, m_summary);
|
||||
}
|
||||
|
@ -49,6 +49,8 @@ public:
|
||||
int32_t getSummaryDisplayLen();
|
||||
int32_t getSummaryLen();
|
||||
|
||||
bool isSetFromTags();
|
||||
|
||||
private:
|
||||
bool verifySummary( char *titleBuf, int32_t titleBufLen );
|
||||
|
||||
@ -70,6 +72,8 @@ private:
|
||||
|
||||
int32_t m_maxNumCharsPerLine;
|
||||
|
||||
bool m_isSetFromTags;
|
||||
|
||||
// ptr to the query
|
||||
Query *m_q;
|
||||
|
||||
|
18
XmlDoc.cpp
18
XmlDoc.cpp
@ -19353,7 +19353,7 @@ Msg20Reply *XmlDoc::getMsg20Reply ( ) {
|
||||
|
||||
// do they want a summary?
|
||||
if ( m_req->m_numSummaryLines>0 && ! reply->ptr_displaySum ) {
|
||||
char *hsum = getHighlightedSummary();
|
||||
char *hsum = getHighlightedSummary( &(reply->m_isDisplaySumSetFromTags) );
|
||||
|
||||
if ( ! hsum || hsum == (void *)-1 ) {
|
||||
return (Msg20Reply *)hsum;
|
||||
@ -20315,8 +20315,12 @@ Summary *XmlDoc::getSummary () {
|
||||
return &m_summary;
|
||||
}
|
||||
|
||||
char *XmlDoc::getHighlightedSummary ( ) {
|
||||
char *XmlDoc::getHighlightedSummary ( bool *isSetFromTagsPtr ) {
|
||||
if ( m_finalSummaryBufValid ) {
|
||||
if ( isSetFromTagsPtr ) {
|
||||
*isSetFromTagsPtr = m_isFinalSummarySetFromTags;
|
||||
}
|
||||
|
||||
return m_finalSummaryBuf.getBufStart();
|
||||
}
|
||||
|
||||
@ -20333,12 +20337,18 @@ char *XmlDoc::getHighlightedSummary ( ) {
|
||||
// get the summary
|
||||
char *sum = s->getSummary();
|
||||
int32_t sumLen = s->getSummaryDisplayLen();
|
||||
m_isFinalSummarySetFromTags = s->isSetFromTags();
|
||||
|
||||
// assume no highlighting?
|
||||
if ( ! m_req->m_highlightQueryTerms || sumLen == 0 ) {
|
||||
m_finalSummaryBuf.safeMemcpy ( sum , sumLen );
|
||||
m_finalSummaryBuf.nullTerm();
|
||||
m_finalSummaryBufValid = true;
|
||||
|
||||
if ( isSetFromTagsPtr ) {
|
||||
*isSetFromTagsPtr = m_isFinalSummarySetFromTags;
|
||||
}
|
||||
|
||||
return m_finalSummaryBuf.getBufStart();
|
||||
}
|
||||
|
||||
@ -20366,6 +20376,10 @@ char *XmlDoc::getHighlightedSummary ( ) {
|
||||
m_finalSummaryBufValid = true;
|
||||
m_finalSummaryBuf.nullTerm();
|
||||
|
||||
if ( isSetFromTagsPtr ) {
|
||||
*isSetFromTagsPtr = m_isFinalSummarySetFromTags;
|
||||
}
|
||||
|
||||
return m_finalSummaryBuf.getBufStart();
|
||||
}
|
||||
|
||||
|
3
XmlDoc.h
3
XmlDoc.h
@ -633,7 +633,7 @@ public:
|
||||
SafeBuf *getHeaderTagBuf();
|
||||
class Title *getTitle ();
|
||||
class Summary *getSummary () ;
|
||||
char *getHighlightedSummary ();
|
||||
char *getHighlightedSummary ( bool *isSetFromTagsPtr );
|
||||
char *getIsNoArchive ( ) ;
|
||||
int32_t *getUrlFilterNum();
|
||||
char *getIsLinkSpam ( ) ;
|
||||
@ -786,6 +786,7 @@ public:
|
||||
SafeBuf m_fragBuf;
|
||||
SafeBuf m_wordSpamBuf;
|
||||
SafeBuf m_finalSummaryBuf;
|
||||
bool m_isFinalSummarySetFromTags;
|
||||
int32_t m_firstIp;
|
||||
|
||||
class SafeBuf *m_savedSb;
|
||||
|
Reference in New Issue
Block a user