0 web オープンのランチャをまた作る

web オープンのランチャをまた作る URLlauncher

191028

  • キーワードが直接アドレスの一部になってるサイトのページ
    http://**//=hoge
    みたいなのを開くときのために、クリップ監視ソフトを自作してそこからクロームを起動するようにしてある
    サイトの種類を自動判別するためにキーワード以外の文字列も含めてコピーして使う仕様だった
    でも最近、キーワードのみでサイトを開きたいケースが増えてきた

  • scieditor2 には文字列選択してクロームに投げる機能を実装してある
    サイトのurlをテキストに書いておいて、hogeの部分にキーワードをコピペしてクロームに投げることで何とかしてたんだが、専用のソフトを作りたくなってきた

  • 与えるのはキーワードだけで、どのサイトを開くかはボタンなどで選択することになる

・常駐のクリップアプリからクリップワードを引数にして呼ぶ
・ボタンの仕組みをどうするか??追加削除が自由なものにしたい
・スクリプト中にボタン名とアドレスをセットで書いてリスト化、ボタン名は動的に設定
・ボタンは全て一つの関数にコネクトして、その関数でボタンの文字列を取得して分岐させる

import sys,subprocess
from PyQt5.QtWidgets import QApplication,QWidget ,QMainWindow
import untitled

class MainWindow(QMainWindow):  
    def __init__(self):
        super().__init__()
        self.ui=untitled.Ui_MainWindow()
        self.ui.setupUi(self)

        args = sys.argv
        if len(args) > 1 :   
            self.ui.lineEdit.setText(args[1])

        buttons = [ self.ui.pushButton , self.ui.pushButton_2 , self.ui.pushButton_3 ,self.ui.pushButton_4,
            self.ui.pushButton_5,self.ui.pushButton_6 , self.ui.pushButton_7 ,self.ui.pushButton_8,
            self.ui.pushButton_9,self.ui.pushButton_10,self.ui.pushButton_11,self.ui.pushButton_12]

        self.blist = [ 
            ( 'Google' , r'https://www.google.com/search?q={target}' ) ,  # 
            ( 'hoge' , r'https://hoge/{target}/' ) ,  # 
        ]

        self.chrome = r'<fullpath>'

        for  i , l in enumerate( self.blist ) :
            buttons[i].setText( l[0] )
            buttons[i].clicked.connect( self.launchchrome )

    def launchchrome( self ) :
        title = self.sender().text()
        i = 0
        for  i , l in  enumerate( self.blist ) :
            if title == l[0] :
                break

        target = self.ui.lineEdit.text()
        url = self.blist[i][1].replace( '{target}' , target )
        subprocess.Popen( ( self.chrome , url ) ) 



if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    win = MainWindow()
    win.show()
    sys.exit(app.exec_())


191029

URLlauncher 位置を保存する

  • 位置を変えれないと不便なので
    Qtのデフォルトのクラスを使ってみた
from QtCore import QSettings
    def closeEvent (self,e) :
        settings = QSettings("OsamuApp", "URLlauncer")
        settings.setValue("geometry", self.saveGeometry())

    def init(self) :# コード追加
        try:
            settings = QSettings("OsamuApp", "URLlauncer")
            self.restoreGeometry( settings.value( "geometry" ) )
        except :
            self.setWindowTitle('fail--load setting')
  • winではレジストリを使う
    CURRENT_USER\Software の下にエントリが作成されてた
    レジストリを汚されるのが嫌で今まで使ってこなかったが、わざわざ設定ファイルを作らなくて良いので簡単で便利ではあります
    linuxに移ってもこのコードのままで設定保存してくれるようなので良いかもしれない
  • 保存は単純で良いが読込は初回起動時のことを常に考えなければならないのがやや面倒
    ざっくりとtryでくくったがこれでいいのかな
    ifでエラー回避するよりはtryを使うのが推奨らしいけどなあ

191103

  • ずっと放置していたがやはり不便なので「Bye」を実装

191122

  • 毎日使ってます(・∀・)ノ
    最下行を機能ボタンにして「コピー」「編集」「終了」を割り当てた

└──>その他もろもろの開発

0

メモを他の人に見せる

このメモを見せたい人に、このURL(今開いているページのURLです)を教えてあげてください

コメント(0)

  • someone

  • someone