summaryrefslogtreecommitdiff
blob: 39b20e3b8aff54e0c859be63419c5d101dbbc730 (plain)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
require 'rexml/document'

class Developer < ActiveRecord::Base
  include REXML
  
  has_and_belongs_to_many :herds
  has_many :project_members
  validates_presence_of :nickname

  USERINFO = '/home/nichoj/checkouts/gentoo/xml/htdocs/proj/en/devrel/roll-call/userinfo.xml'
  PLANET_INI_URL = 'http://sources.gentoo.org/viewcvs.py/*checkout*/planet/configs/planet.ini'

  def cia_rss_url
    "http://cia.navi.cx/stats/author/#{self.handle}/.rss"
  end
  
  def email
    "#{self.nickname}@gentoo.org" unless self.nickname.nil?
  end

  def Developer.load_planet_settings
    open(PLANET_INI_URL) do |file|
      while line = file.gets do
        # if line looks like "[asfasdfadfa]"
        if line =~ /^\[(.*)\]$/ 
          url = $1
          next if url == "Planet" or url == "DEFAULT"
        
          data = {}
          while line = file.gets do
            line.chomp!
            break if line == ""
            # line looks like "key = value"
            line =~ /(.*) = (.*)$/
            data[$1] = $2
          end

          dev = find_by_nickname data['username']
          next if dev.nil?

          dev.hackergotchi = "http://planet.gentoo.org/images/#{data['face']}" unless data['face'].nil?
          #self.blog_rss = url

          dev.save!
        end
      end
    end
  end

  def Developer.load_from_userinfo
    file = File.new USERINFO
    doc = Document.new file

    doc.root.elements.each('user') do |user|
      dev = find_by_nickname user.attributes['username']
      if dev.nil?
        dev = Developer.create
        dev.nickname = user.attributes['username']
      end

      dev.realname = user.elements['realname'].attributes['fullname']
      dev.pgpkey = user.elements['pgpkey'].text
      dev.joined_on = user.elements['joined'].text
      dev.roles = user.elements['roles'].text unless user.elements['roles'].nil?
      dev.location = user.elements['location'].text unless user.elements['location'].nil?
      if user.elements['status']
        dev.status = user.elements['status'].text
      else
        dev.status = 'active'
      end
        
      dev.save!
    end
  end
end