我尝试使用google feed api构建网址检查程序。
我的问题:
1: if(result)
检查不起作用。也许是异步问题?
2:对RSS,音频/视频播客检查的任何想法?我确定,我在响应中得到了一个音频/视频文件的网址(但我目前是瞎了)。
我的想法是检查这个网址。
// somthing like that
if(typeof xxxx == 'undefined') -> rss feed
if xxxx.match(/mp3|wav|XXX/gi) -> audio feed
if xxxx.match(/mpg|avi|flv/gi) -> video feed
JS
$(document).ready(function()
{
// valid rss feed
var result = urlCheck('http://www.bild.de/rssfeeds/vw-home/vw-home-16725562,short=1,sort=1,view=rss2.bild.xml');
if(result){ console.warn('result1 is a '+result.urlIsA+' '); console.dir(result); }
// valid video podcast
var result = urlCheck('http://www.tagesschau.de/export/video-podcast/webl/tagesschau/');
if(result){ console.warn('result1 is a '+result.urlIsA+' '); console.dir(result); }
// valid audio podcast
var result = urlCheck('http://chaosradio.ccc.de/chaosradio-latest.rss');
if(result){ console.warn('result1 is a '+result.urlIsA+' '); console.dir(result); }
});
function urlCheck(url)
{
var feed = new google.feeds.Feed(url);
feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
feed.setNumEntries('1');
feed.load(function(result)
{
if (!result.error)
{
var allEntries = result.feed.entries;
console.info(url);
console.dir(allEntries);
/* if(XXX.match(/XXXX/,gi)) {
allEntries.urlIsA = 'rss feed';
return allEntries;
}
if(XXX.match(/XXXX/,gi)) {
allEntries.urlIsA = 'audio podcast';
return allEntries;
}
if(XXX.match(/XXXX/,gi)) {
allEntries.urlIsA = 'video podcast';
return allEntries;
} */
return false;
}
else { return false; }
});
}
工作示例
http://jsbin.com/unikak/edit#javascript,html
通知:您必须复制代码在* .html文件中,否则你会收到来自jsBin的错误
google.feeds.Feed is not a constructor
答案 0 :(得分:1)
更改您的RegExps,以便只匹配字符串末尾的mpg
:
/(mpg|avi|flv/)$/gi
不使用return
,而是使用回调函数:
function urlCheck(url, callback){
....
//Insread of return false:
callback(false);
//Instead of return true:
callback(true);
在结果检查员处:
urlCheck("http://....", function(result){
if(result){
console.warn(...);
} else {
//..
}
})