"""
ftp_url.py - RJM Programming - November 2017
Show some ftp functionality ... thanks to Python & XML by O'Reilly ISBN: 0-596-00128-2 and 
https://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python
"""
import sys
import os.path

from urllib import urlopen

def main(argv):

 if len(sys.argv) == 6:
  if (sys.argv[4].rfind('.') == -1):
   print "Entry " + sys.argv[4][1:] + " is not a single file."
   fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4])
  else: 
   if (os.path.exists(sys.argv[4][(1 + sys.argv[4].rfind('/')):])):
    #print "File " + sys.argv[4][(1 + sys.argv[4].rfind('/')):] + " already exists."
    fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4])
   else:
    fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4])
    with open(sys.argv[4][(1 + sys.argv[4].rfind('/')):],'wb') as output:
     output.write(fd.read())
    print "Got " + sys.argv[4][(1 + sys.argv[4].rfind('/')):] + " from " + sys.argv[1]
    exit()
 else:
  if len(sys.argv) == 5:
   fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4])
  else:
   if len(sys.argv) == 4:
    fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1])
   else:
    if len(sys.argv) == 3:
     fd=urlopen("ftp://mkuulma@ozemail.com.au:" + sys.argv[1] + "@ftp.ozemail.com.au" + sys.argv[2])
    else:
     if len(sys.argv) == 2:
      fd=urlopen("ftp://mkuulma@ozemail.com.au:" + sys.argv[1] + "@ftp.ozemail.com.au")
     else:
      print "Usage is via ... python ftp_url.py [ftphost=ftp.ozemail.com.au] [ftpusername=mkuulma@ozemail.com.au] ftppassword [subpath=/] [download=]"
      exit()
    

 print fd.read()
 exit()
 
if __name__ == "__main__":
   main(sys.argv[1:])

