@@ -33,6 +33,7 @@ import javax.annotation.PostConstruct
33
33
import javax.annotation.PreDestroy
34
34
import org.apache.commons.lang3.concurrent.BasicThreadFactory
35
35
import org.rm3l.devfeed.common.articleparser.ArticleExtractor
36
+ import org.rm3l.devfeed.common.contract.Article
36
37
import org.rm3l.devfeed.common.screenshot.ArticleScreenshotExtractor
37
38
import org.rm3l.devfeed.crawlers.common.DevFeedCrawler
38
39
import org.rm3l.devfeed.persistence.ArticleUpdater
@@ -181,3 +182,39 @@ class DevFeedFetcherService(
181
182
}
182
183
}
183
184
}
185
+
186
+ class DummyCrawler : DevFeedCrawler () {
187
+
188
+ private companion object {
189
+ private const val SOURCE = " https://dev-feed.example.com"
190
+ }
191
+
192
+ override fun call (): Collection <Article > {
193
+ val now = System .currentTimeMillis()
194
+ return listOf (
195
+ Article (
196
+ timestamp = now,
197
+ title = " Article Title 1" ,
198
+ description = " Lorem Ipsum Dolor Sit Amet" ,
199
+ source = SOURCE ,
200
+ url = " $SOURCE /article1" ,
201
+ tags = listOf (" tag1" , " tag2" ),
202
+ ),
203
+ Article (
204
+ timestamp = now,
205
+ title = " Article Title 2" ,
206
+ description = " consectetur adipiscing elit" ,
207
+ source = SOURCE ,
208
+ url = " $SOURCE /article2" ,
209
+ tags = listOf (" tag1" , " tag3" , " tag4" ),
210
+ ),
211
+ Article (
212
+ timestamp = now,
213
+ title = " Article Title 3" ,
214
+ description = " sed do eiusmod tempor incididunt ut labore et dolore magna aliqua" ,
215
+ source = SOURCE ,
216
+ url = " $SOURCE /article3" ,
217
+ tags = listOf (" tag10" , " tag3" , " tag1" ),
218
+ ))
219
+ }
220
+ }
0 commit comments