package cmd import ( "encoding/json" "fmt" "git.db.org.ai/dborg/internal/formatter" "git.db.org.ai/dborg/internal/models" "github.com/spf13/cobra" ) var usernameCmd = &cobra.Command{ Use: "username [username]", Short: "Check username availability across websites", Long: `Check username availability across hundreds of websites using WhatsMyName dataset`, Args: cobra.ExactArgs(1), RunE: runUsernameCheck, } func init() { rootCmd.AddCommand(usernameCmd) usernameCmd.Flags().StringSliceP("sites", "s", []string{}, "Specific sites to check (comma-separated)") usernameCmd.Flags().BoolP("fuzzy", "f", false, "Enable fuzzy validation mode") usernameCmd.Flags().IntP("max_tasks", "m", 50, "Maximum concurrent tasks") } func runUsernameCheck(cmd *cobra.Command, args []string) error { c, err := newUnauthenticatedClient() if err != nil { return err } params := &models.USRSXParams{ Username: args[0], } params.Sites, _ = cmd.Flags().GetStringSlice("sites") params.Fuzzy, _ = cmd.Flags().GetBool("fuzzy") params.MaxTasks, _ = cmd.Flags().GetInt("max_tasks") err = c.CheckUsernameStream(params, func(result json.RawMessage) error { if IsJSONOutput() { fmt.Println(string(result)) return nil } var siteResult models.SiteResult if err := json.Unmarshal(result, &siteResult); err != nil { return err } return formatter.FormatUsernameSiteResult(&siteResult) }) if err != nil { return err } return nil }