illuminerdi-nanowrimo 0.5

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,11 @@
1
+ === 0.5 / 2009-05-21
2
+
3
+ * first major release
4
+ * API is fully functional as a wrapper for the Nanowrimo API
5
+
6
+ === 0.1 / 2009-05-17
7
+
8
+ * 1 major enhancement
9
+
10
+ * Birthday!
11
+
data/Manifest.txt ADDED
@@ -0,0 +1,23 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ lib/nanowrimo.rb
6
+ lib/nanowrimo/genre.rb
7
+ lib/nanowrimo/region.rb
8
+ lib/nanowrimo/site.rb
9
+ lib/nanowrimo/user.rb
10
+ test/test_nanowrimo.rb
11
+ test/test_genre.rb
12
+ test/test_region.rb
13
+ test/test_site.rb
14
+ test/test_user.rb
15
+ test/fixtures/genre_wc.xml
16
+ test/fixtures/genre_wc_history.xml
17
+ test/fixtures/region_wc.xml
18
+ test/fixtures/region_wc_history.xml
19
+ test/fixtures/site_wc.xml
20
+ test/fixtures/site_wc_history.xml
21
+ test/fixtures/user_page.htm
22
+ test/fixtures/user_wc.xml
23
+ test/fixtures/user_wc_history.xml
data/README.txt ADDED
@@ -0,0 +1,72 @@
1
+ = nanowrimo
2
+
3
+ * http://github.com/illuminerdi/nanowrimo
4
+ * http://www.nanowrimo.org
5
+
6
+ == DESCRIPTION:
7
+
8
+ A simple API wrapper for Nanowrimo.org. Nanowrimo Word Count API documentation here:
9
+ http://www.nanowrimo.org/eng/wordcount_api
10
+
11
+ == FEATURES/PROBLEMS:
12
+
13
+ Features:
14
+ * Simple! Clean! Well-tested!
15
+ * Easy to roll into a Rails application (that's next)
16
+ * Separate APIs for Users, Site, Regions, and Genres
17
+
18
+ Problems:
19
+ * The Genres API on Nanowrimo.org is a little broken right now, so there's not much data to be loaded.
20
+
21
+ == SYNOPSIS:
22
+
23
+ >> me = Nanowrimo::User.new(240659)
24
+ => #<Nanowrimo::User:0x105b904 @uid=240659>
25
+ >> me.load
26
+ => ["uid", "uname", "user_wordcount"]
27
+ >> me.user_wordcount
28
+ => "55415"
29
+ >> me.winner?
30
+ => true
31
+ # YAY!
32
+
33
+ # Want an array of day-by-day progress for yourself?
34
+ >> me.load_history
35
+
36
+ # Want an array of day-by-day progress for your region?
37
+ >> my_region = Nanowrimo::Region.new(84)
38
+ >> my_region.load_history
39
+
40
+ == REQUIREMENTS:
41
+
42
+ * ruby 1.8.6
43
+ * nokogiri 1.2.3
44
+
45
+ == INSTALL:
46
+
47
+ * Not there yet, just download and package and install. Soon!
48
+
49
+ == LICENSE:
50
+
51
+ (The MIT License)
52
+
53
+ Copyright (c) 2009 Joshua Clingenpeel
54
+
55
+ Permission is hereby granted, free of charge, to any person obtaining
56
+ a copy of this software and associated documentation files (the
57
+ 'Software'), to deal in the Software without restriction, including
58
+ without limitation the rights to use, copy, modify, merge, publish,
59
+ distribute, sublicense, and/or sell copies of the Software, and to
60
+ permit persons to whom the Software is furnished to do so, subject to
61
+ the following conditions:
62
+
63
+ The above copyright notice and this permission notice shall be
64
+ included in all copies or substantial portions of the Software.
65
+
66
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
67
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
68
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
69
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
70
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
71
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
72
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ # -*- ruby -*-
2
+
3
+ $: << 'lib'
4
+ require 'rubygems'
5
+ require 'hoe'
6
+ require './lib/nanowrimo.rb'
7
+
8
+ Hoe.new('nanowrimo', Nanowrimo::VERSION) do |p|
9
+ # p.rubyforge_name = 'nanowrimox' # if different than lowercase project name
10
+ p.developer('Joshua Clingenpeel', 'joshua.clingenpeel@gmail.com')
11
+ end
12
+
13
+ # vim: syntax=Ruby
data/lib/nanowrimo.rb ADDED
@@ -0,0 +1,32 @@
1
+ #! /usr/bin/env ruby -w
2
+
3
+ $: << 'lib'
4
+ require 'rubygems'
5
+ require 'nokogiri'
6
+ require 'open-uri'
7
+ require 'nanowrimo/user'
8
+ require 'nanowrimo/site'
9
+ require 'nanowrimo/region'
10
+ require 'nanowrimo/genre'
11
+
12
+ module Nanowrimo
13
+ VERSION = '0.5'
14
+ API_URI = 'http://www.nanowrimo.org/wordcount_api'
15
+ GOAL = 50_000
16
+
17
+ def self.parse(path, key, attribs)
18
+ method = path.split('/').first
19
+ uri = "#{API_URI}/#{method}"
20
+ uri = "#{uri}/#{key}" unless key.nil?
21
+ doc = Nokogiri::XML(open(uri))
22
+ result = []
23
+ doc.xpath(path).each {|n|
24
+ node = {}
25
+ attribs.each {|d|
26
+ node[d.intern] = n.at(d).content
27
+ }
28
+ result << node
29
+ }
30
+ result
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ #! /usr/bin/env ruby -w
2
+
3
+ module Nanowrimo
4
+ class Genre
5
+ FIELDS = %w[gid gname genre_wordcount max min stddev average count]
6
+ HISTORY_FIELDS = %w[wc wcdate max min stddev average count]
7
+ attr_accessor(*FIELDS)
8
+ attr_accessor :history
9
+ def initialize(gid)
10
+ @gid = gid
11
+ end
12
+
13
+ def load
14
+ attribs = Nanowrimo.parse('wcgenre', @gid, FIELDS).first
15
+ FIELDS.each do |attrib|
16
+ self.send(:"#{attrib}=", attribs[attrib.intern])
17
+ end
18
+ end
19
+
20
+ def load_history
21
+ @history = Nanowrimo.parse('wcgenrehist/wordcounts/wcentry', @gid, HISTORY_FIELDS)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ #! /usr/bin/env ruby -w
2
+
3
+ module Nanowrimo
4
+ class Region
5
+ FIELDS = %w[rid rname region_wordcount max min stddev average count donations numdonors]
6
+ HISTORY_FIELDS = %w[wc wcdate max min stddev average count donations donors]
7
+ attr_accessor(*FIELDS)
8
+ attr_accessor :history
9
+ def initialize(rid)
10
+ @rid = rid
11
+ end
12
+
13
+ def load
14
+ attribs = Nanowrimo.parse('wcregion', @rid, FIELDS).first
15
+ FIELDS.each do |attrib|
16
+ self.send(:"#{attrib}=", attribs[attrib.intern])
17
+ end
18
+ end
19
+
20
+ def load_history
21
+ @history = Nanowrimo.parse('wcregionhist/wordcounts/wcentry',@rid,HISTORY_FIELDS)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ #! /usr/bin/env ruby -w
2
+
3
+ module Nanowrimo
4
+ class Site
5
+ FIELDS = %w[site_wordcount max min stddev average count]
6
+ HISTORY_FIELDS = %w[wc wcdate max min stddev average count]
7
+ attr_accessor(*FIELDS)
8
+ attr_accessor :history
9
+ def load
10
+ attribs = Nanowrimo.parse('wcstatssummary', nil, FIELDS).first
11
+ FIELDS.each do |attrib|
12
+ self.send(:"#{attrib}=", attribs[attrib.intern])
13
+ end
14
+ end
15
+
16
+ def load_history
17
+ @history = Nanowrimo.parse('wcstats/wordcounts/wcentry', nil, HISTORY_FIELDS)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ #! /usr/bin/env ruby -w
2
+
3
+ module Nanowrimo
4
+ class User
5
+ FIELDS = %w[uid uname user_wordcount]
6
+ HISTORY_FIELDS = %w[wc wcdate]
7
+ attr_accessor(*FIELDS)
8
+ attr_accessor :history
9
+ def initialize uid
10
+ @uid = uid
11
+ end
12
+
13
+ def load
14
+ attribs = Nanowrimo.parse('wc', @uid, FIELDS).first
15
+ FIELDS.each do |attrib|
16
+ self.send(:"#{attrib}=", attribs[attrib.intern])
17
+ end
18
+ end
19
+
20
+ def load_history
21
+ @history = Nanowrimo.parse('wchistory/wordcounts/wcentry', @uid, HISTORY_FIELDS)
22
+ end
23
+
24
+ def winner?
25
+ self.user_wordcount.to_i >= Nanowrimo::GOAL
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" standalone="yes"?><!DOCTYPE wcgenre [
2
+ <!ELEMENT wcgenre (gid, error, gname, genre_wordcount, max, min, stddev, average, count)>
3
+ <!ELEMENT gid (#PCDATA)>
4
+ <!ELEMENT error (#PCDATA)>
5
+ <!ELEMENT gname (#PCDATA)>
6
+ <!ELEMENT genre_wordcount (#PCDATA)>
7
+ <!ELEMENT max (#PCDATA)>
8
+ <!ELEMENT min (#PCDATA)>
9
+ <!ELEMENT stddev (#PCDATA)>
10
+ <!ELEMENT average (#PCDATA)>
11
+ <!ELEMENT count (#PCDATA)>
12
+ ]>
13
+ <wcgenre>
14
+ <gid>13</gid>
15
+ <gname>Science Fiction
16
+ <genre_wordcount>0</genre_wordcount>
17
+ <max></max>
18
+ <min></min>
19
+ <stddev></stddev>
20
+ <average></average>
21
+ <count></count>
22
+ </wcgenre>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" standalone="yes"?><!DOCTYPE wcgenrehist [
2
+ <!ELEMENT wcgenrehist (gid, error, gname, genre_wordcount, wordcounts)>
3
+ <!ELEMENT gid (#PCDATA)>
4
+ <!ELEMENT error (#PCDATA)>
5
+ <!ELEMENT gname (#PCDATA)>
6
+ <!ELEMENT genre_wordcount (#PCDATA)>
7
+ <!ELEMENT wordcounts (wcentry+)>
8
+ <!ELEMENT wcentry (wc, wcdate, max, min, stddev, average, count)>
9
+ <!ELEMENT wc (#PCDATA)>
10
+ <!ELEMENT wcdate (#PCDATA)>
11
+ <!ELEMENT max (#PCDATA)>
12
+ <!ELEMENT min (#PCDATA)>
13
+ <!ELEMENT stddev (#PCDATA)>
14
+ <!ELEMENT average (#PCDATA)>
15
+ <!ELEMENT count (#PCDATA)>
16
+ ]>
17
+ <wcgenrehist>
18
+ <gid>13</gid>
19
+ <gname>Science Fiction
20
+ <genre_wordcount>0</genre_wordcount>
21
+ <wordcounts>
22
+ </wordcounts>
23
+ </wcgenrehist>
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" standalone="yes"?><!DOCTYPE wcregion [
2
+ <!ELEMENT wcregion (rid, error, rname, region_wordcount, max, min, stddev, average, count, donations, numdonors)>
3
+ <!ELEMENT rid (#PCDATA)>
4
+ <!ELEMENT error (#PCDATA)>
5
+ <!ELEMENT rname (#PCDATA)>
6
+ <!ELEMENT region_wordcount (#PCDATA)>
7
+ <!ELEMENT max (#PCDATA)>
8
+ <!ELEMENT min (#PCDATA)>
9
+ <!ELEMENT stddev (#PCDATA)>
10
+ <!ELEMENT average (#PCDATA)>
11
+ <!ELEMENT count (#PCDATA)>
12
+ <!ELEMENT donations (#PCDATA)>
13
+ <!ELEMENT numdonors (#PCDATA)>
14
+ ]>
15
+ <wcregion>
16
+ <rid>84</rid>
17
+ <rname>United States :: Washington :: Seattle</rname>
18
+ <region_wordcount>25865208</region_wordcount>
19
+ <max>310458</max>
20
+ <min>1</min>
21
+ <stddev>0</stddev>
22
+ <average>31736</average>
23
+ <count>815</count>
24
+ <donations>7735.00</donations>
25
+ <numdonors>148</numdonors>
26
+ </wcregion>
@@ -0,0 +1,355 @@
1
+ <?xml version="1.0" standalone="yes"?><!DOCTYPE wcregionhist [
2
+ <!ELEMENT wcregionhist (rid, error, rname, region_wordcount, wordcounts)>
3
+ <!ELEMENT rid (#PCDATA)>
4
+ <!ELEMENT error (#PCDATA)>
5
+ <!ELEMENT rname (#PCDATA)>
6
+ <!ELEMENT region_wordcount (#PCDATA)>
7
+ <!ELEMENT wordcounts (wcentry+)>
8
+ <!ELEMENT wcentry (wc, wcdate, max, min, stddev, average, count, donations, numdonors)>
9
+ <!ELEMENT wc (#PCDATA)>
10
+ <!ELEMENT wcdate (#PCDATA)>
11
+ <!ELEMENT max (#PCDATA)>
12
+ <!ELEMENT min (#PCDATA)>
13
+ <!ELEMENT stddev (#PCDATA)>
14
+ <!ELEMENT average (#PCDATA)>
15
+ <!ELEMENT count (#PCDATA)>
16
+ <!ELEMENT donations (#PCDATA)>
17
+ <!ELEMENT numdonors (#PCDATA)>
18
+ ]>
19
+ <wcregionhist>
20
+ <rid>84</rid>
21
+ <rname>United States :: Washington :: Seattle</rname>
22
+ <region_wordcount>25865208</region_wordcount>
23
+ <wordcounts>
24
+ <wcentry>
25
+ <wc>71910</wc>
26
+ <wcdate>2008-11-01</wcdate>
27
+ <max>2883</max>
28
+ <min>62</min>
29
+ <stddev>0</stddev>
30
+ <average>1331</average>
31
+ <count>54</count>
32
+ <donations>7735.00</donations>
33
+ <donors></donors>
34
+ </wcentry>
35
+ <wcentry>
36
+ <wc>695248</wc>
37
+ <wcdate>2008-11-02</wcdate>
38
+ <max>11371</max>
39
+ <min>3</min>
40
+ <stddev>0</stddev>
41
+ <average>2653</average>
42
+ <count>262</count>
43
+ <donations>7735.00</donations>
44
+ <donors></donors>
45
+ </wcentry>
46
+ <wcentry>
47
+ <wc>1625778</wc>
48
+ <wcdate>2008-11-03</wcdate>
49
+ <max>27559</max>
50
+ <min>1</min>
51
+ <stddev>0</stddev>
52
+ <average>3908</average>
53
+ <count>416</count>
54
+ <donations>7735.00</donations>
55
+ <donors></donors>
56
+ </wcentry>
57
+ <wcentry>
58
+ <wc>2413589</wc>
59
+ <wcdate>2008-11-04</wcdate>
60
+ <max>31483</max>
61
+ <min>1</min>
62
+ <stddev>0</stddev>
63
+ <average>4723</average>
64
+ <count>511</count>
65
+ <donations>7735.00</donations>
66
+ <donors></donors>
67
+ </wcentry>
68
+ <wcentry>
69
+ <wc>3058448</wc>
70
+ <wcdate>2008-11-05</wcdate>
71
+ <max>39436</max>
72
+ <min>1</min>
73
+ <stddev>0</stddev>
74
+ <average>5510</average>
75
+ <count>555</count>
76
+ <donations>7735.00</donations>
77
+ <donors></donors>
78
+ </wcentry>
79
+ <wcentry>
80
+ <wc>3799629</wc>
81
+ <wcdate>2008-11-06</wcdate>
82
+ <max>44506</max>
83
+ <min>1</min>
84
+ <stddev>0</stddev>
85
+ <average>6364</average>
86
+ <count>597</count>
87
+ <donations>7735.00</donations>
88
+ <donors></donors>
89
+ </wcentry>
90
+ <wcentry>
91
+ <wc>4569130</wc>
92
+ <wcdate>2008-11-07</wcdate>
93
+ <max>50152</max>
94
+ <min>1</min>
95
+ <stddev>0</stddev>
96
+ <average>7287</average>
97
+ <count>627</count>
98
+ <donations>7735.00</donations>
99
+ <donors></donors>
100
+ </wcentry>
101
+ <wcentry>
102
+ <wc>5189194</wc>
103
+ <wcdate>2008-11-08</wcdate>
104
+ <max>50152</max>
105
+ <min>1</min>
106
+ <stddev>0</stddev>
107
+ <average>7971</average>
108
+ <count>651</count>
109
+ <donations>7735.00</donations>
110
+ <donors></donors>
111
+ </wcentry>
112
+ <wcentry>
113
+ <wc>5972666</wc>
114
+ <wcdate>2008-11-09</wcdate>
115
+ <max>52352</max>
116
+ <min>1</min>
117
+ <stddev>0</stddev>
118
+ <average>8901</average>
119
+ <count>671</count>
120
+ <donations>7735.00</donations>
121
+ <donors></donors>
122
+ </wcentry>
123
+ <wcentry>
124
+ <wc>6931977</wc>
125
+ <wcdate>2008-11-10</wcdate>
126
+ <max>52361</max>
127
+ <min>1</min>
128
+ <stddev>0</stddev>
129
+ <average>10149</average>
130
+ <count>683</count>
131
+ <donations>7735.00</donations>
132
+ <donors></donors>
133
+ </wcentry>
134
+ <wcentry>
135
+ <wc>7738454</wc>
136
+ <wcdate>2008-11-11</wcdate>
137
+ <max>52361</max>
138
+ <min>1</min>
139
+ <stddev>0</stddev>
140
+ <average>11054</average>
141
+ <count>700</count>
142
+ <donations>7735.00</donations>
143
+ <donors></donors>
144
+ </wcentry>
145
+ <wcentry>
146
+ <wc>8539085</wc>
147
+ <wcdate>2008-11-12</wcdate>
148
+ <max>57007</max>
149
+ <min>1</min>
150
+ <stddev>0</stddev>
151
+ <average>11976</average>
152
+ <count>713</count>
153
+ <donations>7735.00</donations>
154
+ <donors></donors>
155
+ </wcentry>
156
+ <wcentry>
157
+ <wc>9480351</wc>
158
+ <wcdate>2008-11-13</wcdate>
159
+ <max>66173</max>
160
+ <min>1</min>
161
+ <stddev>0</stddev>
162
+ <average>12916</average>
163
+ <count>734</count>
164
+ <donations>7735.00</donations>
165
+ <donors></donors>
166
+ </wcentry>
167
+ <wcentry>
168
+ <wc>10307820</wc>
169
+ <wcdate>2008-11-14</wcdate>
170
+ <max>70184</max>
171
+ <min>1</min>
172
+ <stddev>0</stddev>
173
+ <average>13891</average>
174
+ <count>742</count>
175
+ <donations>7735.00</donations>
176
+ <donors></donors>
177
+ </wcentry>
178
+ <wcentry>
179
+ <wc>10932630</wc>
180
+ <wcdate>2008-11-15</wcdate>
181
+ <max>73169</max>
182
+ <min>1</min>
183
+ <stddev>0</stddev>
184
+ <average>14635</average>
185
+ <count>747</count>
186
+ <donations>7735.00</donations>
187
+ <donors></donors>
188
+ </wcentry>
189
+ <wcentry>
190
+ <wc>11688373</wc>
191
+ <wcdate>2008-11-16</wcdate>
192
+ <max>80707</max>
193
+ <min>1</min>
194
+ <stddev>0</stddev>
195
+ <average>15481</average>
196
+ <count>755</count>
197
+ <donations>7735.00</donations>
198
+ <donors></donors>
199
+ </wcentry>
200
+ <wcentry>
201
+ <wc>12726851</wc>
202
+ <wcdate>2008-11-17</wcdate>
203
+ <max>123576</max>
204
+ <min>1</min>
205
+ <stddev>0</stddev>
206
+ <average>16658</average>
207
+ <count>764</count>
208
+ <donations>7735.00</donations>
209
+ <donors></donors>
210
+ </wcentry>
211
+ <wcentry>
212
+ <wc>13603369</wc>
213
+ <wcdate>2008-11-18</wcdate>
214
+ <max>123576</max>
215
+ <min>1</min>
216
+ <stddev>0</stddev>
217
+ <average>17643</average>
218
+ <count>771</count>
219
+ <donations>7735.00</donations>
220
+ <donors></donors>
221
+ </wcentry>
222
+ <wcentry>
223
+ <wc>14317821</wc>
224
+ <wcdate>2008-11-19</wcdate>
225
+ <max>123576</max>
226
+ <min>1</min>
227
+ <stddev>0</stddev>
228
+ <average>18546</average>
229
+ <count>772</count>
230
+ <donations>7735.00</donations>
231
+ <donors></donors>
232
+ </wcentry>
233
+ <wcentry>
234
+ <wc>14996255</wc>
235
+ <wcdate>2008-11-20</wcdate>
236
+ <max>123576</max>
237
+ <min>1</min>
238
+ <stddev>0</stddev>
239
+ <average>19275</average>
240
+ <count>778</count>
241
+ <donations>7735.00</donations>
242
+ <donors></donors>
243
+ </wcentry>
244
+ <wcentry>
245
+ <wc>15768048</wc>
246
+ <wcdate>2008-11-21</wcdate>
247
+ <max>123576</max>
248
+ <min>1</min>
249
+ <stddev>0</stddev>
250
+ <average>20112</average>
251
+ <count>784</count>
252
+ <donations>7735.00</donations>
253
+ <donors></donors>
254
+ </wcentry>
255
+ <wcentry>
256
+ <wc>16347455</wc>
257
+ <wcdate>2008-11-22</wcdate>
258
+ <max>123576</max>
259
+ <min>1</min>
260
+ <stddev>0</stddev>
261
+ <average>20719</average>
262
+ <count>789</count>
263
+ <donations>7735.00</donations>
264
+ <donors></donors>
265
+ </wcentry>
266
+ <wcentry>
267
+ <wc>17294403</wc>
268
+ <wcdate>2008-11-23</wcdate>
269
+ <max>123576</max>
270
+ <min>1</min>
271
+ <stddev>0</stddev>
272
+ <average>21836</average>
273
+ <count>792</count>
274
+ <donations>7735.00</donations>
275
+ <donors></donors>
276
+ </wcentry>
277
+ <wcentry>
278
+ <wc>18717055</wc>
279
+ <wcdate>2008-11-24</wcdate>
280
+ <max>297882</max>
281
+ <min>1</min>
282
+ <stddev>0</stddev>
283
+ <average>23484</average>
284
+ <count>797</count>
285
+ <donations>7735.00</donations>
286
+ <donors></donors>
287
+ </wcentry>
288
+ <wcentry>
289
+ <wc>19630108</wc>
290
+ <wcdate>2008-11-25</wcdate>
291
+ <max>297882</max>
292
+ <min>1</min>
293
+ <stddev>0</stddev>
294
+ <average>24537</average>
295
+ <count>800</count>
296
+ <donations>7735.00</donations>
297
+ <donors></donors>
298
+ </wcentry>
299
+ <wcentry>
300
+ <wc>20368005</wc>
301
+ <wcdate>2008-11-26</wcdate>
302
+ <max>297882</max>
303
+ <min>1</min>
304
+ <stddev>0</stddev>
305
+ <average>25428</average>
306
+ <count>801</count>
307
+ <donations>7735.00</donations>
308
+ <donors></donors>
309
+ </wcentry>
310
+ <wcentry>
311
+ <wc>21037606</wc>
312
+ <wcdate>2008-11-27</wcdate>
313
+ <max>297882</max>
314
+ <min>1</min>
315
+ <stddev>0</stddev>
316
+ <average>26166</average>
317
+ <count>804</count>
318
+ <donations>7735.00</donations>
319
+ <donors></donors>
320
+ </wcentry>
321
+ <wcentry>
322
+ <wc>21678457</wc>
323
+ <wcdate>2008-11-28</wcdate>
324
+ <max>297882</max>
325
+ <min>1</min>
326
+ <stddev>0</stddev>
327
+ <average>26896</average>
328
+ <count>806</count>
329
+ <donations>7735.00</donations>
330
+ <donors></donors>
331
+ </wcentry>
332
+ <wcentry>
333
+ <wc>22624700</wc>
334
+ <wcdate>2008-11-29</wcdate>
335
+ <max>297882</max>
336
+ <min>1</min>
337
+ <stddev>0</stddev>
338
+ <average>28035</average>
339
+ <count>807</count>
340
+ <donations>7735.00</donations>
341
+ <donors></donors>
342
+ </wcentry>
343
+ <wcentry>
344
+ <wc>25865208</wc>
345
+ <wcdate>2008-11-30</wcdate>
346
+ <max>310458</max>
347
+ <min>1</min>
348
+ <stddev>0</stddev>
349
+ <average>31736</average>
350
+ <count>815</count>
351
+ <donations>7735.00</donations>
352
+ <donors></donors>
353
+ </wcentry>
354
+ </wordcounts>
355
+ </wcregionhist>