@@ -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