gsuicaが動かない [プログラム]
GUI付きのアプリはわかりやすく使いやすい半面、GUIという動作環境が弱点になります。GUIが異なれば使えないだけでなく、アップデートでも動かなくなったり、あるいは、GUIのバージョンが限定されたりします。
gsuicaは経理処理のために非常に便利に使わせてもらっていました。しかし、debianのupgradeに伴いGNOME3へと移行してしまったため、GNOME2上でしか動作しないgsuicaが使えなくなってしまいました。非常に困ったことになりました。ICカードは20件までしか保持できません。ICカード上のデータがあふれる前になんとかしなければ、パソコンへの取り込み(経理処理)が非常に面倒になります。
このアプリの、私の使い方は、ICカード読み込み→保存、ですので、実はGUIは「まったく不要」です。なので、gsuicaが動かない原因であるGUI部分を削除してしまいましょう。un*xの基本精神は、「個々のコマンドはツールたれ」ですので、寡黙なツールらしく、ICカードを読んで標準出力へ出力するだけに改造してしまいます。
パッチは以下のとおりです。At your own risk(自己責任)でお願いします。
ライセンスはオリジナルのgsuicaを継承します。gsuicaのスクリプトの先頭部分をお読みください。
gsuicaは経理処理のために非常に便利に使わせてもらっていました。しかし、debianのupgradeに伴いGNOME3へと移行してしまったため、GNOME2上でしか動作しないgsuicaが使えなくなってしまいました。非常に困ったことになりました。ICカードは20件までしか保持できません。ICカード上のデータがあふれる前になんとかしなければ、パソコンへの取り込み(経理処理)が非常に面倒になります。
このアプリの、私の使い方は、ICカード読み込み→保存、ですので、実はGUIは「まったく不要」です。なので、gsuicaが動かない原因であるGUI部分を削除してしまいましょう。un*xの基本精神は、「個々のコマンドはツールたれ」ですので、寡黙なツールらしく、ICカードを読んで標準出力へ出力するだけに改造してしまいます。
パッチは以下のとおりです。At your own risk(自己責任)でお願いします。
ライセンスはオリジナルのgsuicaを継承します。gsuicaのスクリプトの先頭部分をお読みください。
--- gsuica-0.05 2012-04-18 01:02:52.000000000 +0900 +++ gpasmo 2012-04-18 01:50:24.000000000 +0900 @@ -21,13 +28,13 @@ =end # $Id: main.rb,v 1.9 2011/09/10 05:58:31 hito Exp $ $KCODE = "U" -require 'gtk2' -require 'gnome2' -require 'gconf2' +#require 'gtk2' +#require 'gnome2' +#require 'gconf2' require 'jcode' require 'kconv' require 'date' @@ -533,6 +541,43 @@ } end + ########################################################### + def _set_data(row, data) + row[Suica::COLUMN_TERMINAL] = data.terminal[1] + row[Suica::COLUMN_TYPE] = data.manage_type[1] + row[Suica::COLUMN_DATE] = data.date[1] + row[Suica::COLUMN_TIME] = data.time[1] + row[Suica::COLUMN_IN_LINE] = data.in_line[1] + row[Suica::COLUMN_IN_STATION] = data.in_station[1] + row[Suica::COLUMN_OUT_LINE] = data.out_line[1] + row[Suica::COLUMN_OUT_STATION] = data.out_station[1] + row[Suica::COLUMN_BALANCE] = data.balance[1] + row[Suica::COLUMN_EXPENCE] = data.expense[1] + row[Suica::COLUMN_NUMBER] = data.number[1] + row[Suica::COLUMN_REGION] = data.region[1] + row[Suica::COLUMN_BINARY] = data + end + def _save + n=@history.size; + (0...n-1).each {|i| + b0=@history[i].balance[1].to_i + b1=@history[i+1].balance[1].to_i + @history[i].expense[1]=(b1-b0).to_s + } + # + (0...n-1).each {|k| + i=@history[k] + row = [] + _set_data(row,i) + a = (0..Suica::COLUMN_BINARY).map {|j| + row[j].to_s + } + # + STDOUT.puts(Suica::ary2csv(a)) + } + end + ########################################################### + def save_user_db @db.save_user_db end @@ -627,890 +672,890 @@ end end -class MyLabel < Gtk::Label - def initialize(s, f = false) (この間、すべて削除(コメントアウト)のため略します) -def _(s) - s -end +#class MyLabel < Gtk::Label +# def initialize(s, f = false) (この間、すべて削除(コメントアウト)のため略します) +#def _(s) +# s +#end APP_VERSION = "0.05" APP_NAME = "gsuica" @@ -1545,7 +1590,11 @@ suica = Suica.new(path) -Gnome::Program.new(APP_NAME, APP_VERSION) +#Gnome::Program.new(APP_NAME, APP_VERSION) + +#GSuica = GSuica_ui.new(suica) +#Gtk::main if (GSuica.init()) + -GSuica = GSuica_ui.new(suica) -Gtk::main if (GSuica.init()) +suica.get_data +suica._save