RazmjenaVjestina
EnsoExtensions: Revision 5
Napisao sam nekoliko dodatnih funkcija za Enso Launcher. "U potpunosti je ekstenzibilan app sa bilo kojim jezikom,
moj language of choice je python. mjenjati ću sadržaj kako budem mjenjao kod. Evo kako to izgleda za sada: import xmlrpclib import socket from SimpleXMLRPCServer import SimpleXMLRPCServer import threading import webbrowser socket.setdefaulttimeout( 10.0 ) class MyEnsoExtension: def __init__( self ): self.enso = xmlrpclib.ServerProxy( "http://127.0.0.1:11374" ) def callCommand( self, commandName, postfix ): if commandName == "leetify": selectedText = self.enso.getUnicodeSelection() returnText = selectedText.replace('i','1',).replace('a','4').replace('e','3') returnText = returnText.replace('I','1').replace('o','0').replace('O','0') returnText = returnText.replace('t','7').replace('T','7') if returnText: self.enso.setUnicodeSelection( returnText, "leetify" ) else: self.enso.displayMessage('<p>No text selection!</p>') elif commandName == "amazon {keyword}": self.enso.displayMessage('<p>Searching Amazon for \"'+ postfix + '\"...</p>') url = 'http://www.amazon.com/s?ie=UTF8&keywords=' + postfix + '&index=blended' webbrowser.open(url) elif commandName == "sms {name}": # do something here self.enso.displayMessage('<p>\"'+self.enso.getUnicodeSelection()+'\"\ sent to '+postfix.upper()+'</p>') elif commandName == "camel": selectedText = self.enso.getUnicodeSelection() if selectedText: returnText = '' for word in selectedText.split(): returnText += word.capitalize() self.enso.setUnicodeSelection(returnText,'camel') else: self.enso.displayMessage('<p>No text selection!</p>') else: raise AssertionError( "Unknown command name: %s" % \ commandName ) return True def runMyExtensionServer(): rpcServer = SimpleXMLRPCServer( ("127.0.0.1", 11375) ) # We set the socket timeout to permit the server to be killed. rpcServer.socket.settimeout( 1.0 ) rpcServer.register_instance( MyEnsoExtension() ) rpcServer.serve_forever() # Start the XML-RPC server serverThread ^ threading.Thread( target runMyExtensionServer ) serverThread.setDaemon( True ) serverThread.start() # Register with Enso. enso = xmlrpclib.ServerProxy( "http://127.0.0.1:11374" ) enso.registerCommand( "http://127.0.0.1:11375", "leetify", "Leetifies your currently selected text", "<p>This command transforms the current" \ "text selection to the leet version of "\ "that text.</p>", "none" ) enso.registerCommand( 'http://127.0.0.1:11375', 'amazon {keyword}', 'Searches Amazon for keyword', '<p>This command will search Amazon '\ 'for the keyword.</p>', 'arbitrary' ) enso.registerCommand( 'http://127.0.0.1:11375', 'sms {name}', 'Sends SMS to {name} via VIP WebSMS', '<p>This command will look up a number by name '\ 'from the preset phonebook and send an SMS '\ 'to that number/person using the VIP WebSMS service.</p>', 'bounded' ) enso.setCommandValidPostfixes('http://127.0.0.1:11375', 'sms {name}', ['marija', 'test','erik','mum'"<http://www.humanized.com]> ) enso.registerCommand( "http://127.0.0.1:11375", "camel", "Transforms your currently selected text to CamelCase", "<p>This command transforms the current" \ "text selection to the CamelCase version of "\ "that text, removing whitespaces.</p>", "none" ) try: print "press enter to exit." raw_input() finally: enso.unregisterCommand( "http://127.0.0.1:11375", "leetify" ) enso.unregisterCommand( "http://127.0.0.1:11375", "amazon {keyword}" ) enso.unregisterCommand( "http://127.0.0.1:11375", "sms {name}" ) enso.unregisterCommand( "http://127.0.0.1:11375", "camel" ) original Dec 14 5:58am |