작년 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()