PYTHON   25

loop.py

Guest on 17th August 2021 01:37:44 PM

  1. #! /usr/bin/python
  2.  
  3. ###############################################################################
  4. #
  5. #    loop.py  [ standalone version of loop.psp ]
  6. #
  7. #    creates HTML/Javascript code for displaying image loops
  8. #
  9. #
  10. ###############################################################################
  11. import os, sys, getopt
  12. from loop_routines import *
  13.  
  14. ###############################################################################
  15. #                          S  E  T  T  I  N  G  S
  16. ###############################################################################
  17.  
  18. verbose = 0
  19. source_path = '/home/torn/html'
  20.  
  21. ###############################################################################
  22. #                           R  O  U  T  I  N  E  S
  23. ###############################################################################
  24.  
  25. def usage():
  26.     # print usage info to screen
  27.     print 'USAGE:'
  28.     print '------'
  29.     print 'loop.py [image directory] [output filename] [page title]'
  30.     print '     [-h help]'
  31.     print '     [-l display last image in sequence upon load]'
  32.     print '     [-t loop control location to top of screen]'
  33.     print '     [-p use projector color scheme]'
  34.     sys.exit(0)
  35.  
  36. def main():
  37.  
  38.     ###########################################################################
  39.     default_path = 'test_images'
  40.     default_ofname = 'loop_out.html'
  41.     default_title = 'LOOP SEQUENCE'
  42.     first = 1
  43.     control = "normal"
  44.     mode = "projector"
  45.     #######################################################################
  46.    
  47.     # parse command line options
  48.     try:
  49.         opts, args = getopt.getopt(sys.argv[1:], "hltp", ["help", "last", "top", "projector"])
  50.     except getopt.error, msg:
  51.         print msg
  52.         print "for help use --help"
  53.         sys.exit(2)
  54.  
  55.     #print 'Options:'
  56.        
  57.     # process options
  58.     for o, a in opts:
  59.         if o in ("-h", "--help"):
  60.             usage()
  61.             sys.exit(0)
  62.         else:
  63.             if o in ("-l", "--last"):
  64.                 first = 0
  65.             if o in ("-t", "--top"):
  66.                 control = "top"
  67.             if o in ("-p", "--projector"):
  68.                 mode = "projector"
  69.  
  70.         print 'TESTING: ' + o,a
  71.  
  72.     # handle args
  73.     try:
  74.       # get path
  75.       path = args[0]
  76.       if not os.path.isdir(path):
  77.         sys.exit('ERROR -- ' + path + ' DOES NOT APPEAR TO BE A VALID DIRECTORY')        
  78.     except(IndexError):
  79.         path = default_path
  80.  
  81.     # get output filename
  82.     try:
  83.         ofname = args[1]
  84.     except(IndexError):
  85.         ofname = default_ofname
  86.  
  87.     # get title
  88.     try:
  89.         title = args[2]
  90.     except(IndexError):        
  91.         title = default_title
  92.  
  93.  
  94.  
  95.     ###############################################################################
  96.     #                             S  C  R  I  P  T
  97.     ###############################################################################
  98.  
  99.     out = []
  100.  
  101.     out.append('<!doctype html public "-//w3c//dtd html 4.0 transitional//en">\n')
  102.     out.append('<html>\n')
  103.     out.append('<head>\n')
  104.     out.append('   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n')
  105.     out.append('   <link rel="SHORTCUT ICON" href="favicon.ico">\n')
  106.  
  107.     if mode == 'screen':
  108.         out.append('    <link rel=stylesheet type="text/css" href="css/loop.css">\n')
  109.     if mode == 'projector':
  110.         out.append('    <link rel=stylesheet type="text/css" href="css/projector_loop.css">\n')
  111.  
  112.     out.append('        <script LANGUAGE="JavaScript" SRC="scripts/loopImages.js"></script>\n')
  113.     out.append('</head>\n')
  114.     out.append('<body onload="ThisStartup()";')
  115.     out.append("preloadimages('images/animation_buttons/slowdown_over.gif','images/animation_buttons/speedup_over.gif', 'images/animation_buttons/speedreset_en_over.gif','images/animation_buttons/play_over.gif', 'images/animation_buttons/pause_over.gif', 'images/animation_buttons/first_over.gif', 'images/animation_buttons/prev_over.gif', 'images/animation_buttons/next_over.gif', 'images/animation_buttons/last_over.gif');)\n")
  116.  
  117.     out.append('<!------------------------------------------------------------->\n')
  118.     out.append('<!-- layout table -->\n')
  119.     out.append('<!------------------------------------------------------------->\n')
  120.     out.append('<span align="center">\n')
  121.     out.append('        <table align="center" valign="middle" width="100%" height="100%" cellpadding="0">\n')
  122.     out.append('<!------------------------------------------------------------->\n')
  123.     out.append('<!-- header-->\n')
  124.     out.append('<!------------------------------------------------------------->\n')
  125.  
  126.     if title != '':
  127.         out.append('<tr height=\"36\" class="banner">\n')
  128.         out.append('    <td colspan="2">\n')
  129.         out.append('            <table>\n')
  130.         out.append('                    <tr>\n')
  131.         out.append('                            <td>\n')
  132.         out.append('                                    <span class="bannerTitle">&nbsp;&nbsp;'+title+'</span>\n')
  133.         out.append('                            </td>\n')
  134.         out.append('                    </tr>\n')
  135.         out.append('            </table>\n')
  136.         out.append('    </td>\n')
  137.         out.append('</tr>\n')
  138.  
  139.     out.append('<!------------------------------------------------------------->\n')
  140.     out.append('<!-- main content-->\n')
  141.     out.append('<!------------------------------------------------------------->\n')
  142.     out.append('                <tr valign="middle">\n')
  143.     out.append('                        <td align="center">\n')
  144.     out.append('                                <!------------------------------------------------------------->\n')
  145.     out.append('                                <!-- content layout table -->\n')
  146.     out.append('                                <!------------------------------------------------------------->\n')
  147.     out.append('                                <table class="layoutTable" cellpadding="3" cellspacing="3">\n')
  148.     out.append('                                        <tr valign="middle">\n')
  149.     out.append('                                            <td align="center">\n')
  150.     out.append('                                                <table width="100%" height="100%">\n')
  151.     out.append('                                                        <tr valign="middle">\n')
  152.     out.append('                                                                <td align="center">\n')
  153.  
  154.     # construct looping page
  155.     filetype = get_filetype(path)
  156.     out.append((get_common_javascript_code()))
  157.     out.append(get_image_array(path,filetype,'this',first))
  158.     out.append(get_javascript_code(path,filetype,'this'))
  159.  
  160.     out.append('                                                                        </td>\n')
  161.     out.append('                                                                </tr>\n')
  162.     out.append('                                                        </table>\n')   
  163.     out.append('                                                </td>\n')
  164.     out.append('                                        </tr>\n')
  165.     out.append('                                </table>\n')
  166.     out.append('                        </td>\n')
  167.     out.append('                </tr>\n')
  168.     out.append('<!------------------------------------------------------------->\n')
  169.     out.append('<!-- footer -->\n')
  170.     out.append('<!------------------------------------------------------------->\n')
  171.     out.append('                <tr>\n')
  172.     out.append('                        <td>\n')
  173.     out.append('                                <table width = "100%">\n')
  174.     out.append('                                                <!--spacer-->\n')
  175.     out.append('                                                <tr height="72">\n')
  176.     out.append('                                                        <!-- spacer -->\n')
  177.     out.append('                                                        <td colspan="3"></td>\n')
  178.     out.append('                                                </tr>\n')
  179.     out.append('                                        </table>\n')
  180.     out.append('                                </td>\n')
  181.     out.append('                        </tr>\n')
  182.     out.append('                </table>\n')
  183.     out.append('                </span>\n')
  184.     out.append('        </body>\n')
  185.     out.append('</html>\n')
  186.  
  187.  
  188.     #------------------------------------------------------------------------------
  189.     #                     W R I T E   T O   H T M L   F I L E
  190.     #------------------------------------------------------------------------------
  191.  
  192.     try:
  193.         f = open(ofname,'w')
  194.         for line in out:
  195.             f.write(line)
  196.         f.close()
  197.     except(IOError):
  198.         sys.exit('ERROR -- unable to open/write output file')
  199.  
  200.     if verbose:
  201.         print 'DONE'
  202.  
  203.     os.system("ln -sf " + source_path + "/images " + path + "/.")
  204.     os.system("ln -sf " + source_path + "/scripts " + path + "/.")
  205.  
  206.  
  207. if __name__ == "__main__":
  208.     main()

Raw Paste


Login or Register to edit or fork this paste. It's free.