Sha256: 7d8c2080bddbea4dc88d059abdb1290507796448d6cde47e691a0692dc0b4ccf

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

# -*- encoding : utf-8 -*-
# Class to handle user subscriptions
class Subscription < Cinch::Plugins::Hangouts
  attr_accessor :nick, :all_links

  def to_yaml
    {}
  end

  def initialize(nick)
    @nick = nick
    @all_links = false
    save
  end

  def save
    subs = Subscription.storage
    subs.data[nick] = self
    subs.save
  end

  def delete
    subs = Subscription.storage
    subs.data[nick] = nil
    subs.save
  end

  def self.for_user(nick)
    return nil unless list.key?(nick)
    list[nick]
  end

  def self.list
    Subscription.storage.data
  end

  def self.notify(hangout_id, bot)
    nick = Hangout.find_by_id(hangout_id).nick
    Subscription.list.each do |sub|
      # Don't link the person who linked it.
      if nick != sub.nick
        user = Cinch::User.new(sub.nick, bot)
        respond(user, "#{nick} just linked a new hangout at: " +
                      "#{Hangout.url(hangout_id)}")
      end
    end
  end

  private

  def self.storage
    CinchStorage.new(@@subscription_filename)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cinch-hangouts-1.0.3 lib/cinch/plugins/hangouts/subscription.rb
cinch-hangouts-1.0.2 lib/cinch/plugins/hangouts/subscription.rb