작년 6월?쯤... 꽤 전에, 인터넷 창 열고 클릭하기 귀찮아서 만들었던 것으로 기억됨.

파이썬/PyGTK로 제작하였으므로 두 개가 설치되어 있지 않으면 실행이 안 된다.


이용자의 레지스터를 참조해서 기본 브라우저를 띄우고 해당 사이트 주소+검색어를 자동으로 쳐주는 것.

참 잉여였던 것 같다.



searchgui.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-



import os

import _winreg

import getpass


import pygtk

pygtk.require("2.0")

import gtk


isChooseBrowser = False

spaceChar = "+"

searchKeyword = ""


siteDic = { "기본 검색":"", "엔하 위키 미러" : "http://mirror.enha.kr/wiki/", "위키피디아" : "ko.wikipedia.org/w/index.php?search=", "구글" : "https://www.google.co.kr/search?q=", "네이버" : "http://search.naver.com/search.naver?where=nexearch&query=" }


class Search:

    

    def keypress( self, widget, event, entry ):

        if(  int( gtk.keysyms.F5 ) >= int( event.keyval ) >= int( gtk.keysyms.F1 ) ):

            if( event.keyval == gtk.keysyms.F1 ):

                shortcut = "기본 검색"

            if( event.keyval == gtk.keysyms.F2 ):

                shortcut = "엔하 위키 미러"

            if( event.keyval == gtk.keysyms.F3 ):

                shortcut = "위키피디아"

            if( event.keyval == gtk.keysyms.F4 ):

                shortcut = "구글"

            if( event.keyval == gtk.keysyms.F5 ):

                shortcut = "네이버"

            self.startsearch( self, shortcut, entry )


    def delete_event(self, widget, event, data =None ):

        print("test")

        return False

    def destroy(self, widget, data=None ):

        gtk.main_quit()

        

    def enter_callback(self, widget, entry):

        print( entry.get_text())


    def startsearch( self, widget, event, entry  ):

        

        if( event == "기본 검색" ):

            spaceChar = " "

            searchSite = siteDic["기본 검색"]

        if( event == "엔하 위키 미러" ):

            spaceChar = "%20"

            searchSite = siteDic["엔하 위키 미러"]

        if( event == "위키피디아" ):

            spaceChar = "+"

            searchSite = siteDic["위키피디아"]

        if( event == "구글" ):

            spaceChar = "+"

            searchSite = siteDic["구글"]

        if( event == "네이버" ):

            spaceChar = "+"

            searchSite = siteDic["네이버"]

            

        searchKeyword = entry.get_text()

        searchSite += searchKeyword.replace(" ",spaceChar)


        basicBrowser = _winreg.QueryValue( _winreg.HKEY_CLASSES_ROOT, "http\\shell\\open\\command" )

        basicBrowser = basicBrowser[ 0 : basicBrowser.find( " -" ) ]

        os.system( "\"" + basicBrowser + " \"" + searchSite.encode("euc-kr") + "\"" +"\"" )


        print(( "검색 사이트 :\t" + event ).encode( "euc-kr" ))

        print(( "공백 문자 :\t" + spaceChar).encode( "euc-kr" ))

        print( "검색어 :\t" + searchKeyword )

        print("\"" + basicBrowser + " \"" + searchSite.encode("euc-kr") + "\"" +"\"")

    

    def __init__(self):

        

        self.window = gtk.Window( gtk.WINDOW_TOPLEVEL )

        self.window.set_size_request(500,40)

        self.window.set_resizable( False )

        self.window.move( 0,0 )

        self.window.connect("delete_event", self.delete_event)

        self.window.connect("destroy", self.destroy)

        self.window.set_border_width(0)

        

        vBox = gtk.VBox( False, 0 )

        hEntryBox = gtk.HBox( False, 0 )

        hBBox = gtk.HButtonBox( )


        self.window.add(vBox)

        vBox.show()

        

        ##self.window.add(hEntryBox)

        hEntryBox.show()


        ##self.window.add(hBBox)

        hBBox.show()

        

        entry = gtk.Entry()

        ##entry.connect("activate", self.enter_callback, entry)


        entry.set_editable( True )

        entry.select_region(0, len(entry.get_text()))

        entry.show()

        


        btn1 = gtk.Button("기본 검색(F1)")

        btn1.connect( "clicked", self.startsearch, "기본 검색", entry)

        btn1.set_size_request(95,20)

        ##self.window.add(btn1)


        btn2 = gtk.Button("엔하 위키(F2)")

        btn2.connect( "clicked", self.startsearch, "엔하 위키 미러", entry)

        btn2.set_size_request(95,20)

        ##self.window.add(btn2)


        btn3 = gtk.Button("위키피디아(F3)")

        btn3.connect( "clicked", self.startsearch, "위키피디아", entry)

        btn3.set_size_request(95,20)

        ##self.window.add(btn3)


        btn4 = gtk.Button("구글(F4)")

        btn4.connect( "clicked", self.startsearch, "구글", entry)

        btn4.set_size_request(95,20)

        ##self.window.add(btn4)


        btn5 = gtk.Button("네이버(F5)")

        btn5.connect( "clicked", self.startsearch, "네이버", entry)

        btn5.set_size_request(95,20)

        ##self.window.add(btn5)


        hBBox.add( btn1 )

        hBBox.add( btn2 )

        hBBox.add( btn3 )

        hBBox.add( btn4 )

        hBBox.add( btn5 )

            

        btn1.show()

        btn2.show()

        btn3.show()

        btn4.show()

        btn5.show()


        hEntryBox.pack_start(entry, True, True, 0)

        ##hEntryBox.pack_end(entry, True, True, 0)


        vBox.pack_start( hEntryBox, True, True, 0)

        vBox.pack_end( hBBox, True, True, 0)


        self.window.connect("key-press-event", self.keypress, entry)

        self.window.show()

            

    def main(self):

        gtk.main()


if __name__ == "__main__" :

    hWnd = Search()

    hWnd.main()



+ Recent posts