aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-10-04 00:13:07 +0900
committerKazuki Yamaguchi <k@rhe.jp>2018-01-06 14:23:50 +0900
commit5a3663c9bcb4b82e0d015ee382fbdc3c6129d4a9 (patch)
treefe9912ec79205108b7b43eebe48c559de2843fd7
parent22df92fc4658d2a7516797c763eaad94697949a5 (diff)
downloadmikutter-5a3663c9bcb4b82e0d015ee382fbdc3c6129d4a9.tar.gz
followingcontrol を削除
-rw-r--r--core/plugin/followingcontrol/.mikutter.yml14
-rw-r--r--core/plugin/followingcontrol/followingcontrol.rb177
2 files changed, 0 insertions, 191 deletions
diff --git a/core/plugin/followingcontrol/.mikutter.yml b/core/plugin/followingcontrol/.mikutter.yml
deleted file mode 100644
index 47a43e0c..00000000
--- a/core/plugin/followingcontrol/.mikutter.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-slug: :followingcontrol
-depends:
- mikutter: '3.3'
- plugin:
- - gtk
- - gui
- - user_detail_view
- - skin
- - twitter
-version: '1.1'
-author: toshi_a
-name: フォロー
-description: フォロイー、フォロワーを表示するタブを追加する
diff --git a/core/plugin/followingcontrol/followingcontrol.rb b/core/plugin/followingcontrol/followingcontrol.rb
deleted file mode 100644
index 8c2bc121..00000000
--- a/core/plugin/followingcontrol/followingcontrol.rb
+++ /dev/null
@@ -1,177 +0,0 @@
-# -*- coding: utf-8 -*-
-
-require 'set'
-
-Plugin.create :followingcontrol do
-
- counter = gen_counter
-
- on_period do
- target = Enumerator.new{|y|
- Plugin.filtering(:worlds, y)
- }.lazy.select{|world|
- world.class.slug == :twitter and not @activating_services.include?(world)
- }
- count = counter.call
- if 0 == count % UserConfig["retrieve_interval_followings"]
- rewind(:followings, target) end
- if 0 == count % UserConfig["retrieve_interval_followers"]
- rewind(:followers, target) end
- end
-
- on_followings_created do |service, created|
- user = service.user_obj
- users = relation.followings[user]
- if users
- relation.followings[user] = (created + users).uniq end end
-
- on_followings_destroy do |service, destroyed|
- user = service.user_obj
- users = relation.followings[user]
- if users
- relation.followings[user] = users - destroyed end end
-
- on_followers_created do |service, created|
- user = service.user_obj
- users = relation.followers[user]
- if users
- relation.followers[user] = (created + users).uniq end end
-
- on_followers_destroy do |service, destroyed|
- user = service.user_obj
- users = relation.followers[user]
- if users
- relation.followers[user] = users - destroyed end end
-
- filter_message_introducers do |service, source, messages|
- followings = relation.followings[service.user]
- if followings
- [service, source, messages.select{|m| followings.include?(m.user) }]
- else
- [service, source, messages] end end
-
- user_fragment(:followings, _('フォローしている')) do
- set_icon Skin['followings.png']
- container = Gtk::EventBox.new
- userlist = Gtk::UserList.new
- nativewidget container
- if model.me?
- userlist.add_user((relation.followings[model] || []).reverse)
- events = []
- events << on_followings_created do |service, created|
- if service.user_obj == model
- userlist.add_user(created) end end
- events << on_followings_destroy do |service, destroyed|
- if service.user_obj == model
- userlist.remove_user(destroyed) end end
- events << on_followings_modified do |service, modified|
- if service.user_obj == model
- userlist.listview.model.clear
- userlist.add_user(modified.reverse) end end
- userlist.ssc(:destroy) do
- events.each(&:detach) end
- container.add(userlist).show_all
- else
- container.ssc_atonce :expose_event do
- loading_image = Gtk::Image.new(Skin['loading.png'].pixbuf(width: 128, height: 128))
- container.add(loading_image.show_all)
- Service.primary.followings(cache: true, user_id: model[:id]).next{ |users|
- container.remove(loading_image)
- loading_image = nil
- container.add(userlist.show_all)
- userlist.add_user(users.reverse)
- }.trap{
- loading_image.pixbuf = Skin['notfound.png'].pixbuf(width: 128, height: 128)
- } end
- end
- end
-
- user_fragment(:followers, _('フォローされている')) do
- set_icon Skin['followers.png']
- container = Gtk::EventBox.new
- userlist = Gtk::UserList.new
- nativewidget container
- if model.me?
- userlist.add_user((relation.followers[model] || []).reverse)
- events = []
- events << on_followers_created do |service, created|
- if service.user_obj == model
- userlist.add_user(created) end end
- events << on_followers_destroy do |service, destroyed|
- if service.user_obj == model
- userlist.remove_user(destroyed) end end
- events << on_followers_modified do |service, modified|
- if service.user_obj == model
- userlist.listview.model.clear
- userlist.add_user(modified.reverse) end end
- userlist.ssc(:destroy) do
- events.each(&:detach) end
- container.add(userlist).show_all
- else
- container.ssc_atonce :expose_event do
- loading_image = Gtk::Image.new(Skin['loading.png'].pixbuf(width: 128, height: 128))
- container.add(loading_image.show_all)
- Service.primary.followers(cache: true, user_id: model[:id]).next{ |users|
- container.remove(loading_image)
- loading_image = nil
- container.add(userlist.show_all)
- userlist.add_user(users.reverse)
- }.trap{
- loading_image.pixbuf = Skin['loading.png'].pixbuf(width: 128, height: 128)
- } end
- end
- end
-
- def boot
- @activating_services = Set.new
- @relation = Struct.new(:followings, :followers).new(TimeLimitedStorage.new, TimeLimitedStorage.new)
-
- Enumerator.new{|y|
- Plugin.filtering(:worlds, y)
- }.select{|world|
- world.class.slug == :twitter
- }.each(&method(:service_register))
- end
-
- def relation
- @relation end
-
- def rewind(direction, targets)
- relation = @relation[direction.to_sym]
- targets.each { |twitter|
- user = twitter.user_obj
- twitter.__send__(direction, cache: :keep, user_id: user.id).next { |users|
- primitive = relation[user]
- if primitive and not primitive.empty?
- created = users - primitive
- Plugin.call("#{direction}_created".to_sym, twitter, created) if not created.empty?
- destroyed = primitive - users
- Plugin.call("#{direction}_destroy".to_sym, twitter, destroyed) if not destroyed.empty?
- else
- relation[user] = users
- Plugin.call("#{direction}_modified".to_sym, twitter, users)
- end
- }
- }
- end
-
- # _service_ を監視対象に入れる
- # ==== Args
- # service :: 監視するservice
- def service_register(service)
- @activating_services << service
- user = service.user_obj
- Deferred.when(service.followings(cache: true, user_id: user[:id]),
- service.followers(cache: true, user_id: user[:id])).next { |followings, followers|
- @relation.followings[user] = followings
- @relation.followers[user] = followers
- Plugin.call(:followings_modified, service, @relation.followings[user])
- Plugin.call(:followers_modified, service, @relation.followers[user])
- @activating_services.delete(service)
- }.trap {
- @activating_services.delete(service)
- }
- end
-
- Delayer.new{ boot }
-end