Advertisement
openSsme

Phone Numbers Generator v3

Oct 7th, 2012
1,281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.71 KB | None | 0 0
  1. #!/usr/bin/python3
  2. # coding: utf-8
  3.  
  4.  
  5. import sys, time, mmap, os, webbrowser
  6.  
  7. os.system('mode con: cols=45 lines=90' if os.name == 'nt' else 'printf "\e[8;35;110t"')
  8.  
  9. def banner():
  10.  
  11.     os.system('cls' if os.name == 'nt' else 'printf "\033c"')
  12.     print ('''\
  13.  
  14.  
  15.     \033[1;37m--------------------------------------------------------------------------------------------
  16.     ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  17.  
  18.                       PHONE NUMBERS GENERATOR v3 BY\033[1;m
  19.  
  20.     \033[1;31m              ██╗  ██╗ ██████╗ ██╗  ██╗
  21.                     ██║  ██║██╔═████╗██║  ██║
  22.                     ███████║██║██╔██║███████║
  23.                     ╚════██║████╔╝██║╚════██║
  24.                          ██║╚██████╔╝     ██║
  25.                          ╚═╝ ╚═════╝      ╚═╝\033[1;m
  26.  
  27.     \033[1;37m░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  28.     --------------------------------------------------------------------------------------------
  29.     \033[1;m''')
  30.  
  31. def reset():
  32.     banner()
  33.     main()
  34.  
  35. def process(selection):
  36.     fname = input("\n\n\t\t\033[1;38mName the output file (default: go back):  \033[1;m")
  37.     if fname == '':
  38.         reset()
  39.  
  40.     else:
  41.         while selection == "1":
  42.             while 1:
  43.                 prefix = input("\n\t\t\033[1;38mEnter a prefix number:  \033[1;m")
  44.                 if (prefix.isdigit()): break
  45.  
  46.                 else: display('5')
  47.  
  48.             while 1:
  49.                 try:
  50.                     rmin = int(input("\n\t\t\033[1;38mEnter range minimum (exclude prefix):  \033[1;m"))
  51.                     break
  52.  
  53.                 except ValueError:
  54.                     display('5')
  55.  
  56.             while 1:
  57.                 try:
  58.                     rmax = int(input("\n\t\t\033[1;38mEnter range top:  \033[1;m"))
  59.                     if rmin >= rmax:
  60.                         display('3')
  61.  
  62.                     else:
  63.                         display('1') if int(rmax) >= 1000000 else display('2')
  64.                         custome_range = range(rmin, rmax)
  65.                         write_to_file(fname, prefix, custome_range)
  66.                         break
  67.  
  68.                 except ValueError:
  69.                     display('5')
  70.  
  71.         while selection != "1":
  72.             mobile_range = range(1000000, 10000000)
  73.             landline_range = range(5000000, 10000000)
  74.             prefix = input("\n\t\t\033[1;38mEnter a prefix number ('all' for all possible combinations):  \033[1;m")
  75.             if (prefix.isdigit()):
  76.                 if selection == "2":
  77.                     display('4')
  78.                     write_to_file(fname, prefix, mobile_range)
  79.                     break
  80.  
  81.                 else:
  82.                     display('4')
  83.                     write_to_file(fname, prefix, landline_range)
  84.                     break
  85.  
  86.             elif prefix == "all":
  87.                 if selection == "2":
  88.                     display('4')
  89.                     write_to_file(fname, "mpfx", mobile_range)
  90.                     break
  91.  
  92.                 else:
  93.                     display('4')
  94.                     write_to_file(fname, "lpfx", landline_range)
  95.                     break
  96.  
  97.             else:
  98.                 display('6')
  99.  
  100. def write_to_file(fname, prefix, range):
  101.     if (prefix.isdigit()):
  102.         with open(fname, 'w') as f:
  103.             for i in range:
  104.                 f.write(str(prefix)+str(i)+'\n')
  105.                 i += 1
  106.  
  107.     else:
  108.         if prefix == "mpfx":
  109.             mpfx = ['050','052','053','054','055','057','058']
  110.             with open(fname, 'w') as f:
  111.                 for i in mpfx:
  112.                     for j in range:
  113.                         f.write(str(i)+str(j)+'\n')
  114.                         j += 1
  115.  
  116.         else:
  117.             lpfx = ['02','03','04','08','09','071','072','073','074','075','076','077','078']
  118.             with open(fname, 'w') as f:
  119.                 for i in lpfx:
  120.                     for j in range:
  121.                         f.write(str(i)+str(j)+'\n')
  122.                         j += 1
  123.  
  124.     # COUNTER
  125.     with open(fname, "r+") as f:
  126.         buffer = mmap.mmap(f.fileno(), 0)
  127.         lines = 0
  128.         read = buffer.readline
  129.         while read():
  130.             lines += 1
  131.  
  132.     if prefix == "mpfx": prefix = "all mobile prefixes"
  133.     elif prefix == "lpfx": prefix = "all landline prefixes"
  134.     banner()
  135.     display('9', prefix)
  136.     display('10', lines)
  137.     main()
  138.  
  139. def display(msg, *args):
  140.  
  141.     if msg == '1': banner(); print("\n\n\t\t\033[1;33mGenerating. this might take a while for long numbers..\033[1;m\n")
  142.     if msg == '2': banner(); print("\n\n\t\t\033[1;33mGenerating...\033[1;m\n")
  143.     if msg == '3': banner(); print("\n\n\t\t\033[1;31mTop of the range cannot be smaller than the minimum.\033[1;m\n")
  144.     if msg == '4': banner(); print("\n\n\t\t\033[1;33mGenerating. this might take a while..\033[1;m\n")
  145.     if msg == '5': banner(); print ("\n\n\t\t\033[1;31mUse only numbers\033[1;m\n")
  146.     if msg == '6': banner(); print ("\n\n\t\t\033[1;31mUse only numbers or 'all'\033[1;m\n")
  147.     if msg == '7': banner(); print("\n\n\t\t\033[1;31mQuitting.\033[1;m\n");
  148.     if msg == '8': banner(); print("\n\n\t\t\033[1;31mThis option doesn't exist.\033[1;m\n")
  149.     if msg == '9': banner(); print("\n\n\t\t\033[1;32mSuccessfully generated a list of numbers starting with {}.\033[1;m".format(args[0]))
  150.     if msg == '10': print("\n\t\t\033[1;32mCounted \033[1;34m{}\033[1;m \033[1;32mlines.\033[1;m".format(args[0]))
  151.     if msg == '11': banner(); print("\n\n\t\t\033[1;31mAUT VIAM INVENIAM AUT FACIAM\033[1;m\n")
  152.     if msg == '12': banner(); print("\n\t\tThis program runs in Python3 only.\n")
  153.     if msg == '13': banner(); print("\n\t\tThis program requires superuser privileges.\n")
  154.  
  155.  
  156. def main():
  157.     if sys.version[0] != "3":
  158.         display('12')
  159.         sys.exit()
  160.     elif os.getuid() != 0:
  161.         display('13')
  162.         sys.exit()
  163.  
  164.     else:
  165.         user_input = input('''\
  166.  
  167.  
  168.         \033[1;38mSelect an option:\033[1;m
  169.  
  170.         \033[1;31m[>]\033[1;m  \033[1;37m1)\033[1;m \033[1;32mGenerate a list of custom numbers\033[1;m
  171.         \033[1;31m[>]\033[1;m  \033[1;37m2)\033[1;m \033[1;32mGenerate a list of cellphone numbers\033[1;m
  172.         \033[1;31m[>]\033[1;m  \033[1;37m3)\033[1;m \033[1;32mGenerate a list of landline numbers\033[1;m
  173.         \033[1;31m[>]\033[1;m  \033[1;37m4)\033[1;m \033[1;31mQuit properly\033[1;m
  174.  
  175.         ''')
  176.  
  177.         if user_input == "1": banner(); process(user_input)
  178.         elif user_input == "2": banner(); process(user_input)
  179.         elif user_input == "3": banner(); process(user_input)
  180.         elif user_input == "4": display('7'); time.sleep(1); os.system('cls' if os.name == 'nt' else 'printf "\033c"'); sys.exit()
  181.         elif user_input == "404": banner(); webbrowser.open('https://www.youtube.com/watch?v=iRq7Muf6CKg'); display('11'); main()
  182.         else: display('8'); time.sleep(2); reset()
  183.  
  184.  
  185. if __name__ == "__main__":
  186.         reset()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement