@@ -18,7 +18,7 @@ use tokio_util::sync::CancellationToken;
1818use crate :: handler:: ServiceStatus ;
1919
2020const MAX_HISTORY_TWEETS : i64 = 21 ;
21- const MAX_SEEN_TWEET_IDS : usize = 1000 ;
21+ const MAX_SEEN_TWEET_IDS : usize = 10000 ;
2222
2323static LOG_TARGET : & str = "twitter" ;
2424
@@ -139,7 +139,7 @@ impl TwitterDaemon {
139139 }
140140 }
141141
142- match rand_number ( 0 ..=5 ) {
142+ match rand_number ( 0 ..=10 ) {
143143 0 => {
144144 if let Err ( err) = self . handle_home_timeline ( ) . await {
145145 log:: error!( target: LOG_TARGET , "handle_home_timeline error: {err:?}" ) ;
@@ -150,7 +150,7 @@ impl TwitterDaemon {
150150 }
151151 }
152152
153- match rand_number ( 0 ..=9 ) {
153+ match rand_number ( 0 ..=20 ) {
154154 0 => {
155155 if let Err ( err) = self . post_new_tweet ( ) . await {
156156 log:: error!( target: LOG_TARGET , "post_new_tweet error: {err:?}" ) ;
@@ -166,7 +166,7 @@ impl TwitterDaemon {
166166 _ = cancel_token. cancelled( ) => {
167167 return Ok ( ( ) ) ;
168168 } ,
169- _ = sleep( Duration :: from_secs( rand_number( 5 * 60 ..=15 * 60 ) ) ) => { } ,
169+ _ = sleep( Duration :: from_secs( rand_number( 1 * 60 ..=5 * 60 ) ) ) => { } ,
170170 }
171171 }
172172 }
@@ -220,10 +220,12 @@ impl TwitterDaemon {
220220 if seen_tweet_ids. len ( ) >= MAX_SEEN_TWEET_IDS {
221221 seen_tweet_ids. drain ( 0 ..MAX_SEEN_TWEET_IDS / 2 ) ;
222222 }
223- let tweets = self
224- . scraper
225- . get_home_timeline ( 1 , seen_tweet_ids. clone ( ) )
226- . await ?;
223+ let ids = if seen_tweet_ids. len ( ) > 42 {
224+ seen_tweet_ids[ ( seen_tweet_ids. len ( ) - 42 ) ..] . to_vec ( )
225+ } else {
226+ seen_tweet_ids. clone ( )
227+ } ;
228+ let tweets = self . scraper . get_home_timeline ( 1 , ids) . await ?;
227229 log:: info!( target: LOG_TARGET , "process home timeline, {} tweets" , tweets. len( ) ) ;
228230
229231 let mut likes = 0 ;
0 commit comments