/usr/share/pyshared/pymecavideo/oooexport.py is in python-mecavideo 6.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | #-*- coding: utf-8 -*-
"""
oooexport.py, a module for pymecavideo:
a program to track moving points in a video frameset
Copyright (C) 2007 Jean-Baptiste Butet <ashashiwa@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
import os, time, subprocess
import oootools
class Calc:
"""
Crée une instance d'Ooo Calc en mode serveur pour permettre d'y inscrire
des données, et fournit des méthodes pour y envoyer des données.
"""
def __init__(self,Hidden=False, HOST = 'localhost', PORT = 11111):
#find which is the soffice excutable on system. Depends on System.
for exe_ooo in ["soffice","ooffice3.2"]:
if any(os.access(os.path.join(p,exe_ooo), os.X_OK) for p in os.environ['PATH'].split(os.pathsep)):
self.exe_ooo = exe_ooo
cmd='(%s --nodefault --accept="socket,host=%s,port=%d;urp;StarOffice.ServiceManager" &)' %(self.exe_ooo, HOST, PORT)
subprocess.call(cmd, shell=True)
maxduration=10
delay=2
ok=False
t=0
while not ok and t < maxduration:
time.sleep(delay)
t+=delay
self.ooo = oootools.OOoTools(HOST, PORT)
self.ctx = self.ooo.ctx
self.desktop = self.ooo.desktop
ok = self.desktop != None
if not ok:
raise IOError, "Pas possible de communiquer avec {libre|open}office."
if Hidden:
props=PropertyValue()
props.Name="Hidden"
props.Value=True
self.calc = self.desktop.loadComponentFromURL("private:factory/scalc",'_blank',0,(props,))
else:
self.calc = self.desktop.loadComponentFromURL("private:factory/scalc",'_blank',0,())
self.sheet=self.calc.getSheets().getByIndex(0)
def setFormula(self,x,y,value):
"""
Écrit le contenu d'une cellule dans la feuille courante
@param x la colonne
@param y le numéro de ligne
@param value la formule à placer
"""
self.sheet.getCellByPosition(x,y).setFormula(value)
def importPymeca(self, app):
"""
importe les données de pymecavideo
@param app pointeur vers l'application
"""
self.setFormula(0,0,"t (s)")
for i in range(app.nb_de_points):
x="X%d (m)" %(1+i)
y="Y%d (m)" %(1+i)
self.setFormula(2*i+1,0,x)
self.setFormula(2*i+2,0,y)
ligne=1
dt=app.deltaT
for k in app.points.keys():
data=app.points[k]
i=0
self.setFormula(0,ligne,"%s" %(dt*(ligne-1)))
for vect in data[1:]:
vect=app.pointEnMetre(vect)
self.setFormula(2*i+1,ligne, "%s" %vect.x())
self.setFormula(2*i+2,ligne, "%s" %vect.y())
i+=1
ligne +=1
if __name__=="__main__":
calc=Calc()
calc.setFormula(0,0,"date")
calc.setFormula(1,0,"heure")
calc.setFormula(2,0,"durée")
calc.setFormula(3,0,"salle")
calc.setFormula(4,0,"conférenciers")
calc.setFormula(5,0,"titre")
calc.setFormula(6,0,"lien")
|