update list of CouchDB views in doc
[mygpo.git] / couchdb / _design / toplist / views / episodes / map.js
blobb542a2c4a768a3fcca1bafa07777a810e7caaa8d
1 function(doc)
3     if(doc.doc_type != "Episode")
4     {
5         return;
6     }
8     function getLanguage(podcast)
9     {
10         if (podcast.language)
11         {
12             return podcast.language.slice(0, 2);
13         }
15         return null;
16     };
18     function doEmit(date_str, language, listeners)
19     {
20         if(listeners <= 0)
21         {
22             return;
23         }
25         emit([date_str, "", listeners], null);
27         if(language)
28         {
29             emit([date_str, language, listeners], null);
30         }
31     };
33     var toplist_period = 7;
35     if(doc.listeners <= 0 || doc.released == null)
36     {
37         return;
38     }
40     dateString = doc.released.slice(0, 10);
41     dateParts = dateString.split("-");
42     dateParts = dateParts.map(Number);
44     var language = getLanguage(doc);
46     for(var i=0; i<toplist_period; i++)
47     {
48         dateObj = new Date(dateParts[0], dateParts[1]-1, dateParts[2]+i);
49         year = dateObj.getFullYear();
50         month = Number(dateObj.getMonth()) + 1;
51         if(month < 10)
52         {
53             month = "0" + month;
54         }
55         day = Number(dateObj.getDate());
56         if(day < 10)
57         {
58             day = "0" + day;
59         }
61         dateStr = year + "-" + month + "-" + day;
63         doEmit(dateStr, language, doc.listeners);
64     }