Beispiel #1
0
 def test_extract_media_igtv(self):
     media_pk = self.api.media_pk_from_url(
         "https://www.instagram.com/tv/ByYn5ZNlHWf/"
     )
     media = self.api.media_info(media_pk)
     self.assertIsInstance(media, Media)
     self.assertTrue(len(media.resources) == 0)
     self.assertTrue(media.view_count > 200)
     self.assertTrue(media.comment_count > 10)
     self.assertTrue(media.like_count > 50)
     for key, val in {
         "title": "zr trip, crimea, feb 2017. Edit by @milashensky",
         "caption_text": "Нашёл на диске неопубликованное в инсте произведение @milashensky",
         "pk": 2060572297417487775,
         "video_url": "https://",
         "thumbnail_url": "https://",
         "code": "ByYn5ZNlHWf",
         "media_type": 2,
         "taken_at": datetime(2019, 6, 6, 22, 22, 6, tzinfo=UTC()),
         "product_type": "igtv",
     }.items():
         if isinstance(val, str):
             self.assertTrue(getattr(media, key).startswith(val))
         else:
             self.assertEqual(getattr(media, key), val)
     for key, val in {"pk": 1903424587, "username": "******"}.items():
         self.assertEqual(getattr(media.user, key), val)
Beispiel #2
0
 def test_extract_media_video(self):
     media_pk = self.api.media_pk_from_url(
         "https://www.instagram.com/p/BgRIGUQFltp/"
     )
     media = self.api.media_info(media_pk)
     self.assertIsInstance(media, Media)
     self.assertTrue(len(media.resources) == 0)
     self.assertTrue(media.view_count > 150)
     self.assertTrue(media.comment_count > 1)
     self.assertTrue(media.like_count > 40)
     for key, val in {
         "caption_text": "Веселья ради\n\n@milashensky #dowhill #skateboarding #foros #crimea",
         "pk": 1734202949948037993,
         "code": "BgRIGUQFltp",
         "video_url": "https://",
         "thumbnail_url": "https://",
         "media_type": 2,
         "taken_at": datetime(2018, 3, 13, 14, 59, 23, tzinfo=UTC())
     }.items():
         if isinstance(val, str):
             self.assertTrue(getattr(media, key).startswith(val))
         else:
             self.assertEqual(getattr(media, key), val)
     for key, val in {"pk": 1903424587, "username": "******"}.items():
         self.assertEqual(getattr(media.user, key), val)
Beispiel #3
0
 def test_media_info_gql(self):
     media_pk = self.api.media_pk_from_url("https://www.instagram.com/p/BVDOOolFFxg/")
     m = self.api.media_info_gql(media_pk)
     self.assertIsInstance(m, Media)
     media = {
         'pk': 1532130876531694688,
         'id': '1532130876531694688_1903424587',
         'code': 'BVDOOolFFxg',
         'taken_at': datetime(2017, 6, 7, 19, 37, 35, tzinfo=UTC()),
         'media_type': 1,
         'product_type': '',
         'thumbnail_url': 'https://...',
         'location': None,
         'comment_count': 6,
         'like_count': 79,
         'has_liked': None,
         'caption_text': '#creepy #creepyclothing',
         'usertags': [],
         'video_url': None,
         'view_count': 0,
         'video_duration': 0.0,
         'title': '',
         'resources': []
     }
     self.assertDict(m.dict(), media)
     user = {
         'pk': 1903424587,
         'username': '******',
         'full_name': 'Mikhail Andreev',
         'profile_pic_url': 'https://...',
     }
     self.assertDict(m.user.dict(), user)
Beispiel #4
0
 def test_extract_media_album(self):
     media_pk = self.api.media_pk_from_url(
         'https://www.instagram.com/p/BjNLpA1AhXM/')
     media = self.api.media_info(media_pk)
     self.assertIsInstance(media, Media)
     self.assertTrue(len(media.resources) == 3)
     video_resource = media.resources[0]
     photo_resource = media.resources.pop()
     self.assertTrue(media.view_count == 0)
     self.assertTrue(media.comment_count == 0)
     self.assertTrue(media.like_count > 40)
     for key, val in {
             "caption_text":
             "@mind__flowers в Форосе под дождём, 24 мая 2018 #downhill "
             "#skateboarding #downhillskateboarding #crimea #foros #rememberwheels",
             "pk":
             1787135824035452364,
             "code":
             "BjNLpA1AhXM",
             "media_type":
             8,
             "taken_at":
             datetime(2018, 5, 25, 15, 46, 53, tzinfo=UTC()),
             "product_type":
             "",
     }.items():
         self.assertEqual(getattr(media, key), val)
     for key, val in {"pk": 1903424587, "username": "******"}.items():
         self.assertEqual(getattr(media.user, key), val)
     for key, val in {
             "video_url": "https://",
             "thumbnail_url": "https://",
             "media_type": 2,
             "pk": 1787135361353462176,
     }.items():
         if isinstance(val, str):
             self.assertTrue(getattr(video_resource, key).startswith(val))
         else:
             self.assertEqual(getattr(video_resource, key), val)
     for key, val in {
             "video_url": None,
             "thumbnail_url": "https://",
             "media_type": 1,
             "pk": 1787133803186894424,
     }.items():
         if isinstance(val, str):
             self.assertTrue(getattr(photo_resource, key).startswith(val))
         else:
             self.assertEqual(getattr(photo_resource, key), val)
Beispiel #5
0
 def test_media_comment(self):
     text = "Test text [%s]" % datetime.now().strftime("%s")
     now = datetime.now(tz=UTC())
     comment = self.api.media_comment(2276404890775267248, text)
     self.assertIsInstance(comment, Comment)
     comment = comment.dict()
     for key, val in {
             "text": text,
             "content_type": "comment",
             "status": "Active"
     }.items():
         self.assertEqual(comment[key], val)
     self.assertIn("pk", comment)
     self.assertTrue(comment["created_at_utc"] >= now)
     user_fields = comment['user'].keys()
     for field in ["pk", "username", "full_name", "profile_pic_url"]:
         self.assertIn(field, user_fields)
Beispiel #6
0
 def test_extract_media_photo(self):
     media_pk = self.api.media_pk_from_url(
         "https://www.instagram.com/p/B3mr1-OlWMG/")
     media = self.api.media_info(media_pk)
     self.assertIsInstance(media, Media)
     self.assertTrue(len(media.resources) == 0)
     self.assertTrue(media.comment_count > 5)
     self.assertTrue(media.like_count > 80)
     for key, val in {
             "caption_text": "В гостях у ДК @delai_krasivo_kaifui",
             "thumbnail_url": "https://",
             "pk": 2154602296692269830,
             "code": "B3mr1-OlWMG",
             "media_type": 1,
             "taken_at": datetime(2019, 10, 14, 15, 57, 10, tzinfo=UTC())
     }.items():
         if isinstance(val, str):
             self.assertTrue(getattr(media, key).startswith(val))
         else:
             self.assertEqual(getattr(media, key), val)
     for key, val in {"pk": 1903424587, "username": "******"}.items():
         self.assertEqual(getattr(media.user, key), val)