You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2016/02/22 18:24:58 UTC

[whimsy.git] [1/1] Commit 5e34cb5: list date of addition

Commit 5e34cb5a3d48291a1de8b335ba67152e1b0a041a:
    list date of addition


Branch: refs/heads/master
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>

------------------------------------------------------------
www/members/attendance-xcheck.cgi                            | +++++++++++++ ---
------------------------------------------------------------
30 changes: 25 additions, 5 deletions.
------------------------------------------------------------


diff --git a/www/members/attendance-xcheck.cgi b/www/members/attendance-xcheck.cgi
index 1010801..28cb07e 100755
--- a/www/members/attendance-xcheck.cgi
+++ b/www/members/attendance-xcheck.cgi
@@ -9,12 +9,23 @@ meetings = ASF::SVN['private/foundation/Meetings']
 json = JSON.parse(IO.read "#{meetings}/attendance.json")
 attend = json['matrix'].keys
 
+# parse received info
+added = Hash.new('unknown')
+Dir["#{meetings}/*/memapp-received.txt"].each do |received|
+  meeting = File.basename(File.dirname(received))
+  next if meeting.include? 'template'
+  text = File.read(received)
+  list = text.scan(/<(.*)@.*>.*Yes/i) + text.scan(/^(?:yes\s+)+(\w\S*)/)
+  list.flatten.each {|id| added[id] = meeting}
+end
+
 # cross check against members.txt
 missing = []
 ASF::Member.list.each do |id, info|
-  missing << info[:name] unless attend.delete info[:name] or info['status']
+  unless attend.delete info[:name] or info['status']
+    missing << [info[:name], added[id]] unless info[:name].empty?
+  end
 end
-missing.delete ''
 
 # produce HTML
 _html do
@@ -30,9 +41,18 @@ _html do
   
   _h2_ 'Listed in members.txt but not listed as attending a members meeting'
 
-  _ul do
-    missing.sort.each do |name|
-      _li name
+  _table do
+    _thead do
+      _th 'name'
+      _th 'date added as a member'
+    end
+
+    missing.sort.each do |name, meeting|
+      next if meeting =~ /^2015/
+      _tr_ do
+        _td name
+        _td meeting
+      end
     end
   end
 end