コード例 #1
0
ファイル: test_hnapi.py プロジェクト: davande/hackernews-top
 def test_get_poll_item(self):
     """
     Test retrieval of 'poll'
     """
     con = ApiConnector()
     item = con.get_item(7059569)
     self.assertTrue(con.is_valid_item(item))
     self.assertEqual(item.get('type'), 'poll')
コード例 #2
0
ファイル: test_hnapi.py プロジェクト: davande/hackernews-top
 def test_get_poll_item(self):
     """
     Test retrieval of 'poll'
     """
     con = ApiConnector()
     item = con.get_item(7059569)
     self.assertTrue(con.is_valid_item(item))
     self.assertEqual(item.get('type'), 'poll')
コード例 #3
0
ファイル: test_hnapi.py プロジェクト: davande/hackernews-top
    def test_get_surrogate_item(self):
        """
        Test retrieval of item that isn't really an item
        """
        con = ApiConnector()
        item = con.get_item(8847790)
        self.assertTrue(con.is_valid_item(item))

        byline = item.get('by')
        self.assertEqual(byline, '')
コード例 #4
0
ファイル: test_hnapi.py プロジェクト: davande/hackernews-top
    def test_get_surrogate_item(self):
        """
        Test retrieval of item that isn't really an item
        """
        con = ApiConnector()
        item = con.get_item(8847790)
        self.assertTrue(con.is_valid_item(item))

        byline = item.get('by')
        self.assertEqual(byline, '')
コード例 #5
0
def main(logger, known_users):
    conn = ApiConnector()
    csvio = CsvIo()
    article_list = conn.get_top()
    stories = []

    for i in article_list:
        try:
            story = conn.get_item(i)
            if (not conn.is_valid_item(story)) or (
                    not conn.is_story_item(story)):
                continue
            logger.debug(csvio.story_to_csv(story))
            stories.append(story)
        except NetworkError as e:
            logger.exception(e)

    csvio.write_stories_csv(stories)

    for story in stories:
        try:
            conn.get_kids(story)
        except NetworkError as e:
            logger.exception(e)

    users = []
    for u in sorted(conn.user_dict.keys()):
        if known_users.get(u) == None:
            logger.debug("Skipping get_user call for %s" % u)
            continue
        try:
            userjson = conn.get_user(u)
            users.append(userjson)
        except NetworkError as e:
            logger.exception(e)
        except RuntimeError as e:
            logger.exception(e)

    csvio.write_users_csv(users)
コード例 #6
0
ファイル: top.py プロジェクト: davande/hackernews-top
def main(logger, known_users):
  conn = ApiConnector()
  csvio = CsvIo()
  article_list = conn.get_top()
  stories = []

  for i in article_list:
    try:
      story = conn.get_item(i)
      if (not conn.is_valid_item(story)) or (not conn.is_story_item(story)):
        continue
      logger.debug(csvio.story_to_csv(story))
      stories.append(story)
    except NetworkError as e:
      logger.exception(e)

  csvio.write_stories_csv(stories)

  for story in stories:
    try:
      conn.get_kids(story)
    except NetworkError as e:
      logger.exception(e)

  users = []
  for u in sorted(conn.user_dict.keys()):
    if known_users.get(u) == None:
      logger.debug("Skipping get_user call for %s" % u)
      continue
    try:
      userjson = conn.get_user(u)
      users.append(userjson)
    except NetworkError as e:
      logger.exception(e)
    except RuntimeError as e:
      logger.exception(e)

  csvio.write_users_csv(users)