"""Built-in platform fetchers backed by the legacy fetch functions.""" from .registry import register_platform class _LegacyMethodFetcher: method_name = "" def fetch_posts(self, start_date, end_date, community, max_posts): # Import lazily so data_collection_lib can import this module while defining data_methods. from data_collection_lib import data_methods method = getattr(data_methods.fetchers, self.method_name) return method(start_date, end_date, community, max_posts) @register_platform("reddit") class RedditFetcher(_LegacyMethodFetcher): name = "reddit" method_name = "getRedditData" @register_platform("pushshift") class PushshiftFetcher(_LegacyMethodFetcher): name = "pushshift" method_name = "getPushshiftData" @register_platform("hackernews") class HackerNewsFetcher(_LegacyMethodFetcher): name = "hackernews" method_name = "getHackerNewsData" @register_platform("lobsters") class LobstersFetcher(_LegacyMethodFetcher): name = "lobsters" method_name = "getLobstersData" @register_platform("stackexchange") class StackExchangeFetcher(_LegacyMethodFetcher): name = "stackexchange" method_name = "getStackExchangeData" @register_platform("rss") class RSSFetcher(_LegacyMethodFetcher): name = "rss" method_name = "getRSSData"