Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. class InstagramSocialProvider(BaseSocialProvider):
  2. """
  3. Провайдер в Instagram.
  4.  
  5. """
  6. ATTEMPTS_COUNT = 2
  7.  
  8. def __init__(self, user_name, user_password, *args, **kwargs):
  9. super(InstagramSocialProvider, self).__init__(*args, **kwargs)
  10. self.username = user_name
  11. self.password = user_password
  12. self.client = self.get_valid_token()
  13.  
  14. if not self.client:
  15. message = "Для группы '{}' не получилось получить токен. " \
  16. "Возможно авторизационные данные неверны. ".format(self.group)
  17. self.signal.send(
  18. sender=None,
  19. provider="instagram",
  20. error=message,
  21. auth_data={"user_name": self.username, "user_password": self.password},
  22. group=self.group
  23. )
  24. raise BaseSocialPostException(message)
  25. else:
  26. try:
  27. token_db = self.access_token_model.objects.get(provider="instagram", group=self.group)
  28. # Сохраняем результат авторизации
  29. token_db.is_active = True
  30. token_db.auth_result = {"result": "Success"}
  31. token_db.date_auth = timezone.now()
  32. token_db.save()
  33. except self.access_token_model.DoesNotExist:
  34. # Ситуация которая никогда не возникнет.
  35. # По некой причине тут не оказалось данных в БД по этому аккаунту
  36. message = "Не удалось найти данные в БД для группы '{}'. " \
  37. "Пожалуйста проверьте правильность введенного аккаунта.".format(self.group)
  38. logger.error(message)
  39. raise BaseSocialPostException(message)
  40. except self.access_token_model.MultipleObjectsReturned:
  41. message = "Для группы '{}' в БД больше чем одна запись. " \
  42. "Пожалуйста проверьте правильность введенного аккаунта.".format(self.group)
  43. logger.error(message)
  44. raise ValueError(message)
  45.  
  46. def get_valid_token(self):
  47. """
  48. Инициализируем API, для работы с ним.
  49.  
  50. :return: None
  51.  
  52. """
  53. raise False
  54.  
  55. def request(self, data):
  56. """
  57. Отправка данных в социальную сеть.
  58.  
  59. :param data: готовые данные для отправки.
  60.  
  61. """
  62. content = content_to_string(data.get("content"))
  63.  
  64. images = data.get("images")
  65. videos = data.get("videos")
  66.  
  67. responses = []
  68.  
  69. if images:
  70. raise PostException("Не удалось загрузить фото")
  71.  
  72. if videos:
  73. raise PostException("Не удалось загрузить видео")
  74.  
  75. return responses
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement