python script per cycle case (lower – mixed – upper)

Utile con autokey. Eccolo:

pre.CICodeFormatter{
font-family:arial;
font-size:12px;
border:1px dashed #CCCCCC;
width:99%;
height:auto;
overflow:auto;
background:#f0f0f0;
line-height:20px;
background-image:URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif);
padding:0px;
color:#000000;
text-align:left;
}
pre.CICodeFormatter code{
color:#000000;
word-wrap:normal;
}

 # Get the current selection.  
 sText=clipboard.get_selection()  
 lLength=len(sText)  
   
 try:  
   if not store.has_key("textCycle"):  
     store.set_value("state","title")  
   
 except:  
   pass  
   
 # get saved value of textCycle  
 state = store.get_value("textCycle")  
   
   
 # modify text and set next modfication style  
 if state == "title":  
   #sText=sText.capitalize()  
   sText=sText.title()  
   newstate = "lower"  
   
 elif state == "lower":  
   sText=sText.lower()  
   newstate = "upper"  
   
 elif state == "upper":  
   sText=sText.upper()  
   newstate = "title"  
   
 else:  
   newstate = "lower"  
   
 # save for next run of script  
 store.set_value("textCycle",newstate)    
   
 # Send the result.  
 keyboard.send_keys(sText)  
 keyboard.send_keys("<shift>+<left>"*lLength)  

LO: tradurre una parola e scrievere quella tradotta a fianco di querla originale

Si tratta di una macro per LibreOffice, con l’estensione Traduttore; ho copiato, da un sito per imparare inglese, un elenco di verbi inglesi, non tradotti; così ho cercato di velocizzare il prcesso di traduzione e aggiunta della parola tradotta a fianco di quella originale.

Riporto la soluzioone, dal sito AskLibreOffice:

Solved, with the help of macro’s author!

  • After inserting ~/.config/libreoffice/4/user/Scripts/python/TradutorLibreText.py
  • and after installing libreoffice-script-provider-python

This is my macro
sub translate_word
rem ———————————————————————-
rem define variables
dim document as object
dim dispatcher as object
rem ———————————————————————-
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

rem ———————————————————————-
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = “Language”
args1(0).Value = “Current_Italian (Italy)”

dispatcher.executeDispatch(document, “.uno:LanguageStatus”, “”, 0, args1())

rem–nuovo inserim inizio
Dim oScriptProvider, oScript
oScriptProvider = ThisComponent.getScriptProvider()
oScript = oScriptProvider.getScript(“vnd.sun.star.script:TradutorLibreText.py$TradutorLibreText?language=Python&location=user”)
oScript.invoke(array(), array(), array())
rem–nuovo inserim fine
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:WordLeftSel”, “”, 0, Array())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:Copy”, “”, 0, Array())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:Undo”, “”, 0, Array())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:Undo”, “”, 0, Array())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:GoToEndOfLine”, “”, 0, Array())

rem ———————————————————————-
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = “Text”
args7(0).Value = ” ”

dispatcher.executeDispatch(document, “.uno:InsertText”, “”, 0, args7())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:Paste”, “”, 0, Array())

rem ———————————————————————-
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = “Text”
args9(0).Value = “)”

dispatcher.executeDispatch(document, “.uno:InsertText”, “”, 0, args9())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:GoToPrevWord”, “”, 0, Array())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:GoToPrevWord”, “”, 0, Array())

rem ———————————————————————-
dim args12(0) as new com.sun.star.beans.PropertyValue
args12(0).Name = “Text”
args12(0).Value = “(”

dispatcher.executeDispatch(document, “.uno:InsertText”, “”, 0, args12())

rem ———————————————————————-
dim args13(1) as new com.sun.star.beans.PropertyValue
args13(0).Name = “Count”
args13(0).Value = 1
args13(1).Name = “Select”
args13(1).Value = false

dispatcher.executeDispatch(document, “.uno:GoLeft”, “”, 0, args13())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:WordRightSel”, “”, 0, Array())

rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:WordRightSel”, “”, 0, Array())

rem ———————————————————————-
dim args16(1) as new com.sun.star.beans.PropertyValue
args16(0).Name = “Count”
args16(0).Value = 1
args16(1).Name = “Select”
args16(1).Value = true

dispatcher.executeDispatch(document, “.uno:GoRight”, “”, 0, args16())

rem ———————————————————————-
dim args17(0) as new com.sun.star.beans.PropertyValue
args17(0).Name = “Color”
args17(0).Value = 8421504

dispatcher.executeDispatch(document, “.uno:Color”, “”, 0, args17())

rem ———————————————————————-
dim args18(2) as new com.sun.star.beans.PropertyValue
args18(0).Name = “FontHeight.Height”
args18(0).Value = 8
args18(1).Name = “FontHeight.Prop”
args18(1).Value = 100
args18(2).Name = “FontHeight.Diff”
args18(2).Value = 0

dispatcher.executeDispatch(document, “.uno:FontHeight”, “”, 0, args18())

end sub