diff options
-rw-r--r-- | core/addon/bugreport.rb | 6 | ||||
-rw-r--r-- | core/addon/mentions.rb | 5 | ||||
-rw-r--r-- | core/mui/gtk_mumble.rb | 4 | ||||
-rw-r--r-- | core/plugin/gui.rb | 2 | ||||
-rw-r--r-- | core/post.rb | 3 | ||||
-rw-r--r-- | core/retriever.rb | 19 | ||||
-rw-r--r-- | core/test/test_message.rb | 38 | ||||
-rw-r--r-- | core/twitter_api.rb | 1 |
8 files changed, 49 insertions, 29 deletions
diff --git a/core/addon/bugreport.rb b/core/addon/bugreport.rb index 98e40f1d..5e1e05f4 100644 --- a/core/addon/bugreport.rb +++ b/core/addon/bugreport.rb @@ -16,10 +16,9 @@ Module.new do def self.popup alert_thread = if(Thread.main != Thread.current) then Thread.current end dialog = Gtk::Dialog.new("bug report") - container = main dialog.set_size_request(600, 400) dialog.window_position = Gtk::Window::POS_CENTER - dialog.vbox.pack_start(container, true, true, 30) + dialog.vbox.pack_start(main, true, true, 30) dialog.add_button(Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK) dialog.add_button(Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL) dialog.default_response = Gtk::Dialog::RESPONSE_OK @@ -41,7 +40,6 @@ Module.new do dialog.signal_connect("destroy") { false } - container.show dialog.show_all Gtk::Window.toplevels.first.hide if(alert_thread) @@ -80,7 +78,7 @@ Module.new do Plugin.call(:update, nil, [Message.new(:message => "エラー報告を送信しました。ありがとう♡", :system => true)]) rescue => e - Plugin.call(:update, nil, [Message.new(:message => "ごめんなさい。エラー通知通知すらバグってるみたいだわ\n\n#{e.to_s}", + Plugin.call(:update, nil, [Message.new(:message => "エラー通知「#{e.to_s}」フォロワー監視「エラー通知がやられたようだな」スレッド「しかしやつは我々プラグインのバグ情報をフィードバックするための機能・・・」プロフィール「そのプラグインにバグがあるとはmikutterプラグインの面汚しよ」", :system => true)]) end } end diff --git a/core/addon/mentions.rb b/core/addon/mentions.rb index 23f15250..51601605 100644 --- a/core/addon/mentions.rb +++ b/core/addon/mentions.rb @@ -8,14 +8,17 @@ miquire :mui, 'timeline' Module.new do main = Gtk::TimeLine.new() + image = Gtk::Image.new(Gdk::Pixbuf.new(MUI::Skin.get("reply.png"), 24, 24)) plugin = Plugin::create(:mentions) plugin.add_event(:boot){ |service| - Plugin.call(:mui_tab_regist, main, 'Replies', MUI::Skin.get("reply.png")) + # Plugin.call(:mui_tab_regist, main, 'Replies', MUI::Skin.get("reply.png")) + Plugin.call(:mui_tab_regist, main, 'Replies', image) Gtk::TimeLine.addwidgetrule(/@([a-zA-Z0-9_]+)/){ |text| user = User.selectby(:idname, text[1, text.size], -2).first Gtk::WebIcon.new(user[:profile_image_url], 12, 12) if user } } plugin.add_event(:mention){ |service, messages| + # image.set_pixbuf(Gdk::Pixbuf.new(MUI::Skin.get("icon.png"), 24, 24)) main.add(messages) } end diff --git a/core/mui/gtk_mumble.rb b/core/mui/gtk_mumble.rb index bc3a3c3d..8d98e48e 100644 --- a/core/mui/gtk_mumble.rb +++ b/core/mui/gtk_mumble.rb @@ -272,11 +272,9 @@ module Gtk MUI::Skin.get("overbutton_mouseover.png")) end def reply - puts @mumble.message.children.inspect add(@@buttons[:reply], :always_show => lambda{ UserConfig[:show_replied_icon] && @mumble.message.children.any?{ |m| m.from_me? } - }){ @mumble.gen_postbox(@mumble.replies, @msg) } - end + }){ @mumble.gen_postbox(@mumble.replies, @msg) } end def retweet add(@@buttons[:retweet]){ @mumble.gen_postbox(@mumble.replies, @msg, :retweet => true) } diff --git a/core/plugin/gui.rb b/core/plugin/gui.rb index 7f1468bf..b95b7e8e 100644 --- a/core/plugin/gui.rb +++ b/core/plugin/gui.rb @@ -163,6 +163,8 @@ module Plugin tab_label = Gtk::EventBox.new.tooltip(label) if image.is_a?(String) tab_label.add(Gtk::WebIcon.new(image, 24, 24)) + elsif image.is_a?(Gtk::Image) + tab_label.add(image) else tab_label.add(Gtk::Label.new(label)) end tab_label.extend(TabButton).label = label diff --git a/core/post.rb b/core/post.rb index b1042405..0697a623 100644 --- a/core/post.rb +++ b/core/post.rb @@ -210,6 +210,9 @@ class Post else twitter.unfavorite(msg[:id]) end end } end end + def inspect + "#<Post #{idname}>" end + private def try_post(message, api) diff --git a/core/retriever.rb b/core/retriever.rb index bab62663..93b5e07c 100644 --- a/core/retriever.rb +++ b/core/retriever.rb @@ -43,12 +43,14 @@ module Retriever # まだそのレコードのインスタンスがない場合、それを生成して返します。 def self.new_ifnecessary(hash) - if not(hash.is_a?(Hash)) or not(hash[:id]) or hash[:id] == 0 - raise ArgumentError.new("incorrect type #{hash.inspect}") end - result = @@storage[hash[:id]] - return result if result - self.new(hash) - end + if hash.is_a?(Model) + hash + elsif not(hash.is_a?(Hash)) or not(hash[:id]) or hash[:id] == 0 + raise ArgumentError.new("incorrect type #{hash.inspect}") + else + result = @@storage[hash[:id]] + return result if result + self.new(hash) end end # # インスタンスメソッド @@ -196,7 +198,10 @@ module Retriever result = detection throw :found end } } self.retrievers_reorder - self.new_ifnecessary(result) if result.is_a? Hash end + if result.is_a? Retriever::Model + result + elsif result.is_a? Hash + self.new_ifnecessary(result) end end def self.findbyid_ary(ids, count=-1) result = [] diff --git a/core/test/test_message.rb b/core/test/test_message.rb index 0f2573c8..871d1923 100644 --- a/core/test/test_message.rb +++ b/core/test/test_message.rb @@ -9,26 +9,29 @@ $logfile = nil $daemon = false class TC_Message < Test::Unit::TestCase - def setup - end # !> `*' interpreted as argument prefix - - def test_retrieve - id = 23858662507 - puts Message.findbyid(id).inspect # !> already initialized constant HYDE - puts Message.new_ifnecessary(:id => id).inspect + def setup # !> `*' interpreted as argument prefix + @service ||= Post.new end + def test_retrieve # !> already initialized constant HYDE + id = 24006538707 + x = Message.findbyid(id) + puts x.inspect + puts x.receive_message(true) + #puts Message.new_ifnecessary(:id => id).inspect + end # !> method redefined; discarding old miquire + def test_hierarchy toshi = User.new_ifnecessary(:id => 123456, :idname => 'toshi_a', :name => 'toshi') - miku = User.new_ifnecessary(:id => 393939, :idname => 'ha2ne39', :name => 'miku') # !> method redefined; discarding old miquire + miku = User.new_ifnecessary(:id => 393939, :idname => 'ha2ne39', :name => 'miku') c5 = Message.new_ifnecessary(:id => 15, :message => 'inhibit ashamed words!', :user => miku, :replyto =>13, :created => Time.now) c4 = Message.new_ifnecessary(:id => 14, :message => '...baka///', :user => miku, :replyto =>13, :created => Time.now) c3 = Message.new_ifnecessary(:id => 13, :message => 'i happy. because u r cute!', :user => toshi, :replyto =>12, :created => Time.now) - c2 = Message.new_ifnecessary(:id => 12, :message => 'hi master, how r u?', :user => miku, :replyto =>11, :created => Time.now) + c2 = Message.new_ifnecessary(:id => 12, :message => 'hi master, how r u?', :user => miku, :replyto =>11, :created => Time.now) # !> method redefined; discarding old inspect c1 = Message.new_ifnecessary(:id => 11, :message => 'hey, miku!', :user => toshi, :created => Time.now) assert_instance_of Array, c2.children assert_equal c1.children[0], c2 - assert_equal c2.receive_message, c1 # !> method redefined; discarding old inspect + assert_equal c2.receive_message, c1 assert_equal c2.children[0], c3 assert_equal c3.receive_message, c2 assert c3.children.include?(c4) @@ -37,11 +40,20 @@ class TC_Message < Test::Unit::TestCase assert_equal c4.receive_message, c3 end end +# ~> notice: ./post.rb:58:in `initialize': -:13:in `new' +# ~> ./retriever.rb:342: warning: instance variable @time not initialized +# ~> ./retriever.rb:342: warning: instance variable @time not initialized +# ~> notice: ./post.rb:58:in `initialize': -:13:in `new' +# ~> notice: ./twitter_api.rb:174:in `get': /statuses/show/24006538707.json => #<Net::HTTPOK:0x7fd626d42430> +# ~> ./retriever.rb:342: warning: instance variable @time not initialized +# ~> notice: ./twitter_api.rb:203:in `query_with_auth': get /account/verify_credentials.json => #<Net::HTTPOK:0x7fd626d13770> +# ~> notice: ./twitter_api.rb:174:in `get': /statuses/show/24005765187.json => #<Net::HTTPOK:0x7fd626cf5dd8> +# ~> ./retriever.rb:342: warning: instance variable @time not initialized # >> Loaded suite - # >> Started -# >> .#<Message:0x7f76f0cc1f50 @lock=#<Monitor:0x7f76f0cc1e88 @mon_owner=nil, @mon_waiting_queue=[], @mon_entering_queue=[], @mon_count=0>, @value={:image=>#<Message::Image:0x7f76f0cc1f00 @url=nil, @resource=nil>, :source=>"<a href="http://mikutter.d.hachune.net/" rel="nofollow">mikutter</a>", :message=>"でも、これCの人のクセなんかね。結構ifバーッと並べていくCerって確かに多いんだよ。逐次処理頼りにしてるのか。実は結構if〜elseとか書かないよな。ネットで散見してるの読む限り。", :user=>"82571791", :retweet=>nil, :replyto=>nil, :receiver=>nil, :geo=>nil, :created=>水 9月 08 07:37:30 +0900 2010, :exact=>nil, :id=>23858662507}> -# >> #<Message:0x7f76f0cc1f50 @lock=#<Monitor:0x7f76f0cc1e88 @mon_owner=nil, @mon_waiting_queue=[], @mon_entering_queue=[], @mon_count=0>, @value={:image=>#<Message::Image:0x7f76f0cc1f00 @url=nil, @resource=nil>, :source=>"<a href="http://mikutter.d.hachune.net/" rel="nofollow">mikutter</a>", :message=>"でも、これCの人のクセなんかね。結構ifバーッと並べていくCerって確かに多いんだよ。逐次処理頼りにしてるのか。実は結構if〜elseとか書かないよな。ネットで散見してるの読む限り。", :user=>"82571791", :retweet=>nil, :replyto=>nil, :receiver=>nil, :geo=>nil, :created=>水 9月 08 07:37:30 +0900 2010, :exact=>nil, :id=>23858662507}> +# >> .#<Message:0x7fd626d266e0 @value={:geo=>nil, :contributors=>nil, :exact=>true, :source=>"<a href="http://mikutter.d.hachune.net/" rel="nofollow">mikutter</a>", :retweet_count=>nil, :place=>nil, :message=>"@t_min 設定ファイル書き換えロジックは、ちょっとばっかりそれらしい書き方してるからなー。初学者向けではない。", :retweeted=>false, :user=>User(@kaorin_linux), :coordinates=>nil, :rule=>:status_show, :image=>#<Message::Image:0x7fd626d26690 @url=nil, @resource=nil>, :in_reply_to_screen_name=>"t_min", :receiver=>33031948, :replyto=>24005765187, :truncated=>false, :created=>木 9月 09 21:54:54 +0900 2010, :id=>24006538707, :favorited=>false, :created_at=>"Thu Sep 09 12:54:54 +0000 2010", :post=>#<Post toshi_a>}, @lock=#<Monitor:0x7fd626d26618 @mon_entering_queue=[], @mon_count=0, @mon_owner=nil, @mon_waiting_queue=[]>> +# >> 急に理解した。けど設定ファイルの書き換えがわけわかめ。つかこれ、全部自分で書けって言われたらキツイな。追加とか書き換えとか置き換えはできそうだけど。 # >> . -# >> Finished in 0.009562 seconds. +# >> Finished in 1.022638 seconds. # >> # >> 2 tests, 9 assertions, 0 failures, 0 errors diff --git a/core/twitter_api.rb b/core/twitter_api.rb index 5990c210..b9099065 100644 --- a/core/twitter_api.rb +++ b/core/twitter_api.rb @@ -322,7 +322,6 @@ class TwitterAPI < Mutex def status_show(args) path = "/statuses/show/#{args[:id]}.#{FORMAT}" head = {'Host' => HOST} - puts caller(0).join("\n") get(path, head) end |