SSブログ

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-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


共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。