@@ -3,13 +3,13 @@ use bsky_graph::{
33 AtProtoGetFollower , AtProtoGetFollows , DidFileReader , ParquetWriter , utils:: setup_logger,
44} ;
55use clap:: Parser ;
6+ use log:: info;
67use std:: env;
78
89#[ derive( Parser , Debug ) ]
910#[ command(
1011 version,
11- about,
12- long_about = "Dump followers and follows DIDs for Bluesky users to Parquet files"
12+ about = "Dump followers and follows DIDs for Bluesky users to Parquet files"
1313) ]
1414struct Args {
1515 /// Input file containing list of bluesky DID
@@ -30,6 +30,9 @@ struct Args {
3030 /// maximum of request retry before failling
3131 #[ arg( short, long, default_value_t = 10 ) ]
3232 max_retry : u32 ,
33+ /// Retrive the follower else retrive the Follows
34+ #[ arg( short, long) ]
35+ follower : bool ,
3336}
3437
3538#[ tokio:: main]
@@ -47,21 +50,29 @@ async fn main() -> Result<()> {
4750 let atproto_follower: AtProtoGetFollower =
4851 AtProtoGetFollower :: new ( & login, & password, args. limit ) ;
4952
50- let mut follows_writer = ParquetWriter :: new (
51- atproto_follows,
52- DidFileReader :: new ( & args. input_file ) ?,
53- args. buf_size ,
54- & args. output_dir ,
55- args. max_retry ,
56- ) ;
57- let mut follower_writer = ParquetWriter :: new (
58- atproto_follower,
59- DidFileReader :: new ( & args. input_file ) ?,
60- args. buf_size ,
61- & args. output_dir ,
62- args. max_retry ,
63- ) ;
64- follows_writer. write ( ) . await ?;
65- follower_writer. write ( ) . await ?;
53+ // either fetch the follower or the follows
54+ if args. follower {
55+ info ! ( "Start to fetch Follower" ) ;
56+ let mut follower_writer = ParquetWriter :: new (
57+ atproto_follower,
58+ DidFileReader :: new ( & args. input_file ) ?,
59+ args. buf_size ,
60+ & args. output_dir ,
61+ args. max_retry ,
62+ ) ;
63+
64+ follower_writer. write ( ) . await ?;
65+ } else {
66+ info ! ( "Start to fetch Follows" ) ;
67+ let mut follows_writer = ParquetWriter :: new (
68+ atproto_follows,
69+ DidFileReader :: new ( & args. input_file ) ?,
70+ args. buf_size ,
71+ & args. output_dir ,
72+ args. max_retry ,
73+ ) ;
74+
75+ follows_writer. write ( ) . await ?;
76+ }
6677 Ok ( ( ) )
6778}
0 commit comments