Skip to content

nellore/nitwit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

nitwit v0.1.0

Scans Twitter or Github for available handles from a word list. Requires Python 2.x and requests.

Important note

-m no is a quick fix if the server starts returning 429s. Some handles may then be false positives if they are reserved keywords.

Possibilities

Search for "TheReal" + top 100 most-followed Twitter handles:

curl -vs "http://twittercounter.com/pages/100" 2>&1 \
    | grep "analytics.track('Viewed Profile'" \
    | awk -F 'href' '{print $2}'\
    | awk -F '"' '{print $2}' \
    | cut -c 2- \
    | uniq \
    | awk '{ print "TheReal" $0 }' \
    | python nitwit.py -d - >nitwits.txt

5x (mutate one letter of each of the top 100 most-followed Twitter handles at random and check availability):

curl -vs "http://twittercounter.com/pages/100" 2>&1 \
    | grep "analytics.track('Viewed Profile'" \
    | awk -F 'href' '{print $2}'\
    | awk -F '"' '{print $2}' \
    | cut -c 2- \
    | uniq \
    | python -c \
'import random
import sys
import string
import copy
for word in sys.stdin:
    word = list(word.strip());
    for i in xrange(5):
        new_word = copy.deepcopy(word)
        new_word[random.randint(0, len(new_word) - 1)] = \
            random.choice(string.ascii_lowercase)
        print "".join(new_word)' \
    | python nitwit.py -d - >nitwits.txt

Search for all three-letter Twitter handles in random order:

for i in {a..z}{a..z}{a..z} 
do
    echo $i
done \
    | perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' \
    | python nitwit.py -d - >nitwits.txt

Output only handles from /usr/share/dict/words that can be registered on both Twitter and Github:

comm <(python nitwit.py -m no -g -s) <(python nitwit.py -m no -s)

Check the Twitter handle i every five seconds and beep insistently when it's available:

while true
do
    if [[ $(echo i | python nitwit.py -m no -d - -s) == "i" ]]; then
        while true
        do
            tput bel
            sleep 1
        done
    fi
    sleep 5
done

Usage details

Display help:

python nitwit.py -h

Source Twitter search with /usr/share/dict/words, writing live stats to stderr and available handles to nitwits.txt:

python nitwit.py >nitwits.txt

Search Github, not Twitter:

python nitwit.py -g >nitwits.txt

If "m" follows a handle written to stdout, then while the handle has no account associated with it, Twitter/Github is currently blocking its registration. This could mean the handle will be available soon; it could also mean the handle is a reserved word.

Search only for handles that have no associated accounts:

python nitwit.py -m yes >nitwits.txt

Search only for whether handles can be registered:

python nitwit.py -m no >nitwits.txt

Search for words in mydict.txt, a text file with a single word per line, in random order:

cat mydict.txt \
    | perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' \
    | python nitwit.py -g -d - >nitwits.txt

Use proxy P (useful in conjunction with Tor if getting 429'd):

python nitwit.py -p P >nitwits.txt

Above, P is, for example, http://10.10.1.10:1080.

Wait for 1.25 seconds between successive server requests:

python nitwit.py -w 1.25 >nitwits.txt

Suppress status messages written to stderr:

python nitwit.py -s >nitwits.txt

License

MIT. See LICENSE for details.

Disclaimer

The author is not responsible for misuse or abuse of this product by other users.

About

Scan Twitter or Github for available handles

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages