Attachment 'gallery2image-1.3.5-4.py'

Download

   1 # -*- coding: iso-8859-1 -*-
   2 """
   3     MoinMoin - gallery2Image Actionmacro
   4 
   5     PURPOSE:
   6         This action macro is used to rotate the images from Gallery2
   7 
   8     CALLING SEQUENCE:
   9         called by Gallery2 POST Method
  10 
  11     PROCEDURE:
  12         see Gallery2
  13 
  14         Please remove the version number from this file
  15 
  16     RESTRICTIONS:
  17         spaces in file names are not supported. I don't know how to escape them right.	
  18 
  19     MODIFICATION HISTORY:
  20         Version 1.3.3.-1
  21         @copyright: 2005 by Reimar Bauer (R.Bauer@fz-juelich.de)
  22         @license: GNU GPL, see COPYING for details.
  23         2005-06-24: 1.3.3.-2 feature reqeust of CraigJohnson added 
  24                              os.path.join used to join platform independent pathes 
  25                              os.unlink removed to get it more platform independend
  26         2005-08-06: 1.3.5-3 RB VS mode added 
  27                             by one step back or forward could be toggled through the selected slides
  28                             and the first and last one could be selected too
  29         2005-08-07 1.3.5-4 RB bug fixed for cgi-bin call. formatting of tables adjusted                    
  30 
  31 
  32 """
  33 Dependencies = []
  34 import os,string,Image
  35 from MoinMoin import config, wikiutil
  36 from MoinMoin.PageEditor import PageEditor
  37 from MoinMoin import user, util
  38 from MoinMoin.Page import Page
  39 from MoinMoin.action import AttachFile
  40 from MoinMoin.formatter.text_html import Formatter
  41 
  42 action_name = __name__.split('.')[-1]
  43 
  44 def execute(pagename, request):
  45     """ Main dispatcher for the 'Gallery' action.
  46     """
  47     _ = request.getText
  48     
  49     request.formatter = Formatter(request)
  50     if(request.form['do'][0] == 'VS'):
  51         web={}
  52         images=string.split(request.form['target'][0],',')
  53         target=images[0]
  54         images=(images[1:])
  55         z=0
  56         for img in images :
  57             if (target == img):
  58                previous=z-1
  59                next=z+1
  60       
  61             z=z+1
  62         n=len(images)
  63 
  64         ######## url_wiki_page #############################################################
  65         text=pagename
  66         url=pagename
  67         url_wiki_page=wikiutil.link_tag(request, url, text=text,
  68                                    formatter=request.formatter)   
  69         ############################################################################			 
  70 
  71         attachment_path = AttachFile.getAttachDir(request,pagename)
  72 
  73         web['src']=AttachFile.getAttachUrl(pagename,target,request)
  74         web['title']=target
  75         #web['width']="1024"
  76         
  77 
  78         image_link=request.formatter.image(**web)
  79         
  80        
  81         request.http_headers()
  82         
  83         request.write('<html>')
  84         request.write('<head>')
  85         request.write('<meta http-equiv="Content-Type" content="text/html;charset=utf-8">')
  86         request.write('<meta name="robots" content="noindex,nofollow">')
  87      
  88 
  89         request.write("<H2>%(pagename)s</H2>" % {
  90                       "pagename":url_wiki_page})
  91       
  92 
  93         request.write("<TABLE BORDER=1 ALIGN=CENTER><TR><TD>")
  94         
  95         if (previous >= 0):
  96             webn_url="%(pagename)s?action=gallery2image&do=VS&target=%(webnail)s" % {
  97                      "pagename":pagename,
  98                      "webnail":images[0]+","+string.join(images,',')}
  99             text='FIRST'
 100             url=webn_url
 101             first_img=wikiutil.link_tag(request, url, text=text,
 102                                    formatter=request.formatter)   
 103 
 104             request.write("<TABLE ALIGN=LEFT><TR><TD>%(INPUT)s</TD></TR></TABLE> " % {
 105                           "INPUT":first_img})
 106 
 107         if (next < n):  
 108             webn_url="%(pagename)s?action=gallery2image&do=VS&target=%(webnail)s" % {
 109                      "pagename":pagename,
 110                      "webnail":images[n-1]+","+string.join(images,',')}
 111             text='LAST'
 112             url=webn_url
 113             last_img=wikiutil.link_tag(request, url, text=text,
 114                                    formatter=request.formatter)   
 115 
 116             request.write("<TABLE ALIGN=RIGHT><TR><TD>%(INPUT)s</TD></TR></TABLE> " % {
 117                           "INPUT":last_img})
 118 
 119         if (n > 1):
 120             request.write("<TABLE  ALIGN=CENTER><TR>")
 121 
 122             if (previous >= 0):
 123                 webn_url="%(pagename)s?action=gallery2image&do=VS&target=%(webnail)s" % {
 124                          "pagename":pagename,
 125                          "webnail":images[previous]+","+string.join(images,',')}
 126                 text='PREVIOUS'
 127                 url=webn_url
 128                 previous_img=wikiutil.link_tag(request, url, text=text,
 129                                                formatter=request.formatter)   
 130 
 131                 request.write("<TD>%(INPUT)s</TD>" % {
 132                               "INPUT":previous_img})
 133   
 134             if (next < n):   
 135                 webn_url="%(pagename)s?action=gallery2image&do=VS&target=%(webnail)s" % {
 136                          "pagename":pagename,
 137                          "webnail":images[next]+","+string.join(images,',')}
 138                 text='NEXT'
 139                 url=webn_url
 140                 next_img=wikiutil.link_tag(request, url, text=text,
 141                                            formatter=request.formatter)   
 142 
 143                 request.write("<TD>%(INPUT)s</TD>" % {
 144                               "INPUT":next_img})
 145   
 146 
 147             request.write("</TR></TABLE>")
 148         request.write(image_link)
 149         request.write("</TD></TR>")
 150         request.write("<TR><TD>")
 151         request.write("back to %(url_wiki_page)s" % {
 152                       "url_wiki_page":url_wiki_page})  
 153       
 154         request.write("</TD></TR></TABLE>")	    
 155         request.write("</HTML>")
 156         
 157         return
 158         
 159     elif(request.form['do'][0] == 'PS'):
 160             images=string.split(request.form['target'][0],',')
 161             attachment_path = AttachFile.getAttachDir(request,pagename)
 162             target=request.form['target'][0]
 163 
 164             msg= _('not finished by now') #+ target
 165 
 166     elif request.user.may.delete(pagename):
 167        # only users which are allowed to delete should use this tool
 168 
 169         target=request.form['target'][0]
 170         file, ext = os.path.splitext(target)
 171 
 172         if (ext == '.gif') or (ext == '.png'):
 173             img_type='PNG'
 174             thumbfile='thumbnail_'+file+".png"
 175             webnail='webnail_'+file+".png"
 176         else:
 177             img_type="JPEG"
 178             thumbfile='thumbnail_'+file+".jpg"
 179             webnail='webnail_'+file+".jpg"
 180 
 181 
 182         attachment_path = AttachFile.getAttachDir(request,pagename)
 183         thumb=os.path.join(attachment_path,thumbfile)
 184         webf=os.path.join(attachment_path,webnail)
 185         infile=os.path.join(attachment_path,target)
 186 
 187         msg = None
 188         if action_name in request.cfg.excluded_actions:
 189             msg = _('File attachments are not allowed in this wiki!')
 190 
 191         elif (request.form['do'][0] == 'RM'):
 192             if os.path.exists(infile+'.bak'):
 193                os.unlink(infile+'.bak')
 194             os.link(infile,infile+'.bak')
 195             os.unlink(infile)
 196             os.unlink(webf)
 197             os.unlink(thumb)
 198 
 199             msg= _('%(target)s deleted, backup in place' % {
 200                   'target':target})
 201 
 202         elif (request.form['do'][0] == 'RL'):
 203             im = Image.open(infile)
 204             #os.unlink(infile)
 205             im.rotate(90).save(infile,img_type)
 206             nim = Image.open(infile)
 207             nim.thumbnail((640,640), Image.ANTIALIAS)
 208             #os.unlink(webf)
 209             nim.save(webf, img_type)
 210             nim.thumbnail((128, 128), Image.ANTIALIAS)
 211             #os.unlink(thumb)
 212             nim.save(thumb, img_type)
 213             msg= _('%(target)s rotated to left 90 degrees' % {
 214                   'target':target})
 215 
 216         elif (request.form['do'][0] == 'RR'):
 217             im = Image.open(infile)
 218             #os.unlink(infile)
 219             im.rotate(270).save(infile,img_type)
 220 
 221 
 222             nim = Image.open(infile)
 223 
 224             nim.thumbnail((640,640), Image.ANTIALIAS)
 225             #os.unlink(webf)
 226             nim.save(webf, img_type)
 227             nim.thumbnail((128, 128), Image.ANTIALIAS)
 228             #os.unlink(thumb)
 229             nim.save(thumb, img_type)
 230             msg= _('%(target)s rotated to right 90 degrees' % {
 231                   'target':target})
 232 
 233         else:
 234             msg = _('action not implemented: %s') % (request.form['do'][0],)
 235     else:
 236         msg = _('Your are not allowed to change images on this page: %s') % (pagename,)
 237 
 238     if msg:
 239         AttachFile.error_msg(pagename, request, msg)
 240 
 241     return()

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2011-04-14 07:28:03, 4.7 KB) [[attachment:CreateNewPage.py]]
  • [get | view] (2011-04-14 07:26:24, 4.2 KB) [[attachment:CreateNewPage1.6.py]]
  • [get | view] (2006-09-10 21:29:29, 40.4 KB) [[attachment:CreatePdfDocument2_0_3.py]]
  • [get | view] (2006-09-12 06:05:06, 40.5 KB) [[attachment:CreatePdfDocument2_0_4.py]]
  • [get | view] (2006-09-12 12:00:09, 40.6 KB) [[attachment:CreatePdfDocument2_0_5.py]]
  • [get | view] (2006-11-14 21:56:11, 43.5 KB) [[attachment:CreatePdfDocument2_0_6.py]]
  • [get | view] (2006-11-15 17:00:47, 43.8 KB) [[attachment:CreatePdfDocument2_0_7.py]]
  • [get | view] (2006-11-16 22:06:18, 43.8 KB) [[attachment:CreatePdfDocument2_0_8.py]]
  • [get | view] (2006-12-17 15:54:21, 43.6 KB) [[attachment:CreatePdfDocument2_0_9.py]]
  • [get | view] (2007-08-20 09:10:23, 67.2 KB) [[attachment:CreatePdfDocument2_1_0.py]]
  • [get | view] (2007-08-21 07:39:49, 67.1 KB) [[attachment:CreatePdfDocument2_1_1.py]]
  • [get | view] (2007-09-11 19:16:37, 67.3 KB) [[attachment:CreatePdfDocument2_1_2.py]]
  • [get | view] (2007-09-18 20:17:58, 68.1 KB) [[attachment:CreatePdfDocument2_1_3.py]]
  • [get | view] (2007-09-21 13:32:54, 71.1 KB) [[attachment:CreatePdfDocument2_1_4.py]]
  • [get | view] (2007-09-23 20:56:30, 73.4 KB) [[attachment:CreatePdfDocument2_1_5.py]]
  • [get | view] (2007-09-25 20:54:48, 74.5 KB) [[attachment:CreatePdfDocument2_2_0.py]]
  • [get | view] (2008-06-23 21:08:49, 77.0 KB) [[attachment:CreatePdfDocument2_3_0.py]]
  • [get | view] (2008-06-26 19:25:07, 81.0 KB) [[attachment:CreatePdfDocument2_3_1.py]]
  • [get | view] (2008-07-06 05:50:38, 83.1 KB) [[attachment:CreatePdfDocument2_3_2.py]]
  • [get | view] (2008-07-09 17:42:02, 83.3 KB) [[attachment:CreatePdfDocument2_3_3.py]]
  • [get | view] (2008-09-07 11:11:01, 83.5 KB) [[attachment:CreatePdfDocument2_3_4.py]]
  • [get | view] (2009-01-11 15:53:09, 84.3 KB) [[attachment:CreatePdfDocument2_3_5.py]]
  • [get | view] (2009-02-16 06:52:06, 84.2 KB) [[attachment:CreatePdfDocument2_3_6.py]]
  • [get | view] (2010-01-29 11:53:21, 82.8 KB) [[attachment:CreatePdfDocument2_4_0.py]]
  • [get | view] (2010-01-31 14:10:03, 84.6 KB) [[attachment:CreatePdfDocument2_4_1.py]]
  • [get | view] (2010-09-18 16:23:23, 85.6 KB) [[attachment:CreatePdfDocument2_4_2.py]]
  • [get | view] (2006-06-16 20:56:53, 4.9 KB) [[attachment:FlashManager.py-1.5.3-1]]
  • [get | view] (2003-12-07 18:15:53, 3.9 KB) [[attachment:HTML2MoinMoin.py]]
  • [get | view] (2005-10-16 08:24:35, 4.9 KB) [[attachment:HelpOn-1.3.5-4.py]]
  • [get | view] (2006-02-03 19:21:04, 4.9 KB) [[attachment:HelpOn-1.5.1-5.py]]
  • [get | view] (2006-07-04 10:45:22, 4.8 KB) [[attachment:HelpOn-1.5.4-6.py]]
  • [get | view] (2006-07-04 22:39:14, 4.8 KB) [[attachment:HelpOn-1.6.0-7.py]]
  • [get | view] (2006-07-06 13:50:17, 4.0 KB) [[attachment:HelpOn-1.6.0-8.py]]
  • [get | view] (2008-01-10 17:43:24, 4.8 KB) [[attachment:HelpOn-1.6.0-9.py]]
  • [get | view] (2008-08-19 14:44:54, 5.0 KB) [[attachment:HelpOn-1.7.1-10.py]]
  • [get | view] (2005-02-20 18:28:34, 10.8 KB) [[attachment:IRSS.py]]
  • [get | view] (2005-03-09 22:46:23, 2.9 KB) [[attachment:ImportHtml-1.2.py]]
  • [get | view] (2003-12-07 18:15:53, 2.8 KB) [[attachment:ImportHtml.py]]
  • [get | view] (2003-12-07 18:15:53, 1.8 KB) [[attachment:IrcChat.py]]
  • [get | view] (2008-06-09 11:27:20, 4.4 KB) [[attachment:MoinCrypt.py]]
  • [get | view] (2010-11-29 12:08:27, 7.5 KB) [[attachment:PageActions.py]]
  • [get | view] (2006-08-07 15:12:19, 0.5 KB) [[attachment:PermanentLink.py]]
  • [get | view] (2003-12-07 18:15:53, 6.3 KB) [[attachment:PhoneDial.py]]
  • [get | view] (2005-04-17 14:21:47, 3.6 KB) [[attachment:RecommendPage-1.3.4-1.py]]
  • [get | view] (2005-04-19 18:21:52, 5.5 KB) [[attachment:RecommendPage-1.3.4-2.py]]
  • [get | view] (2005-05-02 19:53:09, 5.6 KB) [[attachment:RecommendPage-1.3.4-3.py]]
  • [get | view] (2005-09-03 07:33:35, 6.3 KB) [[attachment:RecommendPage-1.3.4-4.py]]
  • [get | view] (2005-09-05 17:44:03, 6.9 KB) [[attachment:RecommendPage-1.3.5-5.py]]
  • [get | view] (2005-09-07 16:42:26, 7.5 KB) [[attachment:RecommendPage-1.3.5-6.py]]
  • [get | view] (2005-09-08 16:06:28, 7.7 KB) [[attachment:RecommendPage-1.3.5-7.py]]
  • [get | view] (2005-11-01 11:31:51, 9.0 KB) [[attachment:RecommendPage-1.3.5-8.py]]
  • [get | view] (2006-02-03 19:40:51, 8.3 KB) [[attachment:RecommendPage-1.5.1-9.py]]
  • [get | view] (2008-01-11 09:14:35, 6.8 KB) [[attachment:RecommendPage-1.6.0-10.py]]
  • [get | view] (2008-08-19 14:44:59, 6.9 KB) [[attachment:RecommendPage-1.7.1-11.py]]
  • [get | view] (2008-06-09 11:27:40, 1.7 KB) [[attachment:ShowActions.py]]
  • [get | view] (2008-06-09 10:34:02, 5.3 KB) [[attachment:ShowDecrypted.py]]
  • [get | view] (2005-03-30 21:17:28, 7.7 KB) [[attachment:Slideshow.py]]
  • [get | view] (2004-02-02 20:48:31, 2.0 KB) [[attachment:SubscribeUser.py]]
  • [get | view] (2007-01-26 17:08:30, 2.2 KB) [[attachment:Subscribers-1.6.0.py]]
  • [get | view] (2003-12-07 18:15:53, 1.8 KB) [[attachment:Subscribers.py]]
  • [get | view] (2006-03-18 23:16:51, 0.8 KB) [[attachment:UserPreferences.py]]
  • [get | view] (2004-01-05 09:56:25, 8.1 KB) [[attachment:VisualSiteMap.py]]
  • [get | view] (2015-08-30 21:04:23, 11.1 KB) [[attachment:VisualSiteMap_1.10.py]]
  • [get | view] (2004-10-08 10:59:16, 9.3 KB) [[attachment:VisualSiteMap_1.2.py]]
  • [get | view] (2005-03-16 01:30:09, 9.8 KB) [[attachment:VisualSiteMap_1.3.py]]
  • [get | view] (2014-08-19 01:34:10, 10.8 KB) [[attachment:VisualSiteMap_1.9.py]]
  • [get | view] (2007-08-18 18:52:55, 1.0 KB) [[attachment:backlink.py]]
  • [get | view] (2007-03-15 05:53:49, 23.5 KB) [[attachment:findandreplace0.1Beta.py]]
  • [get | view] (2005-03-27 20:32:10, 3.6 KB) [[attachment:gallery2image-1.3.3-1.py]]
  • [get | view] (2005-08-03 20:14:56, 4.0 KB) [[attachment:gallery2image-1.3.3-2.py]]
  • [get | view] (2005-11-13 18:10:26, 20.7 KB) [[attachment:gallery2image-1.3.5-10.py]]
  • [get | view] (2005-11-25 22:03:50, 20.8 KB) [[attachment:gallery2image-1.3.5-11.py]]
  • [get | view] (2005-08-08 17:23:43, 8.4 KB) [[attachment:gallery2image-1.3.5-4.py]]
  • [get | view] (2005-08-13 15:15:45, 13.7 KB) [[attachment:gallery2image-1.3.5-5.py]]
  • [get | view] (2005-08-31 22:05:22, 15.5 KB) [[attachment:gallery2image-1.3.5-6.py]]
  • [get | view] (2005-10-29 20:23:50, 15.9 KB) [[attachment:gallery2image-1.3.5-8.py]]
  • [get | view] (2005-11-01 11:31:24, 17.6 KB) [[attachment:gallery2image-1.3.5-9.py]]
  • [get | view] (2006-01-27 20:52:32, 20.9 KB) [[attachment:gallery2image-1.5.1-12.py]]
  • [get | view] (2006-08-06 09:01:01, 22.1 KB) [[attachment:gallery2image-1.5.4-13.py]]
  • [get | view] (2006-08-11 18:21:40, 22.2 KB) [[attachment:gallery2image-1.5.4-14.py]]
  • [get | view] (2006-11-16 20:23:27, 22.6 KB) [[attachment:gallery2image-1.5.6-16.py]]
  • [get | view] (2006-08-11 18:30:22, 22.2 KB) [[attachment:gallery2image-1.6.0-15.py]]
  • [get | view] (2008-02-06 10:13:45, 22.3 KB) [[attachment:gallery2image-1.6.0-16.py]]
  • [get | view] (2008-05-20 15:51:09, 22.4 KB) [[attachment:gallery2image-1.6.3-17.py]]
  • [get | view] (2006-09-06 06:19:48, 1.3 KB) [[attachment:getmmap.py]]
  • [get | view] (2004-07-18 09:48:00, 1.5 KB) [[attachment:localnames.py]]
  • [get | view] (2005-03-25 15:02:31, 2.6 KB) [[attachment:newpageonly.py]]
  • [get | view] (2005-03-30 09:02:00, 3.5 KB) [[attachment:newpageonly_20050330.py]]
  • [get | view] (2006-06-06 19:12:27, 9.7 KB) [[attachment:pdf.py]]
  • [get | view] (2006-08-30 10:51:51, 36.0 KB) [[attachment:pdf2_0_0.py]]
  • [get | view] (2006-08-30 13:57:36, 36.5 KB) [[attachment:pdf2_0_1.py]]
  • [get | view] (2006-02-04 04:25:29, 1.0 KB) [[attachment:sisterindex.py]]
  • [get | view] (2004-10-28 07:33:10, 0.7 KB) [[attachment:xml.py]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.