@ -6,6 +6,7 @@ import java.net.MalformedURLException;
import java.net.URL ;
import java.net.URL ;
import net.yacy.cora.document.UTF8 ;
import net.yacy.cora.document.UTF8 ;
import net.yacy.cora.protocol.ClientIdentification ;
import net.yacy.cora.protocol.http.HTTPClient ;
import net.yacy.cora.protocol.http.HTTPClient ;
import net.yacy.data.ymark.YMarkEntry ;
import net.yacy.data.ymark.YMarkEntry ;
import net.yacy.data.ymark.YMarkSMWJSONImporter ;
import net.yacy.data.ymark.YMarkSMWJSONImporter ;
@ -15,47 +16,31 @@ import net.yacy.search.Switchboard;
public class ContentControlImportThread {
public class ContentControlImportThread {
private final Switchboard sb ;
private final Switchboard sb ;
private Boolean locked = false ;
private Boolean locked = false ;
private String lastsync = "1900-01-01T01:00:00" ;
private String lastsync = "1900-01-01T01:00:00" ;
private String currenttimestamp = "1900-01-01T01:00:00" ;
private String currenttimestamp = "1900-01-01T01:00:00" ;
private long offset = 0 ;
private long offset = 0 ;
private final long limit = 500 ;
private final long limit = 500 ;
private long currentmax = 0 ;
private long currentmax = 0 ;
private boolean runningjob = false ;
private boolean runningjob = false ;
public ContentControlImportThread ( final Switchboard sb ) {
public ContentControlImportThread ( final Switchboard sb ) {
//final long time = System.currentTimeMillis();
this . sb = sb ;
this . sb = sb ;
if ( this . sb . getConfigBool ( "contentcontrol.smwimport.purgelistoninit" ,
if ( this . sb . getConfigBool ( "contentcontrol.smwimport.purgelistoninit" , false ) ) {
false ) ) {
this . sb . tables . clear ( this . sb . getConfig ( "contentcontrol.smwimport.targetlist" , "contentcontrol" ) ) ;
this . sb . tables . clear ( this . sb . getConfig (
"contentcontrol.smwimport.targetlist" , "contentcontrol" ) ) ;
}
}
}
}
private final String wikiurlify ( String s ) {
private final String wikiurlify ( String s ) {
String ret = s ;
String ret = s ;
ret = ret . replace ( "-" , "-2D" ) ;
ret = ret . replace ( "-" , "-2D" ) ;
ret = ret . replace ( "+" , "-2B" ) ;
ret = ret . replace ( "+" , "-2B" ) ;
ret = ret . replace ( " " , "-20" ) ;
ret = ret . replace ( " " , "-20" ) ;
ret = ret . replace ( "[" , "-5B" ) ;
ret = ret . replace ( "[" , "-5B" ) ;
ret = ret . replace ( "]" , "-5D" ) ;
ret = ret . replace ( "]" , "-5D" ) ;
ret = ret . replace ( ":" , "-3A" ) ;
ret = ret . replace ( ":" , "-3A" ) ;
ret = ret . replace ( ">" , "-3E" ) ;
ret = ret . replace ( ">" , "-3E" ) ;
ret = ret . replace ( "?" , "-3F" ) ;
ret = ret . replace ( "?" , "-3F" ) ;
return ret ;
return ret ;
@ -64,30 +49,17 @@ public class ContentControlImportThread {
public final void run ( ) {
public final void run ( ) {
if ( ! this . locked ) {
if ( ! this . locked ) {
this . locked = true ;
this . locked = true ;
if ( this . sb . getConfigBool ( "contentcontrol.smwimport.enabled" , false ) = = true ) {
if ( this . sb . getConfigBool ( "contentcontrol.smwimport.enabled" , false ) = = true ) {
if ( this . runningjob ) {
if ( this . runningjob ) {
Log . logInfo ( "CONTENTCONTROL" ,
Log . logInfo ( "CONTENTCONTROL" ,
"CONTENTCONTROL importing max. " + this . limit
"CONTENTCONTROL importing max. " + this . limit
+ " elements at " + this . offset + " of "
+ " elements at " + this . offset + " of "
+ this . currentmax + ", since "
+ this . currentmax + ", since "
+ this . currenttimestamp ) ;
+ this . currenttimestamp ) ;
URL bmks_json ;
URL bmks_json ;
//String currenttimestampurl = wikiurlify (this.currenttimestamp);
try {
try {
if ( ! this . sb . getConfig ( "contentcontrol.smwimport.baseurl" , "" ) . equals ( "" ) ) {
if ( ! this . sb . getConfig ( "contentcontrol.smwimport.baseurl" ,
"" ) . equals ( "" ) ) {
bmks_json = new URL (
bmks_json = new URL (
this . sb . getConfig (
this . sb . getConfig (
"contentcontrol.smwimport.baseurl" ,
"contentcontrol.smwimport.baseurl" ,
@ -99,9 +71,7 @@ public class ContentControlImportThread {
+ "/offset%3D" + this . offset
+ "/offset%3D" + this . offset
+ "/limit%3D" + this . limit
+ "/limit%3D" + this . limit
+ "/format%3Djson" ) ;
+ "/format%3Djson" ) ;
this . offset + = this . limit ;
this . offset + = this . limit ;
if ( this . offset > this . currentmax ) {
if ( this . offset > this . currentmax ) {
this . runningjob = false ;
this . runningjob = false ;
}
}
@ -111,7 +81,6 @@ public class ContentControlImportThread {
reader = new InputStreamReader (
reader = new InputStreamReader (
bmks_json . openStream ( ) , "UTF-8" ) ;
bmks_json . openStream ( ) , "UTF-8" ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
Log . logException ( e ) ;
Log . logException ( e ) ;
this . runningjob = false ;
this . runningjob = false ;
}
}
@ -126,22 +95,14 @@ public class ContentControlImportThread {
Log . logException ( e ) ;
Log . logException ( e ) ;
this . runningjob = false ;
this . runningjob = false ;
}
}
Thread t ;
Thread t ;
YMarkEntry bmk ;
YMarkEntry bmk ;
t = new Thread ( bookmarkImporter , "YMarks - Network bookmark importer" ) ;
t = new Thread ( bookmarkImporter ,
"YMarks - Network bookmark importer" ) ;
t . start ( ) ;
t . start ( ) ;
while ( ( bmk = bookmarkImporter . take ( ) ) ! = YMarkEntry . POISON ) {
while ( ( bmk = bookmarkImporter . take ( ) ) ! = YMarkEntry . POISON ) {
if ( bmk = = YMarkEntry . EMPTY ) {
if ( bmk = = YMarkEntry . EMPTY ) {
this . runningjob = false ;
this . runningjob = false ;
} else {
} else {
try {
try {
this . sb . tables . bookmarks . addBookmark (
this . sb . tables . bookmarks . addBookmark (
this . sb . getConfig ( "contentcontrol.smwimport.targetlist" , "contentcontrol" ) , bmk ,
this . sb . getConfig ( "contentcontrol.smwimport.targetlist" , "contentcontrol" ) , bmk ,
@ -153,12 +114,10 @@ public class ContentControlImportThread {
}
}
}
}
}
}
} else {
} else {
}
}
}
}
else {
else {
}
}
@ -167,14 +126,9 @@ public class ContentControlImportThread {
// TODO Auto-generated catch block
// TODO Auto-generated catch block
e2 . printStackTrace ( ) ;
e2 . printStackTrace ( ) ;
}
}
} else {
} else {
try {
try {
if ( ! this . sb . getConfig ( "contentcontrol.smwimport.baseurl" , "" ) . equals ( "" ) ) {
if ( ! this . sb . getConfig ( "contentcontrol.smwimport.baseurl" ,
"" ) . equals ( "" ) ) {
URL bmks_count ;
URL bmks_count ;
bmks_count = new URL (
bmks_count = new URL (
@ -182,23 +136,16 @@ public class ContentControlImportThread {
"contentcontrol.smwimport.baseurl" ,
"contentcontrol.smwimport.baseurl" ,
"" )
"" )
+ wikiurlify ( "/[[Category:Web Page]] [[Modification date::>" + this . lastsync + "]]" )
+ wikiurlify ( "/[[Category:Web Page]] [[Modification date::>" + this . lastsync + "]]" )
+ wikiurlify ( "/?Url/?Filter/?Article has average rating/?Category" )
+ wikiurlify ( "/?Url/?Filter/?Article has average rating/?Category" )
+ "/mainlabel%3D"
+ "/mainlabel%3D"
+ "/format%3Dystat" ) ;
+ "/format%3Dystat" ) ;
String reply = UTF8 . String ( new HTTPClient ( )
String reply = UTF8 . String ( new HTTPClient ( ClientIdentification . getUserAgent ( ) , ClientIdentification . DEFAULT_TIMEOUT ) . GETbytes ( bmks_count . toString ( ) ) ) ;
. GETbytes ( bmks_count . toString ( ) ) ) ;
String overallcount = reply . split ( "," ) [ 0 ] ;
String overallcount = reply . split ( "," ) [ 0 ] ;
String lastsyncstring = reply . split ( "," ) [ 1 ] ;
String lastsyncstring = reply . split ( "," ) [ 1 ] ;
this . currentmax = Integer . parseInt ( overallcount ) ;
this . currentmax = Integer . parseInt ( overallcount ) ;
if ( this . currentmax > 0 ) {
if ( this . currentmax > 0 ) {
Log . logInfo ( "CONTENTCONTROL" ,
Log . logInfo ( "CONTENTCONTROL" ,
"CONTENTCONTROL import job counts "
"CONTENTCONTROL import job counts "
+ this . currentmax
+ this . currentmax
@ -216,7 +163,6 @@ public class ContentControlImportThread {
Log . logWarning ( "CONTENTCONTROL" ,
Log . logWarning ( "CONTENTCONTROL" ,
"No SMWimport URL defined" ) ;
"No SMWimport URL defined" ) ;
}
}
} catch ( MalformedURLException e ) {
} catch ( MalformedURLException e ) {
// TODO Auto-generated catch block
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
e . printStackTrace ( ) ;
@ -224,14 +170,10 @@ public class ContentControlImportThread {
// TODO Auto-generated catch block
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
e . printStackTrace ( ) ;
}
}
}
}
this . locked = false ;
this . locked = false ;
}
}
}
}
return ;
return ;
}
}