funilrys / PyFunceble

The tool to check the availability or syntax of domain, IP or URL.
https://pyfunceble.github.io
Apache License 2.0
298 stars 45 forks source link

Feature Request | UNC path auto completion #394

Open spirillen opened 2 weeks ago

spirillen commented 2 weeks ago

What is the feature you'd like to request?

When you are using PyFunceble on a nix system (Who doesn't) and you will test a local file, then you use the -f flag, however it do not support the tab for auto-completion of path/file as all nix users would be expecting. They are just used to this is standard everywhere

What problem are you trying to solve?

Auto-complete by tabulator key tab

What solution would you like to see?

I'd like to see a solution that... ⏫

Are there any alternatives you've considered?

I've considered alternatives such as... going into sleep mode 😴

Additional context

I would like to add...

spirillen commented 1 day ago

Even the following is a issue for it self, I do add it here as it is related to.

It come to me 💭 today, why is it we do not have the option that allows PyFunceble to automatically search for sources recursively in a folder?

Reason, if we take @mypdns #matrix, we'll see that, it holds 143 files in 30 folders, typing each and everyone manually... ✍🏻 ?

Note: Don't worry, I know how to use find and then search replace the lines ending with spaces

find source/ -type f -iname "*\.csv" -print0  | sed 's/\.csv/\.csv /g'

See also note: https://matrix.to/#/!LZPGrkkYYQNLRTuSNr:matrix.org/$GYqVPUt_iIy2EWGeU_55D33V9ecyjZkh1PPaZuGxy6Y

spirillen commented 1 day ago

Just got this error in relation to the previous comment

image

Fatal Error: [Errno 63] File name too long:

And changing it to a loop will just replace previous results in a never ending loop, till all sources have been tested

#!/usr/bin/env bash

find source/ -type f -iname '*\.csv' | while IFS= read -r i; do
    echo ""
    echo "Now testing ${i}"
    pyfunceble --dns 127.0.0.1 --database-type csv -a -ex --color -c \
        -f "${i}"
    done
output
├── output/domains.csv
│   ├── output/domains.csv/Analytic
│   │   └── output/domains.csv/Analytic/POTENTIALLY_INACTIVE
│   │       ├── output/domains.csv/Analytic/POTENTIALLY_INACTIVE/active_and_merged_in_results.txt
│   │       ├── output/domains.csv/Analytic/POTENTIALLY_INACTIVE/down_or_potentially_down.txt
│   │       └── output/domains.csv/Analytic/POTENTIALLY_INACTIVE/potentially_up.txt
│   ├── output/domains.csv/counter.json
│   ├── output/domains.csv/domains
│   │   └── output/domains.csv/domains/ACTIVE
│   │       └── output/domains.csv/domains/ACTIVE/list.txt
│   ├── output/domains.csv/logs
│   │   ├── output/domains.csv/logs/inactive_not_retested.txt
│   │   └── output/domains.csv/logs/percentage
│   │       ├── output/domains.csv/logs/percentage/percentage.txt
│   │       └── output/domains.csv/logs/percentage/registrar.txt
│   ├── output/domains.csv/registrar_counter.json
│   └── output/domains.csv/splitted
│       └── output/domains.csv/splitted/ACTIVE.txt
├── output/onions.csv
│   └── output/onions.csv/logs
│       └── output/onions.csv/logs/percentage
│           └── output/onions.csv/logs/percentage/percentage.txt
├── output/rpz-ip.csv
│   └── output/rpz-ip.csv/logs
│       └── output/rpz-ip.csv/logs/percentage
│           └── output/rpz-ip.csv/logs/percentage/percentage.txt
└── output/wildcard.csv
├── output/wildcard.csv/Analytic
│   └── output/wildcard.csv/Analytic/POTENTIALLY_INACTIVE
│       ├── output/wildcard.csv/Analytic/POTENTIALLY_INACTIVE/active_and_merged_in_results.txt
│       ├── output/wildcard.csv/Analytic/POTENTIALLY_INACTIVE/down_or_potentially_down.txt
│       └── output/wildcard.csv/Analytic/POTENTIALLY_INACTIVE/potentially_up.txt
├── output/wildcard.csv/continue.csv
├── output/wildcard.csv/counter.json
├── output/wildcard.csv/domains
│   ├── output/wildcard.csv/domains/ACTIVE
│   │   └── output/wildcard.csv/domains/ACTIVE/list.txt
│   └── output/wildcard.csv/domains/INACTIVE
│       └── output/wildcard.csv/domains/INACTIVE/list.txt
├── output/wildcard.csv/logs
│   └── output/wildcard.csv/logs/inactive_not_retested.txt
├── output/wildcard.csv/registrar_counter.json
└── output/wildcard.csv/splitted
├── output/wildcard.csv/splitted/ACTIVE.txt
└── output/wildcard.csv/splitted/INACTIVE.txt