summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'projects/devdashboard/original_scripts/developer.rb')
-rw-r--r--projects/devdashboard/original_scripts/developer.rb109
1 files changed, 109 insertions, 0 deletions
diff --git a/projects/devdashboard/original_scripts/developer.rb b/projects/devdashboard/original_scripts/developer.rb
new file mode 100644
index 0000000..27954fb
--- /dev/null
+++ b/projects/devdashboard/original_scripts/developer.rb
@@ -0,0 +1,109 @@
+#!/usr/bin/ruby -w
+
+require 'rss/2.0'
+require 'open-uri'
+
+class Developer
+ attr_reader :name, :handle, :blogRss, :pgpkey, :email, :joined, :birthday, :roles, :location, :herds, :hackergotchi, :forumsHandle, :documentation, :packages, :status, :projects, :projectMembership
+ attr_writer :name, :handle, :blogRss, :pgpkey, :email, :joined, :birthday, :roles, :location, :herds, :hackergotchi, :forumsHandle, :documentation, :packages, :status, :projectMembership
+
+ def initialize()
+ self.herds = Array.new
+ self.packages = Array.new
+ self.projectMembership = {}
+ end
+
+ def ciaRss()
+ return "http://cia.navi.cx/stats/author/#{self.handle}/.rss"
+ end
+
+ def forumsProfile()
+ myhandle = self.forumsHandle
+ myhandle = self.handle if myhandle.nil?
+ "http://forums.gentoo.org/profile.php?mode=viewprofile&u=#{myhandle}"
+ end
+
+ def forumsPosts()
+ myhandle = self.forumsHandle
+ myhandle = self.handle if myhandle.nil?
+ "http://forums.gentoo.org/search.php?search_author=#{myhandle}"
+ end
+
+ def myBugsRss()
+ "http://bugs.gentoo.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailreporter1=1&emailtype1=exact&email1=#{self.handle}%40gentoo.org&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&query_based_on=My%20Open%20Bugs&field0-0-0=noop&type0-0-0=noop&value0-0-0=&ctype=rss"
+ end
+
+ def parseRssForItems(feed)
+ items = []
+ begin
+ open(feed) do |http|
+ rss_source = http.read
+ rss = RSS::Parser.parse(rss_source, true)
+ if rss.nil?
+ rss = RSS::Parser.parse(rss_source, true, false)
+ end
+
+ unless rss.nil?
+ items = rss.items
+ end
+ end
+ # catch some errors that could occur...
+ rescue Exception
+ end
+
+ return items
+ end
+ def commitItems()
+ parseRssForItems(self.ciaRss)
+ end
+ def blogItems()
+ parseRssForItems(self.blogRss)
+ end
+
+ def print()
+ puts "Name: #{self.name}" unless self.name.nil?
+ puts "Username: #{self.handle}"
+ puts "Status: #{self.status}"
+ puts "Email: #{self.email}"
+ puts "PGP Key: #{self.pgpkey}" unless self.pgpkey.nil?
+ puts "Roles: #{self.roles}" unless self.roles.nil?
+ unless self.herds.nil?
+ puts "Herds: (#{self.herds.size})"
+ self.herds.each { |herd| puts "\t#{herd.name}"}
+ end
+ puts "Joined: #{self.joined}" unless self.joined.nil?
+ puts "Birthday: #{self.birthday}" unless self.birthday.nil?
+ puts "Location: #{self.location}" unless self.location.nil?
+# unless self.blogRss.nil?
+# puts "Blog RSS: #{self.blogRss}"
+# puts "Blog Posts: "
+# self.blogItems.each { |item| puts "\t#{item.title}" }
+# puts "Hackergotchi: #{self.hackergotchi}" unless self.hackergotchi.nil?
+# end
+ #puts "Commits RSS: #{self.ciaRss}"
+ #puts "Commits: "
+ #self.commitItems.each { |item| puts "\t#{item.title}" }
+ #puts "Bugs RSS: #{self.myBugsRss}"
+ puts "Forums Profile: #{self.forumsProfile}"
+ unless self.packages.empty?
+ puts "Packages:"
+ self.packages.each { |package| puts "\t#{package}" }
+ end
+
+ unless self.projectMembership.nil?
+ puts "Projects: (#{self.projectMembership.size})"
+ self.projectMembership.each do |key, membership|
+ puts "\tProject: #{key}"
+ puts "\tRole: #{membership.role}" unless membership.role.nil?
+ puts "\tDescription: #{membership.description}" unless membership.description.nil?
+ puts
+ end
+ unless self.documentation.nil?
+ puts "Documentation:"
+ self.documentation.each do |doc|
+ puts "\t#{doc.title} : #{doc.role}"
+ end
+ end
+ end
+ end
+end