Материал из Скретч Вики
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