Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class InstagramSocialProvider(BaseSocialProvider):
- """
- Провайдер в Instagram.
- """
- ATTEMPTS_COUNT = 2
- def __init__(self, user_name, user_password, *args, **kwargs):
- super(InstagramSocialProvider, self).__init__(*args, **kwargs)
- self.username = user_name
- self.password = user_password
- self.client = self.get_valid_token()
- if not self.client:
- message = "Для группы '{}' не получилось получить токен. " \
- "Возможно авторизационные данные неверны. ".format(self.group)
- self.signal.send(
- sender=None,
- provider="instagram",
- error=message,
- auth_data={"user_name": self.username, "user_password": self.password},
- group=self.group
- )
- raise BaseSocialPostException(message)
- else:
- try:
- token_db = self.access_token_model.objects.get(provider="instagram", group=self.group)
- # Сохраняем результат авторизации
- token_db.is_active = True
- token_db.auth_result = {"result": "Success"}
- token_db.date_auth = timezone.now()
- token_db.save()
- except self.access_token_model.DoesNotExist:
- # Ситуация которая никогда не возникнет.
- # По некой причине тут не оказалось данных в БД по этому аккаунту
- message = "Не удалось найти данные в БД для группы '{}'. " \
- "Пожалуйста проверьте правильность введенного аккаунта.".format(self.group)
- logger.error(message)
- raise BaseSocialPostException(message)
- except self.access_token_model.MultipleObjectsReturned:
- message = "Для группы '{}' в БД больше чем одна запись. " \
- "Пожалуйста проверьте правильность введенного аккаунта.".format(self.group)
- logger.error(message)
- raise ValueError(message)
- def get_valid_token(self):
- """
- Инициализируем API, для работы с ним.
- :return: None
- """
- raise False
- def request(self, data):
- """
- Отправка данных в социальную сеть.
- :param data: готовые данные для отправки.
- """
- content = content_to_string(data.get("content"))
- images = data.get("images")
- videos = data.get("videos")
- responses = []
- if images:
- raise PostException("Не удалось загрузить фото")
- if videos:
- raise PostException("Не удалось загрузить видео")
- return responses
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement