1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
# -*- coding: utf-8 -*-
miquire :mui, 'sub_parts_voter'
require 'gtk2'
require 'cairo'
class Gdk::SubPartsRetweet < Gdk::SubPartsVoter
regist
def get_vote_count
[helper.message[:retweet_count] || 0, super].max
end
def get_default_votes
helper.message.retweeted_by
end
def title_icon
Gdk::Pixbuf.new(Skin.get("retweet.png"), @icon_width, @icon_height) end
def name
:retweeted end
Plugin.create(:sub_parts_retweet) do
on_retweet do |retweets|
retweets.deach{ |retweet|
Gdk::MiraclePainter.findbymessage_d(retweet.retweet_source(true)).next{ |mps|
mps.deach{ |mp|
if not mp.destroyed? and mp.subparts
begin
mp.subparts.find{ |sp| sp.class == Gdk::SubPartsRetweet }.add(retweet[:user])
mp.on_modify
rescue Gdk::MiraclePainter::DestroyedError
nil end end } }.terminate("retweet error") } end
on_retweet_destroyed do |source, user, retweet_id|
Gdk::MiraclePainter.findbymessage_d(source).next{ |mps|
mps.deach{ |mp|
if not mp.destroyed? and mp.subparts
begin
mp.subparts.find{ |sp| sp.class == Gdk::SubPartsRetweet }.delete(user)
mp.on_modify
rescue Gdk::MiraclePainter::DestroyedError
nil end end }.terminate("retweet destroy error")
}
end
end
end
|