diff --git a/landingPages/result/resultLanding.component.ts b/landingPages/result/resultLanding.component.ts
index 28319fa8..48056457 100644
--- a/landingPages/result/resultLanding.component.ts
+++ b/landingPages/result/resultLanding.component.ts
@@ -640,67 +640,77 @@ export class ResultLandingComponent {
this.citeModal.open();
}
private addNoIndexFilter() {
+ let allow = this.checkIfAllowed(this.resultLandingInfo);
+ if(!allow) {
+ // console.log("no index");
+ this._meta.updateTag({content: 'noindex'}, "name='robots'");
+ }
+ }
+
+ checkIfAllowed(resultLandingInfo: ResultLandingInfo) {
+ let publicCommunities: string[] = [ "aginfra", "rural-digital-europe", "covid-19", "dariah", "dh-ch",
+ "enermaps", "mes", "fam", "ni", "sdsn-gr", "elixir-gr", "beopen"];
try {
if(!(this.properties.environment == "production" || this.properties.environment == "development") ) {
- return ;
+ return true;
}else {
- /*
- //comment out poor content filters
- let allow = !!(!this.resultLandingInfo.underCurationMessage &&
- ((this.resultLandingInfo.fundedByProjects && this.resultLandingInfo.fundedByProjects.length > 0)
- || this.resultLandingInfo.journal
- || (this.resultLandingInfo.classifiedSubjects && this.resultLandingInfo.classifiedSubjects.size > 0)
- //allow free text keywords
- || (this.resultLandingInfo.otherSubjects && this.resultLandingInfo.otherSubjects.size > 0)
- || (this.resultLandingInfo.subjects && this.resultLandingInfo.subjects.length > 0)
+ /*
+ //comment out poor content filters
+ let allow = !!(!resultLandingInfo.underCurationMessage &&
+ ((resultLandingInfo.fundedByProjects && resultLandingInfo.fundedByProjects.length > 0)
+ || resultLandingInfo.journal
+ || (resultLandingInfo.classifiedSubjects && resultLandingInfo.classifiedSubjects.size > 0)
+ //allow free text keywords
+ || (resultLandingInfo.otherSubjects && resultLandingInfo.otherSubjects.size > 0)
+ || (resultLandingInfo.subjects && resultLandingInfo.subjects.length > 0)
- || (this.resultLandingInfo.organizations && this.resultLandingInfo.organizations.length > 0)
- || this.resultLandingInfo.bioentities || (this.resultLandingInfo.references && this.resultLandingInfo.references.length > 0)
- || (this.resultLandingInfo.relatedResearchResults && this.resultLandingInfo.relatedResearchResults.length > 0)
- || (this.resultLandingInfo.similarResearchResults && this.resultLandingInfo.similarResearchResults.length > 0)
- || (this.resultLandingInfo.supplementaryResearchResults && this.resultLandingInfo.supplementaryResearchResults.length > 0)
- || (this.resultLandingInfo.supplementedByResearchResults && this.resultLandingInfo.supplementedByResearchResults.length > 0)
- )
- );*/
- let allow = true;
- // console.log("rich content " + allow)
- //spam words to exclude
- let title_authors_words = ["movie","hd","film","kimetsu", "1080p","4k","call of duty", "mobile hack", "TUBYDI", "电影","電影","download ebook","download [ebook]"];
+ || (resultLandingInfo.organizations && resultLandingInfo.organizations.length > 0)
+ || resultLandingInfo.bioentities || (resultLandingInfo.references && resultLandingInfo.references.length > 0)
+ || (resultLandingInfo.relatedResearchResults && resultLandingInfo.relatedResearchResults.length > 0)
+ || (resultLandingInfo.similarResearchResults && resultLandingInfo.similarResearchResults.length > 0)
+ || (resultLandingInfo.supplementaryResearchResults && resultLandingInfo.supplementaryResearchResults.length > 0)
+ || (resultLandingInfo.supplementedByResearchResults && resultLandingInfo.supplementedByResearchResults.length > 0)
+ )
+ );*/
+ let allow = true;
+ // console.log("rich content " + allow)
+ //spam words to exclude
+ let title_authors_words = ["movie","hd","film","kimetsu", "1080p","4k","call of duty", "mobile hack", "TUBYDI", "电影","電影","download ebook","download [ebook]","Düşük Hapı"];
let abstract_words = ["operacao-feliz-natal.blogspot.com", "moviedouban.site", "hack-expert-solution.link"];
allow = allow && !(
- (this.hasKeyword(this.resultLandingInfo.title,title_authors_words) || (this.resultLandingInfo.authors && this.hasKeyword(this.resultLandingInfo.authors.map(o => o.fullName).join(" "),title_authors_words))
- || (this.resultLandingInfo.description && this.hasKeyword(this.resultLandingInfo.description,abstract_words))
+ (this.hasKeyword(resultLandingInfo.title,title_authors_words) || (resultLandingInfo.authors && this.hasKeyword(resultLandingInfo.authors.map(o => o.fullName).join(" "),title_authors_words))
+ || (resultLandingInfo.description && this.hasKeyword(resultLandingInfo.description,abstract_words))
) &&
- ((this.resultLandingInfo.publisher && this.resultLandingInfo.publisher.toLowerCase() == "zenodo") ||
- this.resultLandingInfo.hostedBy_collectedFrom.filter( value => {return value.downloadName && value.downloadName.toLowerCase().indexOf("zenodo")!=-1}).length > 0));
+ ((resultLandingInfo.publisher && resultLandingInfo.publisher.toLowerCase() == "zenodo") ||
+ resultLandingInfo.hostedBy_collectedFrom.filter( value => {return value.downloadName && value.downloadName.toLowerCase().indexOf("zenodo")!=-1}).length > 0));
// console.log("spam content " + allow)
//common titles/ description / authors
let common_titles = ["introduction", "editorial", "book reviews", "preface", "reviews", "none", "book review", "foreword", "conclusion", "review", "reply","einleitung","short notices","erratum","discussion", "letters to the editor","letter to the editor","reviews of books",":{unav)","editorial board"];
let common_abstract = ["international audience","n/a","peer reviewed","national audience","info:eu-repo/semantics/published","-",".","graphical abstract","met lit. opg","international audience; no abstract",'.',"politics","info:eu-repo/semantics/publishedversion","copia digital. madrid : ministerio de educación, cultura y deporte, 2016",'',"peer-reviewed","copia digital. madrid : ministerio de educación, cultura y deporte. subdirección general de coordinación bibliotecaria, 2015","-","imperial users only","yüksek lisans"];
let common_authors = ["[s.n.]","null &na;","nn","(:unap)","(:null)","null anonymous","anonymous"];
allow = allow && !(
- this.isKeyword(this.resultLandingInfo.title,common_titles) || this.isKeyword(this.resultLandingInfo.description,common_abstract) ||
- (this.resultLandingInfo.authors && this.hasKeyword("_"+this.resultLandingInfo.authors.map(o => o.fullName).join("_")+"_",common_authors, "_"))
+ this.isKeyword(resultLandingInfo.title,common_titles) || this.isKeyword(resultLandingInfo.description,common_abstract) ||
+ (resultLandingInfo.authors && this.hasKeyword("_"+resultLandingInfo.authors.map(o => o.fullName).join("_")+"_",common_authors, "_"))
);
// console.log("common content " + allow)
//community filter
- allow = allow && ((properties.adminToolsPortalType == 'explore' && (!this.resultLandingInfo.contexts || this.resultLandingInfo.contexts.length == 0)) ||
+ allow = allow && ((properties.adminToolsPortalType == 'explore' &&
+ (!resultLandingInfo.contexts || resultLandingInfo.contexts.length == 0 ||
+ resultLandingInfo.contexts.filter( context => { return publicCommunities.includes(context.idContext) }).length == 0)) ||
(properties.adminToolsPortalType != 'explore' && properties.adminToolsPortalType != 'community') ||
- (properties.adminToolsPortalType == 'community' && (!!this.resultLandingInfo.contexts &&
- this.resultLandingInfo.contexts.filter( context => { return ConnectHelper.getCommunityFromDomain(properties.domain) == context.idContext }).length > 0)
+ (properties.adminToolsPortalType == 'community' && (!!resultLandingInfo.contexts &&
+ resultLandingInfo.contexts.filter( context => { return ConnectHelper.getCommunityFromDomain(properties.domain) == context.idContext }).length > 0)
)
);
// console.log("community " + allow )
-
- if(!allow) {
- this._meta.updateTag({content: 'noindex'}, "name='robots'");
- }
+ return allow;
}
} catch (e) {
- console.error("Error in passNoIndexFilter()", this.resultLandingInfo.relcanId, e);
+ console.error("Error in passNoIndexFilter()", resultLandingInfo.relcanId, e);
return false;
}
}
+
private hasKeyword(value:string, words:string[], wordSuffix = ""){
return value?words.filter( word => { return value.toLowerCase().indexOf(wordSuffix + word + wordSuffix)!=-1}).length > 0:0;
}