Материал из Скретч Вики
Scratchattach — это библиотека для python, разработанная TimMcCool, которая даёт возможность удобно взаимодействовать со API Скретча. Она может делать почти всё, что присутствует в API Скретча.
![]() |
Внимание! Использовать 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), является ли пользователь членом команды Скретч
См. также
Источники
- Официальная вики Scratchattach: https://github.com/TimMcCool/scratchattach