Материал из Скретч Вики

Scratchattach — это библиотека для python, разработанная TimMcCool, которая даёт возможность удобно взаимодействовать со API Скретча. Она может делать почти всё, что присутствует в API Скретча.

Значок «важно».png Внимание! Использовать API Скретча для нарушения правил Скретч и/или условий использования Скретч (например, спам-рассылка или массрепорт) запрещено! Вы можете получить бан за злоупотребление API не только по аккаунту, но и по IP-адресу.

Функционал

Данная библиотека позволяет:

  • Изменять облачные переменные;
  • Читать облачные переменные;
  • Читать комментарии на проекта, у профилей пользователей, в студиях;
  • Оставлять комментарии на проектах, у пользователей и в студиях;
  • Жаловаться на пользователей, студии, проекты;
  • Подписываться, лайкать и добавлять проекты в избранное, подписываться на студии и делать все те же действия наоборот;
  • Читать сообщения.

Установка библиотеки

Команда для установки библиотеки ниже

 pip install scratchattach

Подключение пользователя

import scratchattach as scratch3

session = scratch3.login("username", "password")

Если вас блокируют по IP, используйте Session ID:


import scratchattach as scratch3

session = scratch3.Session("sessionId")

В первой строке мы импортируем библиотеку. Вторая строка - это сам вход в скретч. Что бы она вошла нужно предоставить данные ( username, password или Session ID). В третей строке мы используем get_user():

user = scratch3.get_user("ник")

После получения пользователя мы задаём переменную user, где будет храниться нужный нам пользователь. Далее мы можем использовать user для некоторых функций и атрибутов:

Атрибуты:

user.join_date
user.about_me
user.wiwo #Возвращает раздел пользователя "Над чем я работаю"
user.country #Возвращает страну из профиля пользователя
user.icon_url #Возвращает ссылку на значок пользователя (90x90)
user.id #Возвращает идентификатор пользователя
user.scratchteam #Возвращает значение True, если пользователь состоит в команде Scratch
# ----- ----- #
user.update() #Обновляет вышеуказанные данные

Функции:

user.message_count()
user.featured_data() 

user.follower_count()
user.following_count()
user.project_count()
user.favorites_count()
user.studio_count() #Returns the amount of studios the user is curating
user.studio_following_count()

user.follower_names(limit=40, offset=0)
user.following_names(limit=40, offset=0) 

user.followers(limit=40, offset=0) 
user.following(limit=40, offset=0) 
user.projects(limit=None, offset=0)
user.favorites(limit=None, offset=0) 
user.studios(limit=None, offset=0)

user.viewed_projects(limit=24, offset=0) 
user.activity(limit=1000) 
user.activity_html(limit=1000) 

user.follow()
user.unfollow()
user.is_following("scratcher") 
user.is_followed_by("scratcher")

user.comments(limit=20, page=1) 
user.post_comment("comment content") 
user.reply_comment("comment content", parent_id="parent_id", commentee_id="commentee_id") 
user.delete_comment(comment_id="comment_id")
user.report_comment(comment_id="comment_id")

user.toggle_commenting()
user.set_bio(text) 
user.set_wiwo(text)
user.set_featured("project_id", label="") 

user.stats() 
user.ranks() 
user.followers_over_time(segment=1, range=30) 

user.forum_posts(page=0, order="newest") 
user.forum_counts() 
user.forum_counts_over_time() 
user.forum_signature() 
user.forum_signature_history() 

user.ocular_status() 

Работа с переменными

conn = session.connect_cloud("Айди проекта")

Сначала, мы подключились к пользователю, введя его имя и пароль. Далее, мы подключились к проекту по его id, и наконец, изменили значение переменной. Следует отметить, что такой способ изменения переменных работает только с облачными переменными

Комментарии

conn.get_project(ID проекта).post_comment("Комментарий") # опубликовать комментарий в проекте
conn.get_studio(ID студии).post_comment("Комментарий") # опубликовать комментарий в студии
conn.get_project(ID проекта).get_comments()[0].content # Получить комментарии

Проекты

conn.get_project(ID проекта).love() # поставить лайк
conn.get_project(ID проекта).favorite() # поставить звезду
conn.get_project(ID проекта).unlove() # убрать лайк
conn.get_project(ID проекта).unfavorite() # убрать звезду
conn.get_project(ID проекта).description # получить описание проекта
conn.get_project(ID проекта).instructions # получить инструкции проекта
conn.get_project(ID проекта).title # получить название проекта
conn.get_project(ID проекта).love_count # получить кол-во лайков
conn.get_project(ID проекта).favorite_count # получить кол-во звёзд
conn.get_project(ID проекта).remix_count # получить кол-во ремиксов
conn.get_project(ID проекта).view_count # получить кол-во просмотров
conn.get_project(ID проекта).comments_allowed # проверка на разрешение комментирования проекта
conn.get_project(ID проекта).author.username # получить имя пользователя создателя проекта

Студии

conn.get_studio('ID студии').description # получить описание студии

Пользователь

conn.get_user('Ник').get_message_count() # получить кол-во сообщений пользователя
conn.get_user('Ник').follow() # подписаться на пользователя
conn.get_user('Ник').unfollow() # отписаться от пользователя
conn.get_user('Ник').profile.bio # получить информацию пользователя "О себе"
conn.get_user('Ник').get_followers()[0].username # получить список подписчиков пользователя
conn.get_user('Ник').joined_timestamp # получить дату регистрации пользователя
conn.get_user('Ник').scratchteam # получить булевое значение (True/False), является ли пользователь членом команды Скретч

См. также

Источники

Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.