@@ -11,11 +11,13 @@ module.exports = function(RED) {
11
11
if ( n . interval > 35790 ) { this . warn ( RED . _ ( "feedparse.errors.invalidinterval" ) ) }
12
12
this . interval = ( parseInt ( n . interval ) || 15 ) * 60000 ;
13
13
this . interval_id = null ;
14
+ this . ignorefirst = n . ignorefirst || false ;
14
15
this . seen = { } ;
16
+ this . donefirst = false ;
15
17
var node = this ;
16
18
var parsedUrl = url . parse ( this . url ) ;
17
19
if ( ! ( parsedUrl . host || ( parsedUrl . hostname && parsedUrl . port ) ) && ! parsedUrl . isUnix ) {
18
- node . error ( RED . _ ( "feedparse.errors.invalidurl" ) ) ;
20
+ node . error ( RED . _ ( "feedparse.errors.invalidurl" ) , RED . _ ( "feedparse.errors.invalidurl" ) ) ;
19
21
}
20
22
else {
21
23
var getFeed = function ( ) {
@@ -33,27 +35,32 @@ module.exports = function(RED) {
33
35
else { res . pipe ( feedparser ) ; }
34
36
} ) ;
35
37
36
- feedparser . on ( 'error' , function ( error ) { node . error ( error ) ; } ) ;
38
+ feedparser . on ( 'error' , function ( error ) { node . error ( error , error ) ; } ) ;
37
39
38
40
feedparser . on ( 'readable' , function ( ) {
39
41
var stream = this , article ;
40
42
while ( article = stream . read ( ) ) { // jshint ignore:line
41
43
if ( ! ( article . guid in node . seen ) || ( node . seen [ article . guid ] !== 0 && node . seen [ article . guid ] != article . date . getTime ( ) ) ) {
42
- node . seen [ article . guid ] = article . date ? article . date . getTime ( ) : 0 ;
44
+ node . seen [ article . guid ] = article . date ? article . date . getTime ( ) : 0 ;
43
45
var msg = {
44
46
topic : article . origlink || article . link ,
45
47
payload : article . description ,
46
48
article : article
47
49
} ;
48
- node . send ( msg ) ;
50
+ if ( node . ignorefirst === true && node . donefirst === false ) {
51
+ // do nothing
52
+ }
53
+ else {
54
+ node . send ( msg ) ;
55
+ }
49
56
}
50
57
}
51
58
} ) ;
52
59
53
60
feedparser . on ( 'meta' , function ( meta ) { } ) ;
54
61
feedparser . on ( 'end' , function ( ) { } ) ;
55
62
} ;
56
- node . interval_id = setInterval ( function ( ) { getFeed ( ) ; } , node . interval ) ;
63
+ node . interval_id = setInterval ( function ( ) { node . donefirst = true ; getFeed ( ) ; } , node . interval ) ;
57
64
getFeed ( ) ;
58
65
}
59
66
0 commit comments