Changeset 3210

Show
Ignore:
Timestamp:
2007-08-29 17:30:37 (1 year ago)
Author:
dcrowdy
Message:

Improved clip frame creation - now using Frame class from cmmlwiki; removed previous mplayer implementation of this.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • arkaiv/trunk/README.txt

    r3208 r3210  
    1111python-lxml 
    1212sqlite3 
     13Python gst (0.10) 
    1314 
    1415Recent annodex libraries - including python-annodex and mod_annodex for apache 
    1516- see http://www.annodex.net 
    16  
    1717 
    1818Pylons 0.9.6 
     
    3434 
    3535INSTALLATION 
     36 
     37Only tested under linux so far. 
    3638 
    3739Unpack the tarball, enter the directory, and edit production.ini to suit your 
  • arkaiv/trunk/TODO

    r3206 r3210  
    11TODO 
    22 
     3When going to an item from a clip link on the search results page, any 
     4subsequent attempts to jump to clips fail.  Fix. 
     5 
    36Better screen layout in the main display page needed 
    4  
    5 Clips should have an image generated for the link display 
    67 
    78Just been at a coding gathering at Silvia Pfeiffer's house, and Marcin Lubonski 
     
    2021 
    2122DONE  
     23 
     24Thu Aug 30 09:43:10 EST 2007 
     25 
     26Clips should have an image generated for the link display 
    2227 
    2328Mon Aug 27 11:09:20 EST 2007 
  • arkaiv/trunk/arkaiv/controllers/page.py

    r3209 r3210  
    2727#from arkaiv.model.anxparser import anxParser 
    2828from arkaiv.model.cmmlparser import cmmlParser 
     29from arkaiv.model.framer import Frame 
    2930 
    3031log = logging.getLogger(__name__) 
     
    230231            basename = os.path.splitext(cmmlfile)[0] 
    231232            imagedirname = basename + "_clipimages" 
    232      
     233            clipimagename = str(clip['starttime']) + ".png" 
    233234            oggsource = model.getsourcepath(clip['itemid']) 
    234      
    235             # create an image using mplayer 
    236             cmd = "mplayer -vo png:z=6 -vf scale -zoom -xy 96 -ao null -ss '" + str(clip['starttime']) + "' -frames 2 " + oggsource  
    237235            cwd = os.getcwd() 
    238             os.chdir(imagedirname) 
    239              
    240             runit = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE 
    241     , stderr=subprocess.PIPE) 
    242             out, err = runit.communicate() 
    243             # and the file we want will be called 00000002.png... 
    244             # so rename to something more descriptive 
    245             clipimagename = str(clip['starttime']) + ".png" 
    246             shutil.move("00000002.png", clipimagename) 
    247             os.chdir(cwd)   # very ugly... better image creation needed allround really. 
    248       
    249             # add that info to the dictionary - only needs to be a relative location 
     236            os.chdir(imagedirname)  # ugly... 
     237            frameimage = Frame(oggsource, clip['starttime'], clipimagename)     
     238            os.chdir(cwd)   # very ugly... # 
     239 
     240            # add that info to the dictionary - only needs to be a relative 
     241            # location 
     242 
    250243            relpath = os.path.split(imagedirname)[1] 
    251244            clip['img_src'] = relpath + "/" + clipimagename  
  • arkaiv/trunk/arkaiv/templates/displayitem.mak

    r3209 r3210  
    145145% for clipinfo in c.cliplist: 
    146146<tr> 
     147%     if c.sourcedict['has_video'] == "Yes": 
    147148   <td><a onclick="javascript:SetLocation('${c.sourcedict['urlpath']}?id=${clipinfo['id']}')"><img src="${c.sourcedict['clipimageurl']}${clipinfo['img_src']}"></a></td> 
     149% endif 
     150%     if c.sourcedict['has_video'] == "No": 
     151   <td><a onclick="javascript:SetLocation('${c.sourcedict['urlpath']}?id=${clipinfo['id']}')"><img src="/public/blank.png"></a></td> 
     152% endif 
    148153    <td>${clipinfo['start_time']}</td> 
    149154    <td>${clipinfo['id']}</td> 
  • arkaiv/trunk/data/templates/displayitem.mak.py

    r3209 r3210  
    22UNDEFINED = runtime.UNDEFINED 
    33_magic_number = 2 
    4 _modified_time = 1188390221.0295939 
     4_modified_time = 1188430842.531039 
    55_template_filename='/home/dcrowdy/src/working/test/arkaiv/trunk/arkaiv/templates/displayitem.mak' 
    66_template_uri='/displayitem.mak' 
     
    141141        for clipinfo in c.cliplist: 
    142142            # SOURCE LINE 146 
    143             context.write(u'<tr>\n   <td><a onclick="javascript:SetLocation(\'') 
     143            context.write(u'<tr>\n') 
    144144            # SOURCE LINE 147 
    145             context.write(unicode(c.sourcedict['urlpath'])) 
    146             context.write(u'?id=') 
    147             context.write(unicode(clipinfo['id'])) 
    148             context.write(u'\')"><img src="') 
    149             context.write(unicode(c.sourcedict['clipimageurl'])) 
    150             context.write(unicode(clipinfo['img_src'])) 
    151             context.write(u'"></a></td>\n    <td>') 
    152             # SOURCE LINE 148 
     145            if c.sourcedict['has_video'] == "Yes": 
     146                # SOURCE LINE 148 
     147                context.write(u'   <td><a onclick="javascript:SetLocation(\'') 
     148                context.write(unicode(c.sourcedict['urlpath'])) 
     149                context.write(u'?id=') 
     150                context.write(unicode(clipinfo['id'])) 
     151                context.write(u'\')"><img src="') 
     152                context.write(unicode(c.sourcedict['clipimageurl'])) 
     153                context.write(unicode(clipinfo['img_src'])) 
     154                context.write(u'"></a></td>\n') 
     155            # SOURCE LINE 150 
     156            if c.sourcedict['has_video'] == "No": 
     157                # SOURCE LINE 151 
     158                context.write(u'   <td><a onclick="javascript:SetLocation(\'') 
     159                context.write(unicode(c.sourcedict['urlpath'])) 
     160                context.write(u'?id=') 
     161                context.write(unicode(clipinfo['id'])) 
     162                context.write(u'\')"><img src="/public/blank.png"></a></td>\n') 
     163            # SOURCE LINE 153 
     164            context.write(u'    <td>') 
    153165            context.write(unicode(clipinfo['start_time'])) 
    154166            context.write(u'</td>\n    <td>') 
    155             # SOURCE LINE 149 
     167            # SOURCE LINE 154 
    156168            context.write(unicode(clipinfo['id'])) 
    157169            context.write(u'</td>\n    <td>') 
    158             # SOURCE LINE 150 
     170            # SOURCE LINE 155 
    159171            context.write(unicode(clipinfo['desc'])) 
    160172            context.write(u'</td>\n    <td>') 
    161             # SOURCE LINE 151 
     173            # SOURCE LINE 156 
    162174            context.write(unicode(clipinfo['a_href'])) 
    163175            context.write(u'</td>\n\n\n') 
    164             # SOURCE LINE 154 
     176            # SOURCE LINE 159 
    165177            context.write(unicode( h.form(h.url(action='deleteclip'), multipart=True) )) 
    166178            context.write(u'\n<td>') 
    167             # SOURCE LINE 155 
     179            # SOURCE LINE 160 
    168180            context.write(unicode( h.submit('Delete') )) 
    169181            context.write(u' </td>\n') 
    170             # SOURCE LINE 156 
     182            # SOURCE LINE 161 
    171183            context.write(unicode( h.hidden_field('clipid', value=clipinfo['ixc']) )) 
    172184            context.write(u'\n') 
    173             # SOURCE LINE 157 
     185            # SOURCE LINE 162 
    174186            context.write(unicode( h.hidden_field('itemid', value=c.itemid) )) 
    175187            context.write(u'\n') 
    176             # SOURCE LINE 158 
     188            # SOURCE LINE 163 
    177189            context.write(unicode( h.end_form() )) 
    178190            context.write(u' \n\n\n</tr> \n') 
    179         # SOURCE LINE 163 
     191        # SOURCE LINE 168 
    180192        context.write(u'</table>\n\nAdd new clip:\n') 
    181         # SOURCE LINE 166 
     193        # SOURCE LINE 171 
    182194        context.write(unicode( h.form(h.url(action='addclip'), multipart=True) )) 
    183195        context.write(u'\n<table style="font-size:small">\n<tr>\n    <td>Start time</td>\n  <td>') 
    184         # SOURCE LINE 170 
     196        # SOURCE LINE 175 
    185197        context.write(unicode( h.text_field('starttime', size=5) )) 
    186198        context.write(u'</td>\n    <td>a_text</td>\n  <td>') 
    187         # SOURCE LINE 172 
     199        # SOURCE LINE 177 
    188200        context.write(unicode( h.text_field('a_text') )) 
    189201        context.write(u'</td>\n</tr>\n<tr>\n    <td>Id</td>\n  <td>') 
    190         # SOURCE LINE 176 
     202        # SOURCE LINE 181 
    191203        context.write(unicode( h.text_field('id', size=5) )) 
    192204        context.write(u'</td>\n    <td>a_href</td>\n  <td>') 
    193         # SOURCE LINE 178 
     205        # SOURCE LINE 183 
    194206        context.write(unicode( h.text_field('a_href') )) 
    195207        context.write(u'</td>\n</tr>\n<tr>\n    <td>img_src</td>\n  <td>') 
    196         # SOURCE LINE 182 
     208        # SOURCE LINE 187 
    197209        context.write(unicode( h.text_field('img_src', size=5) )) 
    198210        context.write(u'</td>\n    <td>desc</td>\n  <td>') 
    199         # SOURCE LINE 184 
     211        # SOURCE LINE 189 
    200212        context.write(unicode( h.text_field('desc') )) 
    201213        context.write(u'</td>\n</tr>\n</table>\n') 
    202         # SOURCE LINE 187 
     214        # SOURCE LINE 192 
    203215        context.write(unicode( h.hidden_field('headindex', value = c.headdict['ixh']) )) 
    204216        context.write(u'\n') 
    205         # SOURCE LINE 188 
    206         context.write(unicode( h.hidden_field('itemid', value=c.itemid) )) 
    207         context.write(u'\n') 
    208         # SOURCE LINE 189 
     217        # SOURCE LINE 193 
     218        context.write(unicode( h.hidden_field('itemid', value=c.itemid) )) 
     219        context.write(u'\n') 
     220        # SOURCE LINE 194 
    209221        context.write(unicode( h.hidden_field('hasvideo', value=c.sourcedict['has_video']) )) 
    210222        context.write(u'\n\n') 
    211         # SOURCE LINE 191 
     223        # SOURCE LINE 196 
    212224        context.write(unicode( h.submit('Add') )) 
    213225        context.write(u' \n') 
    214         # SOURCE LINE 192 
     226        # SOURCE LINE 197 
    215227        context.write(unicode( h.end_form() )) 
    216228        context.write(u' \n</div>\n<script>\nvar plugin = document.embeds[0];\nvar input  = document.api.ifield;\nvar goto  = document.api.gotofield;\nvar output = document.api.ofield;\n\nfunction Play() {\n  plugin.play();\n  addOutput("Play!");\n}\n\nfunction Pause() {\n  plugin.pause();\n  addOutput("Pause!");\n}\n\nfunction SetLocation(location) {\n//  plugin.setPlayPosition(location);\n  plugin.setCurrentMovie(location);\n  addOutput("Current movie: " + plugin.getCurrentMovie());\n  addOutput("setting a location: " + location + " ms");\n}\n\nfunction GetPlayPosition() {\n  addOutput("Play position: " + plugin.getPlayPosition() + " ms");\n}\n\nfunction skip(dir) {\n//    addOutput("we get here")\n    i = getInput();\n    addOutput("i is " + i);\n    if (i <= 0) i = 1000;\n    addOutput("dir is " + dir);\n    t = plugin.getPlayPosition() + (i * dir);\n    addOutput("t is " + t);\n    addOutput("Skipping by " + i + " to " + t + " ms - " +\n            (plugin.setPlayPosition(t) ? "succeeded" : "failed"));\n}\n\nfunction getInput() {\n  i = parseInt(input.value);\n  return isNaN(i) ? 0 : i;\n}\n\nfunction getGoto() {\n  i = parseInt(goto.value);\n  return isNaN(i) ? 0 : i;\n}\n\n\nfunction GotoPosition() {\n  i = getGoto();\n  i = i * 1000;\n  plugin.setPlayPosition(i);\n}\n\nvar outLines = 0;\n\nfunction addOutput(str) {\n  if (outLines == 0) {\n    output.value = str;\n  } else {\n    output.value = str + "\\n" + output.value;\n  }\n  outLines++;\n  if (outLines == 11) {\n    i = output.value.lastIndexOf("\\n");\n    output.value = output.value.substr(0, i);\n    outLines--;\n  }\n}\n</script>\n\n')