2012年8月30日木曜日

pythonでGUI操作を自動化してみる。

タイトルが大げさでごめんなさい。

右クリックを連打するスクリプトを作ってみました。(Y!モバゲーを楽しむ為に)



GUI操作を自動化するソフトは色々ありますが、

今回は xautomation を使ってみました。

インストールは、apt-get install xautomation で行い。

xte というコマンドが使え下記のようなオプションがあります。


xte 'key [KEY]'
xte 'keydown [KEY]'
xte 'keyup [KEY]'
xte 'mousemove [x座標] [y座標]'
xte 'mouseclick [ボタン]'

で、早速 pythonで、5回/秒 1万回 左クリックするスクリプトを作ってみました。


import os
import time
for i in range(10000):
    cmd = "xte 'mouseclick 1'"
    os.system(cmd)
    time.sleep(0.2)
簡単ですね。

sleepを初めて使ったんですが、これは 0.2秒間 待ってもらう関数となります。


使ってみましたが、威力は抜群、考えれば使い道は広がりそうです。
日々繰り返している操作はたくさんあるので、pythonでお手軽に作れそうです。
さしあたって、IDとPassを入力してくれるアプリが便利そうだな。

2012年8月21日火曜日

pythonで nicovideo-dl を使ってみる。

ニコニコ動画をダウンロードして、後日ゆっくりと鑑賞したいと思い調べていたら、ubuntuに nicovideo-dl というコマンドを発見。便利です。

Synaptic からチェックしてダウンロード。

nicovideo-dlのオプション:

  -h, --help            print this help text and exit
  -v, --version         print program version and exit
  -u USERNAME, --username=USERNAME
                        account username(アカウント)
  -p PASSWORD, --password=PASSWORD
                        account password(パスワード)
  -o FILE, --output=FILE
                        output video file name
  -q, --quiet           activates quiet mode
  -s, --simulate        do not download video
  -t, --title           use title in file name(タイトルをファイル名にする)
  -l, --literal         use literal title in file name
  -n, --netrc           use .netrc authentication data
  -g, --get-url         print final video URL only
  -2, --title-too       used with -g, print title too



python で実行するには下記のようにして、urlを指定して実行すれば書いてきに動作してくれる。(エコノミーの判定方法がわかれば、もう少しよくなるんだがなぁ)

import os

def nicodl(url):
    cmd  = "nicovideo-dl "
    cmd += "-u アカウント "
    cmd += "-p パスワード "
    cmd += "-t "
    cmd += url
    os.system(cmd)

Pythonで gtk+glade のGUIアプリに挑戦(1)

いまさらながらニコニコ動画をチェックするアプリが作りたくなって、gtkに挑戦。
gladeのファイル読み込みに少々手間取ったのでメモ。
のんびり作成中。


import sys
try:
  import pygtk
  pygtk.require("2.0")
except:
  pass
try:
  import gtk
  import gtk.glade
except:
  sys.exit(1)

def gtk_init():
    builder = gtk.Builder()
    #sample.gladeファイルから画面を作成
    builder.add_from_file("mainwindow.glade")

    #windows1というオブジェクトを取得
    window = builder.get_object("window1")
    #windows1が破棄される時、testを呼び出す
    window.connect("delete-event", gtk_end)
    window.show()

def gtk_end(windows, event):
    print('here', windows, event)
    #明示的に終了しないと、Python自体が終了しないっぽい
    sys.exit(0)

if __name__ == "__main__":

    gtk_init()
    gtk.main()

2年ぶりに更新

 最後の記事が21年3月でしたので、27ヶ月ぶり。 2020年頃から始まったコロナ禍から在宅ワークがなくなり、通常運転に慣れてきた頃。 そろそろ新しい趣味を探していこうと思っています。 さて何するかな。。。