Skip to content

Commit f80a0fb

Browse files
committed
use nulls and different break logic
1 parent d53d3bd commit f80a0fb

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

app/lib/service/youtube/backend.dart

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,23 +122,17 @@ class _PkgOfWeekVideoFetcher {
122122

123123
try {
124124
final pageTokensVisited = <String>{};
125-
String nextPageToken = '';
125+
String? nextPageToken;
126126

127127
final videos = <PkgOfWeekVideo>[];
128128
final videoIds = <String>{};
129129
while (videos.length < 50) {
130-
// check visited status
131-
if (pageTokensVisited.contains(nextPageToken)) {
132-
break;
133-
}
134-
pageTokensVisited.add(nextPageToken);
135-
136130
// get page from cache or from Youtube API
137-
final rs = await cache.youtubePlaylistItems(nextPageToken).get(
131+
final rs = await cache.youtubePlaylistItems(nextPageToken ?? '').get(
138132
() async => await youtube.playlistItems.list(
139133
['snippet', 'contentDetails'],
140134
playlistId: powPlaylistId,
141-
pageToken: nextPageToken.isEmpty ? null : nextPageToken,
135+
pageToken: nextPageToken,
142136
),
143137
);
144138

@@ -177,8 +171,13 @@ class _PkgOfWeekVideoFetcher {
177171
}
178172
}
179173

174+
pageTokensVisited.add(nextPageToken ?? '');
180175
// advance to next page token
181-
nextPageToken = rs.nextPageToken ?? '';
176+
nextPageToken = rs.nextPageToken;
177+
if (nextPageToken == null ||
178+
pageTokensVisited.contains(nextPageToken)) {
179+
break;
180+
}
182181
}
183182
return videos;
184183
} finally {

0 commit comments

Comments
 (0)