我正在从TVRage API中提取剧集数据 - 如果你发送了一个请求“第4季第5集,显示#4681”,那将会返回剧集数据的类似IMDb服务。
我想从第1季第1集开始,然后循环播放所有内容,直到节目结束,无论何时结束。我只是不确定如何编写这种逻辑。我想在伪代码中它会......
$season = 1;
$episode = 1;
add_title_to_database($season,$episode);
if (that worked) $episode++, and do it again;
else $e=1, $season++, and do it again; // because we've hit the end of the season
if you get two errors in a row, then incrementing the season counter didn't work because there are none left, so exit
但我不确定我是如何用类C语言编写的,或者这是否是正确使用的逻辑。我没有提前查看剧集计数,我知道季节和节目结束的唯一方法是请求没有结果。
那我该怎么办?
答案 0 :(得分:0)
这样可行,但您可能无法区分由于经过最后一集而导致的错误与由于某些其他原因导致的错误。我注意到TVRage可以返回剧集列表。为什么不首先打电话让你知道你提出有效请求?
修改强>
如果您使用的是XML解析器,那么您的逻辑应该类似于:
for (season : episodelist.getChildren()) {
for (episode: season.getChildren()) {
}
}
只是为了记录,你在没有剧集列表的情况下解决这个问题的方法是:
int season = 1;
while (true) {
boolean success = add_title_to_database(season, 1);
if (! success) break;
int episode = 2;
while (true) {
success = add_title_to_database(season, episode);
if (! success) break;
episode++;
}
season++;
}