<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
>

<channel>
<title><![CDATA[RazmjenaVjestina: SynaN]]></title>
<link>https://saturn.ffzg.hr/razmjenavjestina/index.cgi?action=weblog_display;category=SynaN</link>
<description></description>
<pubDate>Fri, 14 Dec 2007 12:58:44 -0000</pubDate>
<webMaster>root@saturn.ffzg.hr</webMaster>
<generator>Socialtext Workspace v2.19.0.2</generator>

<item>
<title><![CDATA[EnsoExtensions]]></title>
<link>https://saturn.ffzg.hr/razmjenavjestina/index.cgi?ensoextensions</link>
<description><![CDATA[<div>Creator: TamTam Migration</div><hr/><div>Tags: SynaN, TamTam, TamUsers</div><hr/><div class="wiki">
<p>
Napisao sam nekoliko dodatnih funkcija za Enso Launcher.</p>
<p>
&quot;U potpunosti je ekstenzibilan app sa bilo kojim jezikom, </p>
<p>
moj language of choice je python.<br />
Ovo nikako nije sve, svaki dan se igram sa novim stvarima i </p>
<p>
mjenjati ću sadržaj kako budem mjenjao kod.</p>
<p>
Evo kako to izgleda za sada:</p>
<pre>
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( &quot;http://127.0.0.1:11374&quot; )
 
    def callCommand( self, commandName, postfix ):
        if commandName == &quot;leetify&quot;:
            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, &quot;leetify&quot; )
            else:
                self.enso.displayMessage('&lt;p&gt;No text selection!&lt;/p&gt;')
        elif commandName == &quot;amazon {keyword}&quot;:
            self.enso.displayMessage('&lt;p&gt;Searching Amazon for \&quot;'+ postfix + '\&quot;...&lt;/p&gt;')
            url = 'http://www.amazon.com/s?ie=UTF8&amp;keywords=' + postfix + '&amp;index=blended'
            webbrowser.open(url)
        elif commandName == &quot;sms {name}&quot;:
            # do something here
            self.enso.displayMessage('&lt;p&gt;\&quot;'+self.enso.getUnicodeSelection()+'\&quot;\ 
sent to '+postfix.upper()+'&lt;/p&gt;')
        elif commandName == &quot;camel&quot;:
            selectedText = self.enso.getUnicodeSelection()
            if selectedText:
                returnText = ''
                for word in selectedText.split():
                    returnText += word.capitalize()
                self.enso.setUnicodeSelection(returnText,'camel')
            else:
                self.enso.displayMessage('&lt;p&gt;No text selection!&lt;/p&gt;')
        else:
            raise AssertionError( &quot;Unknown command name: %s&quot; % \
                                   commandName )
        return True


def runMyExtensionServer():
    rpcServer = SimpleXMLRPCServer( (&quot;127.0.0.1&quot;, 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( &quot;http://127.0.0.1:11374&quot; )
enso.registerCommand( 
    &quot;http://127.0.0.1:11375&quot;,
    &quot;leetify&quot;,
    &quot;Leetifies your currently selected text&quot;,
    &quot;&lt;p&gt;This command transforms the current&quot; \
    &quot;text selection to the leet version of &quot;\
    &quot;that text.&lt;/p&gt;&quot;,
    &quot;none&quot;
    )

enso.registerCommand(
    'http://127.0.0.1:11375',
    'amazon {keyword}',
    'Searches Amazon for keyword',
    '&lt;p&gt;This command will search Amazon '\
    'for the keyword.&lt;/p&gt;',
    'arbitrary'
    )

enso.registerCommand(
    'http://127.0.0.1:11375',
    'sms {name}',
    'Sends SMS to {name} via VIP WebSMS',
    '&lt;p&gt;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.&lt;/p&gt;',
    'bounded'
    )
enso.setCommandValidPostfixes('http://127.0.0.1:11375',
                              'sms {name}',
                             ['marija', 'test','erik','mum'&quot;&lt;http://www.humanized.com]&gt; )

enso.registerCommand( 
    &quot;http://127.0.0.1:11375&quot;,
    &quot;camel&quot;,
    &quot;Transforms your currently selected text to CamelCase&quot;,
    &quot;&lt;p&gt;This command transforms the current&quot; \
    &quot;text selection to the CamelCase version of &quot;\
    &quot;that text, removing whitespaces.&lt;/p&gt;&quot;,
    &quot;none&quot;
    )

try:
    print &quot;press enter to exit.&quot;
    raw_input()
finally:
    enso.unregisterCommand( &quot;http://127.0.0.1:11375&quot;,  &quot;leetify&quot; )
    enso.unregisterCommand( &quot;http://127.0.0.1:11375&quot;,  &quot;amazon {keyword}&quot; )
    enso.unregisterCommand( &quot;http://127.0.0.1:11375&quot;,  &quot;sms {name}&quot; )
    enso.unregisterCommand( &quot;http://127.0.0.1:11375&quot;,  &quot;camel&quot; )
</pre>
<br /><hr />
<p>
<a target="_blank" title="(external link)" href="http://www.razmjenavjestina.org/TamUsers/SynaN/EnsoExtensions">original<!-- wiki-renamed-hyperlink "original"<http://www.razmjenavjestina.org/TamUsers/SynaN/EnsoExtensions> --></a> <span class="nlw_phrase">Dec 14 5:58am<!-- wiki: {date: 2007-=12-=14 13:58:44 +0100} --></span></p>
</div>
]]></description>
<author>TamTam Migration</author>
<category>SynaN, TamTam, TamUsers</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/razmjenavjestina/index.cgi?ensoextensions</guid>
<pubDate>Fri, 14 Dec 2007 12:58:44 -0000</pubDate>
</item>
<item>
<title><![CDATA[SynaNTrazi]]></title>
<link>https://saturn.ffzg.hr/razmjenavjestina/index.cgi?synantrazi</link>
<description><![CDATA[<div>Creator: TamTam Migration</div><hr/><div>Tags: SynaN, TamTam, TamUsers, Trazi</div><hr/><div class="wiki">
<p>
Zanima me puno toga, od toga nešto više o:</p>
<ul>
<li>C++</li>
<li>Neuralne mreže</li>
<li>AI</li>
<li>Lego Mindstorms</li>
<li>Samogradnja</li>
</ul>
<hr />
<p>
<a target="_blank" title="(external link)" href="http://www.razmjenavjestina.org/TamUsers/SynaN/SynaNTrazi">original<!-- wiki-renamed-hyperlink "original"<http://www.razmjenavjestina.org/TamUsers/SynaN/SynaNTrazi> --></a> <span class="nlw_phrase">Dec 14 5:49am<!-- wiki: {date: 2007-=12-=14 13:49:20 +0100} --></span></p>
</div>
]]></description>
<author>TamTam Migration</author>
<category>SynaN, TamTam, TamUsers, Trazi</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/razmjenavjestina/index.cgi?synantrazi</guid>
<pubDate>Fri, 14 Dec 2007 12:49:20 -0000</pubDate>
</item>
<item>
<title><![CDATA[SynaNNudi]]></title>
<link>https://saturn.ffzg.hr/razmjenavjestina/index.cgi?synannudi</link>
<description><![CDATA[<div>Creator: TamTam Migration</div><hr/><div>Tags: Nudi, SynaN, TamTam, TamUsers</div><hr/><div class="wiki">
<p>
Od svega znam ponešto, nešto više od ostalog o:<br />
*python<br />
*pygtk<br />
*pyglade<br />
*PHP</p>
<hr />
<p>
<a target="_blank" title="(external link)" href="http://www.razmjenavjestina.org/TamUsers/SynaN/SynaNNudi">original<!-- wiki-renamed-hyperlink "original"<http://www.razmjenavjestina.org/TamUsers/SynaN/SynaNNudi> --></a> <span class="nlw_phrase">Dec 14 5:47am<!-- wiki: {date: 2007-=12-=14 13:47:28 +0100} --></span></p>
</div>
]]></description>
<author>TamTam Migration</author>
<category>Nudi, SynaN, TamTam, TamUsers</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/razmjenavjestina/index.cgi?synannudi</guid>
<pubDate>Fri, 14 Dec 2007 12:47:28 -0000</pubDate>
</item>
<item>
<title><![CDATA[GladePyGTK]]></title>
<link>https://saturn.ffzg.hr/razmjenavjestina/index.cgi?gladepygtk</link>
<description><![CDATA[<div>Creator: TamTam Migration</div><hr/><div>Tags: SynaN, TamTam, TamUsers</div><hr/><div class="wiki">
<br /><h1 id="glade_i_pygtk">Glade i PyGTK</h1>
<p>
Na NSND u Moravicama pokazivao sam nešto oko korištenja Glade-a i pygtk za</p>
<p>
polu-rapid development GTK GUI aplikacija. Primjer je bio mali app koji šalje</p>
<p>
sms preko Vip Web SMS stranice. Glade file možete naći ovdje:</p>
<p>
&quot;Python kod slijedi:</p>
<pre>
import urllib2
import urllib
import cookielib
import gobject
import pygtk
pygtk.require('2.0')
import pango
import gtk
import gtk.glade

class HellowWorldGTK:
        &quot;&quot;&quot;Main GTK not-thread&quot;&quot;&quot;

        def __init__(self):
                #set the glade file
                self.gladefile = &quot;vip.glade&quot;
                self.wTree = gtk.glade.XML(self.gladefile)
                dic = {&quot;on_send_button_clicked&quot; : self.send_sms,
                        &quot;on_reset_button_clicked&quot; : self.send_sms,
                       #&quot;on_VipSMS_key_press_event&quot; : self.update_counter,
                        &quot;on_VipSMS_destroy&quot; : gtk.main_quit }
                self.wTree.signal_autoconnect(dic)
                view = self.wTree.get_widget('message_text')
                buffer = view.get_buffer()
                buffer.connect('changed', self.update_counter)
        
        def update_counter(self,widget):
            baf = self.wTree.get_widget('message_text')
            buffer = baf.get_buffer()
            lenght = buffer.get_char_count()
            lenght = 135 - lenght
            label = self.wTree.get_widget('count_label')
            label.set_text(str(lenght))

        def send_sms(self,widget):
            global cj
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
            params = urllib.urlencode({'userRequestURL':\
'http%3A%2F%2Fwww.vip.hr%2Fsp%2Fd_sendSMS%3F' , \
'serviceRegistrationURL':_ , 'level': '30' , 'SetMsisdn' : 'true' ,\
 'serviceOID' : '2000358', 'UserID' : 'user_name', 'Password' : 'password'})
            bla = opener.open('http://webauth.vip.hr/vasmpauth/ProcessLoginServlet',params)
            #print bla.read()
            message = self.wTree.get_widget('message_text')
            message = message.get_buffer()
            message = message.get_text(message.get_start_iter(),message.get_end_iter())
            prefix = self.wTree.get_widget('cell_prefix')
            prefix = prefix.get_child()
            prefix = prefix.get_text()
            number = self.wTree.get_widget('cell_number')
            number = number.get_text()
            phoneno = str(number)
            size_diff = str(260-len(message))
            data = urllib.urlencode({'formflag' : 'true', 'netpref' : prefix,\
 'phoneno' : phoneno, 'charleft' : size_diff, 'message582' : message , \
'reply_to_mobile' : _})
            #print data
            sender = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
            send = opener.open('http://www.vip.hr/sp/d_sendSMS?',data)
            inpu = send.read()
            #print 'Preostalo poruka: ' + str(inpu.split('poslati: ')[1&quot;&lt;http://synan.rilinux.hr/code/vip.glade]&gt;.split('&lt;',1)[0])
            widg = self.wTree.get_widget('status_label')
            widg.set_text('Preostalo poruka: ' + str(inpu.split('poslati:\
 ')[1].split('&lt;',1)[0]))


if __name__ == &quot;__main__&quot;:
        cj = cookielib.CookieJar()
        hwg = HellowWorldGTK()
        gtk.main()
</pre>
<br /><hr />
<p>
<a target="_blank" title="(external link)" href="http://www.razmjenavjestina.org/TamUsers/SynaN/GladePyGTK">original<!-- wiki-renamed-hyperlink "original"<http://www.razmjenavjestina.org/TamUsers/SynaN/GladePyGTK> --></a> <span class="nlw_phrase">Dec 14 5:39am<!-- wiki: {date: 2007-=12-=14 13:39:22 +0100} --></span></p>
</div>
]]></description>
<author>TamTam Migration</author>
<category>SynaN, TamTam, TamUsers</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/razmjenavjestina/index.cgi?gladepygtk</guid>
<pubDate>Fri, 14 Dec 2007 12:39:22 -0000</pubDate>
</item>
</channel>
</rss>