Revision 623138316665 () - Diff

Link to this snippet: https://friendpaste.com/2iNlKuwxzfNDW3dsYBezmZ
Embed:
1
{"_id":"_design/podcasts","_rev":"43-ddc63e63339b76b65cff63598bb4b550","fulltext":{"search":{"index":"function(doc)\n{\n function getSubscribers(podcast)\n {\n if(podcast.subscribers.length)\n {\n var l = podcast.subscribers.length;\n return podcast.subscribers[l-1].subscriber_count;\n }\n return 0;\n }\n\n function searchPodcast(podcast, num_subscribers)\n {\n var d = new Document();\n d.add(podcast.title);\n\n for(var n in podcast.urls)\n {\n d.add(podcast.urls[n]);\n }\n d.add(podcast.description);\n\n d.add(num_subscribers, {\"field\":\"subscribers\", \"type\": \"int\"});\n\n return d;\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n var num_subscribers = getSubscribers(doc);\n return searchPodcast(doc, num_subscribers);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n var num_subscribers = 0;\n for(var n in doc.podcasts)\n {\n num_subscribers += getSubscribers(doc.podcasts[n]);\n }\n\n var podcast = doc.podcasts[0];\n return searchPodcast(podcast, num_subscribers);\n }\n}"}},"views":{"by_url":{"map":"function(doc)\n{\n function searchPodcast(podcast)\n {\n for(n in podcast.urls)\n {\n emit(podcast.urls[n], null);\n }\n }\n\n if (doc.doc_type == 'Podcast')\n {\n searchPodcast(doc);\n }\n else if(doc.doc_type == 'PodcastGroup')\n {\n for(n in doc.podcasts)\n {\n podcast = doc.podcasts[n];\n searchPodcast(podcast);\n }\n }\n}"},"by_last_update":{"map":"function(doc)\n{\n function searchPodcast(podcast, podcast_id)\n {\n emit([podcast.last_update, podcast_id], null);\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc, doc._id);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n for(var n in doc.podcasts)\n {\n podcast = doc.podcasts[n];\n searchPodcast(podcast, podcast.id);\n }\n }\n}"},"flattr":{"map":"function(doc)\n{\n if (doc.doc_type == 'Podcast')\n {\n if(doc.flattr_url)\n {\n emit(null, null);\n }\n }\n else if(doc.doc_type == 'PodcastGroup')\n {\n for(var n in doc.podcasts)\n {\n var podcast = doc.podcasts[n];\n if (podcast.flattr_url)\n {\n emit(null, null);\n return;\n }\n }\n }\n}","reduce":"_count"},"subscriber_data":{"map":"function(doc)\n{\n if(doc.doc_type == \"PodcastSubscriberData\")\n {\n emit(doc.podcast, null);\n }\n}"},"by_language":{"map":"function(doc)\n{\n function searchPodcast(podcast, podcast_id)\n {\n if(podcast.language)\n {\n emit([podcast.language, podcast_id], null);\n }\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc, doc._id);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n for(var n in doc.podcasts)\n {\n var podcast = doc.podcasts[n];\n searchPodcast(podcast, podcast.id);\n }\n }\n}","reduce":"_count"},"random":{"map":"function (doc)\n{\n function searchPodcast(podcast)\n {\n if(!podcast.title || !podcast.title.trim() || !podcast.description || !podcast.description.trim() || !podcast.logo_url)\n {\n return;\n }\n\n var random_key = 1;\n\n if(podcast.random_key)\n {\n random_key = podcast.random_key;\n }\n\n emit([\"\", random_key], null);\n\n if(podcast.language)\n {\n emit([podcast.language, random_key], null);\n }\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n for(var n in doc.podcasts)\n {\n searchPodcast(doc.podcasts[n]);\n }\n }\n}"},"by_id":{"map":"function(doc)\n{\n function searchPodcast(podcast_id, podcast)\n {\n emit(podcast_id, null);\n\n for(var n in podcast.merged_ids)\n {\n emit(podcast.merged_ids[n], null);\n }\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc._id, doc);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n for(var n in doc.podcasts)\n {\n var podcast = doc.podcasts[n];\n searchPodcast(podcast.id, podcast);\n }\n }\n}"},"podcasts_groups":{"map":"function(doc)\n{\n if (doc.doc_type == \"Podcast\" || doc.doc_type == \"PodcastGroup\")\n {\n emit(doc._id, null);\n }\n}"},"groups_by_oldid":{"map":"function(doc)\n{\n if(doc.doc_type == \"PodcastGroup\")\n {\n if(doc.oldid)\n {\n emit(doc.oldid, null);\n }\n\n for(var n in doc.merged_oldids)\n {\n emit(doc.merged_oldids[n], null);\n }\n }\n}"},"by_tag":{"map":"function(doc)\n{\n function searchPodcast(podcast, podcast_id)\n {\n for(source in podcast.tags)\n {\n for(n in podcast.tags[source])\n {\n emit([podcast.tags[source][n], podcast_id], sourceWeight(source));\n }\n }\n }\n\n function sourceWeight(source)\n {\n if(source == \"feed\")\n {\n return 1;\n }\n else if (source == \"delicious\")\n {\n return 2;\n }\n else\n {\n return 0;\n }\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc, doc._id);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n for(p in doc.podcasts)\n {\n searchPodcast(p, p.id);\n }\n }\n}","reduce":"_sum"},"by_oldid":{"map":"function (doc)\n{\n function searchPodcast(podcast)\n {\n if(podcast.oldid)\n {\n emit(podcast.oldid, null);\n }\n\n for(var n in podcast.merged_oldids)\n {\n emit(podcast.merged_oldids[n], null);\n }\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n for(var i in doc.podcasts)\n {\n searchPodcast(doc.podcasts[i]);\n }\n }\n}"},"by_slug":{"map":"function (doc)\n{\n function searchPodcast(podcast, podcast_id)\n {\n if(podcast.slug)\n {\n emit([podcast.slug, podcast_id], null);\n }\n\n if(podcast.merged_slugs)\n {\n for(m in podcast.merged_slugs)\n {\n emit([podcast.merged_slugs[m], podcast_id], null);\n }\n }\n }\n\n if(doc.doc_type == \"Podcast\")\n {\n searchPodcast(doc, doc._id);\n }\n else if(doc.doc_type == \"PodcastGroup\")\n {\n searchPodcast(doc, doc._id);\n\n for(n in doc.podcasts)\n {\n searchPodcast(doc.podcasts[n], doc.podcasts[n].id);\n }\n }\n}"}},"filters":{"podcasts_groups":"function(doc, req)\n{\n return (doc.doc_type == \"Podcast\" || doc.doc_type == \"PodcastGroup\");\n}"},"validate_doc_update":"function(newDoc, oldDoc, userCtx)\n{\n function require(doc, field, message)\n {\n message = message || \"Document must have a \" + field;\n if (doc[field] == void 0 || doc[field] == null || doc[field].length == 0)\n {\n throw({forbidden: message});\n }\n }\n\n function check(cond, message)\n {\n message = message || \"Condition check failed\";\n if(!cond)\n {\n throw({forbidden: message});\n }\n }\n\n function checkPodcast(podcast)\n {\n last_timestamp = null;\n if(podcast.subscribers)\n {\n for(var i=0, len=podcast.subscribers.length; sub=podcast.subscribers[i], i<len; i++)\n {\n check((last_timestamp == null) || (last_timestamp < sub.timestamp), \"Subscriber Data must be sorted\");\n last_timestamp = sub.timestamp;\n }\n }\n }\n\n if(newDoc.doc_type == \"PodcastGroup\")\n {\n for(var n=0, len=newDoc.podcasts.length; podcast=newDoc.podcasts[n], n<len; n++)\n {\n if(oldDoc)\n {\n oldpodcast = oldDoc.podcasts[n];\n }\n else\n {\n oldpodcast = null;\n }\n\n require(podcast, \"id\");\n require(podcast, \"group\");\n check(podcast.group == newDoc._id);\n checkPodcast(podcast);\n }\n }\n else if(newDoc.doc_type == \"Podcast\")\n {\n checkPodcast(newDoc);\n }\n}","couchapp":{"signatures":{},"objects":{},"manifest":["validate_doc_update.js","filters/","filters/podcasts_groups.js","views/","views/podcasts_groups/","views/podcasts_groups/map.js","views/by_last_update/","views/by_last_update/map.js","views/groups_by_oldid/","views/groups_by_oldid/map.js","views/by_oldid/","views/by_oldid/map.js","views/subscriber_data/","views/subscriber_data/map.js","views/random/","views/random/map.js","views/by_url/","views/by_url/map.js","views/by_id/","views/by_id/map.js","views/by_tag/","views/by_tag/map.js","views/by_tag/reduce.js","views/by_slug/","views/by_slug/map.js","views/flattr/","views/flattr/map.js","views/flattr/reduce.js","views/by_language/","views/by_language/map.js","views/by_language/reduce.js","fulltext/","fulltext/search/","fulltext/search/index.js"]}}