Skip to content

Latest commit

 

History

History
628 lines (393 loc) · 31.1 KB

reference.md

File metadata and controls

628 lines (393 loc) · 31.1 KB

Документация

Учтите, что описания атрибутов, получаемые через HTTP-реквесты берутся чисто от балды. Если вы - куратор, учитель или кто-то другой, работавший над REST API Алгоритмики и нашли несостыковку либо просто хотите дополнить документацию, сабмитните новое ишью.

Названия атрибутов, помеченных звездочкой *, могут отличаться от их истинного значения либо их истинное значение неизвестно.

Некоторых атрибутов, доступных через dict у некоторых классов, может не существовать в самих классах в связи с неизвестностью обозначения атрибута.

algo_api.Session

Сессия входа в систему.

Аргументы

Имя Тип Описание
login str Ваш логин в системе.
password str Ваш пароль в системе.

Атрибуты

Имя Тип Описание
login_name str Ваш последний введённый логин в системе.
password str Ваш последний введённый пароль в системе.
id int / None ID пользователя на платформе.
None, если вы не вошли в систему.
session requests.Session / None Сессия, через которую обрабатываются все HTTP-реквесты.
None, если вы не вошли в систему.

При изменении логина или пароля напрямую вы останетесь на том же аккаунте, на который входили.

Функции

login(login: str, password: str)

Входит в аккаунт.

Если вы уже вошли в аккаунт, поднимет ошибку AlreadyLoggedIn.

Эта функция автоматически выполняется при создании объекта класса algo_api.Session с указанными данными.

close()

Выходит из аккаунта и завершает сессию.

Для повторного входа в систему необходимо вызвать login().

my_profile()

Возвращает полную информацию профиля залогиненного пользователя как объект класса SelfProfile.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

get_profile(id: int)

Возвращает профиль пользователя под указанным ID как объект класса Profile.

Если пользователь не найден, поднимет ошибку.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

my_projects(sort=algo_api.SORT_LATEST)

Возвращает список ваших проектов с указанной сортировкой как список с объектами класса algo_api.Project.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

get_projects(id: int, sort=algo_api.SORT_LATEST)

Возвращает список проектов указанного пользователя с указанной сортировкой как список с объектами класса algo_api.Project.

Если пользователь не найден, вернёт пустой список.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

get_project(id: int)

Возвращает проект под указанным ID как объект класса algo_api.Project.

Если проект не найден, поднимет ошибку.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

place_reaction(id: int, reaction: str)

Ставит указанную реакцию из таблицы ниже под проект с указанным ID.

Переменная Реакция
algo_api.REACTION_LOVE Сердечко
algo_api.REACTION_LIKE Лайк
algo_api.REACTION_FIRE Огонёк

Если реакция не найдена, поднимет ошибку.

Если реакция уже стоит или ID проекта неверно, ничего не произойдёт.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

remove_reaction(id: int, reaction: str)

Убирает указанную реакцию из таблицы ниже с проекта под указанным ID.

Переменная Реакция
algo_api.REACTION_LOVE Сердечко
algo_api.REACTION_LIKE Лайк
algo_api.REACTION_FIRE Огонёк

Если реакция не найдена, поднимет ошибку.

Если реакции и так нету или ID проекта неверно, ничего не произойдёт.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

post_comment(id: int, text: str, reply_to: int = None)

Отправляет комментарий с указанным текстом под проект с указанным ID.
Вы также можете использовать эмодзи из таблицы ниже.

Переменная Строка Описание
algo_api.EMOJI_ANGRY :angry Злой красный овал.
algo_api.EMOJI_FIRE :fire Улыбающийся огонёк.
В написанном комментарии отображается без смайлика.
algo_api.EMOJI_HEART :heart Улыбающееся сердечко.
В написанном комментарии отображается без смайлика.
algo_api.EMOJI_LIKE :like Улыбающийся лайк.
В написанном комментарии отображается без смайлика.
algo_api.EMOJI_REASONING :reasoning Серый камешек, который смотрит презирающе.
algo_api.EMOJI_SAD :sad Грустная капелька воды.
algo_api.EMOJI_WOW :wow Удивляющийся жёлтый кружок.

Если reply_to не None, ваш комментарий будет отправлен в ответ к комментарию с указанным в reply_to ID.

Возвращает объект класса algo_api.Comment

Если text пустой или ID неверно, поднимет ошибку.

Если reply_to неверно (но при этом меньше ID последнего отправленного комментария), ваш комментарий будет показываться на проекте с комментарием, на который вы ответили.

Если вы ответили на ответный комментарий, ваш новый комментарий запишется в систему, будет получаться через другие команды, но на сайте отображаться не будет.

В обоих случаях, указанных выше, счётчик комментариев увеличится на указанном проекте.

Комментарии окончательно сломаны. Я больше не хочу этим заниматься.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

delete_comment(id: int)

Удаляет комментарий с указанным ID с проекта.

Если ID неверно, поднимет ошибку.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

get_comments(id: int, page: int = 1, per_page: int = 50)

Возвращает список комментариев под указанным проектом как список с объектами класса algo_api.Comment.

Если проект не найден или недоступен, вернёт пустой список.

Если

Если page неверен, вернёт 1-ю страницу.

Если per_page неверен, per_page автоматически заменится на 1.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

algo_api.AnonSession

Сессия входа в систему.

Атрибуты

Имя Тип Описание
session requests.Session / None Сессия, через которую обрабатываются все HTTP-реквесты.
None, если вы не вошли в систему.

Функции

login()

Входит в аккаунт.

Если вы уже вошли в аккаунт, поднимет ошибку AlreadyLoggedIn.

Эта функция автоматически выполняется при создании объекта класса algo_api.AnonSession с указанными данными.

close()

Выходит из аккаунта и завершает сессию.

Для повторного входа в систему необходимо вызвать login().

place_reaction(id: int, reaction: str)

Ставит указанную реакцию из таблицы ниже под проект с указанным ID.

Переменная Реакция
algo_api.REACTION_LOVE Сердечко
algo_api.REACTION_LIKE Лайк
algo_api.REACTION_FIRE Огонёк

Если реакция не найдена, поднимет ошибку.

Если реакция уже стоит или ID проекта неверно, ничего не произойдёт.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

remove_reaction(id: int, reaction: str)

Убирает указанную реакцию из таблицы ниже с проекта под указанным ID.

Переменная Реакция
algo_api.REACTION_LOVE Сердечко
algo_api.REACTION_LIKE Лайк
algo_api.REACTION_FIRE Огонёк

Если реакция не найдена, поднимет ошибку.

Если реакции и так нету или ID проекта неверно, ничего не произойдёт.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

post_comment(id: int, text: str, reply_to: int = None)

Отправляет комментарий с указанным текстом под проект с указанным ID.
Вы также можете использовать эмодзи из таблицы ниже.

Переменная Строка Описание
algo_api.EMOJI_ANGRY :angry Злой красный овал.
algo_api.EMOJI_FIRE :fire Улыбающийся огонёк.
В написанном комментарии отображается без смайлика.
algo_api.EMOJI_HEART :heart Улыбающееся сердечко.
В написанном комментарии отображается без смайлика.
algo_api.EMOJI_LIKE :like Улыбающийся лайк.
В написанном комментарии отображается без смайлика.
algo_api.EMOJI_REASONING :reasoning Серый камешек, который смотрит презирающе.
algo_api.EMOJI_SAD :sad Грустная капелька воды.
algo_api.EMOJI_WOW :wow Удивляющийся жёлтый кружок.

Если reply_to не None, ваш комментарий будет отправлен в ответ к комментарию с указанным в reply_to ID.

Возвращает объект класса algo_api.Comment

Если text пустой или ID неверно, поднимет ошибку.

Если reply_to неверно (но при этом меньше ID последнего отправленного комментария), ваш комментарий будет показываться на проекте с комментарием, на который вы ответили.

Если вы ответили на ответный комментарий, ваш новый комментарий запишется в систему, будет получаться через другие команды, но на сайте отображаться не будет.

В обоих случаях, указанных выше, счётчик комментариев увеличится на указанном проекте.

Комментарии окончательно сломаны. Я больше не хочу этим заниматься.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

delete_comment(id: int)

Удаляет комментарий с указанным ID с проекта.

Если ID неверно, поднимет ошибку.

Если вы не вошли в аккаунт, поднимет ошибку SessionClosed.

algo_api.SelfProfile

Профиль пользователя, под которым вы зашли.

При конвертации в int вернёт ID пользователя в системе.

При конвертации в str вернёт полное имя (full_name) пользователя.

Атрибуты

Имя Тип Описание
dict dict Словарь, полученый при отправлении запроса.
id int ID пользователя в системе.
first_name str Имя пользователя.
last_name str Фамилия пользвателя.
parent_name str Имя родителя пользователя.
full_name str Полное имя (Ф.И.) пользователя.
username str Имя, используемое при входе в систему (логин).
Никому, кроме вас, этот атрибут виден не будет.
phone str Номер телефона для связи с пользователем.
email str Электронная почта для связи с пользователем.
is_teacher bool Является ли пользователь учителем.
is_celebrity bool Является ли пользователь Селебрити.
lang str Язык пользователя.
branch algo_api.Branch Ветка обучения пользователя.
ban algo_api.Ban Информация о бане пользователя.
settings algo_api.Settings Настройки редактора пользователя. Менять их может только учитель.*
avatar algo_api.Avatar Информация об аватаре пользователя.
course algo_api.Course Информация о текущем курсе пользователя.
url str Ссылка на профиль пользователя.
birth_date datetime.date Дата рождения пользователя.

algo_api.Profile

Видимый профиль пользователя.

При конвертации в int вернёт ID пользователя в системе.

При конвертации в str вернёт полное имя (full_name) пользователя.

Атрибуты

Имя Тип Описание
dict dict Словарь, полученый при отправлении запроса.
id int ID пользователя в системе.
first_name str Имя пользователя.
last_name str Фамилия пользвателя.
full_name str Полное имя (Ф.И.) пользователя.
is_celebrity bool Является ли пользователь Селебрити.
about str "Обо мне" пользователя.
course_name str Имя курса, на котором учится пользователь.
city str Город пользователя.
friend_status str / None Текущий статус друга между вами и пользователем.
None - незнакомцы / пользователь подписан на вас
algo_api.RELATIONSHIP_FOLLOW - вы подписаны на пользователя
algo_api.RELATIONSHIP_FRIEND - вы друзья
updated_at datetime.datetime Дата и время последнего обновления пользователя.*
stats UserStats Статистика пользователя.
avatar Avatars Аватар(-ы) пользователя.
friends list[ProfilePreview] Список друзей пользователя.
classmates list[ProfilePreview] Список одноклассников пользователя.
url str Ссылка на профиль пользователя.

algo_api.ProfilePreview

Превью профиля. Обычно появляется в месте автора проекта, в списке друзей и тому подобное.

При конвертации в int вернёт ID пользователя в системе.

При конвертации в str вернёт полное имя (full_name) пользователя.

Атрибуты

Имя Тип Описание
dict dict Словарь, полученый при отправлении запроса.
id int ID пользователя в системе.
first_name str Имя пользователя.
last_name str Фамилия пользвателя.
full_name str Полное имя (Ф.И.) пользователя.
is_celebrity bool Является ли пользователь Селебрити.
avatar Avatar Аватар пользователя.
url str Ссылка на профиль пользователя.

algo_api.Avatar

Аватар пользователя.

При конвертации в str вернёт ссылку на SVG-версию аватара (svg_url).

Атрибуты

Имя Тип Описание
name str / None Имя стандартного аватара.
Вернёт None, если установлен кастомный аватар.*
small_url str / None Ссылка на стандартный аватар.
Вернёт None, если установлен кастомный аватар.*
svg_url str Ссылка на SVG-версию аватара пользователя.

algo_api.AvatarTemplate

Стандартный аватар.

При конвертации в str вернёт ссылку на аватар (url).

Атрибуты

Имя Тип Описание
name str Имя стандартного аватара.
url str Ссылка на стандартный аватар.
small_url str Ссылка на мини-версию аватара.

algo_api.Avatars

Список аватаров пользователя, включая текущий.

При конвертации в str вернёт ссылку на SVG-версию аватара (svg_url).

Атрибуты

Имя Тип Описание
name list[AvatarTemplate] Список доступных стандартных аватаров.
svg_url str Ссылка на SVG-версию аватара пользователя.

algo_api.UserStats

Статистика пользователя.

Атрибуты

Имя Тип Описание
classmates int Количество одногруппников у пользователя.
projects int Количество проектов у пользователя.
views int Количество просмотров под всеми проектами в сумме.
likes int Количество лайков под всеми проектами в сумме.
reactions int Количество реакций пользователя.*
friends int Количество друзей у пользователя.
followers int Количество подписчиков у пользователя.
following int Количество пользователей, на которых подписан пользователь.
avatars int Количество аватаров у пользователя.
avatar_items int Количество предметов для создания аватара у пользователя.
lootboxes int Количество лутбоксов у пользователя.*

algo_api.Course

Информация о курсе пользователя.

При конвертации в str вернёт отображаемое имя курса (display_name).

Атрибуты

Имя Тип Описание
id int ID курса.
name str Имя курса.
display_name str Отображаемое имя курса.
description str Подробное описание курса.
gamification_enabled int Включена ли геймификация.*
gamification_level_points int Количество очков геймификации.*
gamification_bonus_points int Количество бонусных очков геймификации.*

algo_api.Settings

Настройки редактора пользователя.

Атрибуты

Имя Тип Описание
allowed_file_extensions list[str] Разрешенные для загрузки в проекты файлы.
vscode_file_name_pattern str Фраза Regex для определения файлов VSCode.
prosveshenie_token str Токен просвещения.*

algo_api.Ban

Информация о бане пользователя.

Атрибуты

Имя Тип Описание
is_banned bool Забанен ли пользователь.
reason str / None Причина бана пользователя.
Вернёт None, если пользователь не забанен.
expires_at datetime.datetime / None Время окончания бана.
Вернёт None, если пользователь не забанен.

algo_api.Branch

Ветка, в которой учится пользователь.

При конвертации в str вернёт имя ветки (title).

При конвертации в int вернёт ID ветки (id).

Атрибуты

Имя Тип Описание
id int ID ветки в системе.
brand_name str Имя бренда ветки.*
title str Название ветки.
code str Кодовое название ветки в системе.
phone str Номер телефона горячей линии ветки.
site_url str / None Ссылка на сайт ветки.
Вернёт None, если сайта нет.

algo_api.Project

Проект.

При конвертации в int вернёт ID проекта в системе.

При конвертации в str вернёт название (title) проекта.

Атрибуты

Имя Тип Описание
dict dict Словарь, полученый при отправлении запроса.
id int ID проекта в системе.
title str Заголовок проекта.
description str / None Описание проекта.
Если оно пустое, вернёт None.
type str Тип/курс проекта.
algo_api.TYPE_IMAGES - картинки и гифки
algo_api.TYPE_DESIGN - дизайн
algo_api.TYPE_PYTHON - Python
algo_api.TYPE_PRESENTATION - презентация
algo_api.TYPE_SCRATCH - Scratch
algo_api.TYPE_WEBSITE - сайт
algo_api.TYPE_GAMEDESIGN - геймдизайн
algo_api.TYPE_UNITY - проект Unity
algo_api.TYPE_VIDEO - видео
algo_api.TYPE_VSCODE - проект из VSCode*
availabitily list[str] Видимость проекта.
Если algo_api.SHARING_MODE_GROUP в списке - виден одногруппникам
Если algo_api.SHARING_MODE_PUBLIC в списке - виден в Зале Славы
likes int Количество лайков у проекта.
views int Количество просмотров у проекта.
remixes int Количество ремиксов у проекта.
comments int Количество комментариев у проекта.
is_deleted bool Удалён ли проект.
author algo_api.ProfilePreview Автор проекта.
image algo_api.PreviewImage / None Картинка на превью.
None если не указана, либо используется картинка файла из проекта.
Кастомно-указанные картинки проектов не будут возвращать None.
reactions algo_api.Reactions Реакции, поставленные на проект.
created_at datetime.datetime Время создания проекта.
updated_at datetime.datetime Время последнего обновления проекта.
remix_enabled bool Включён ли ремикс у проекта.
original_project algo_api.RemixedProject / None Оригинальный проект.
Вернёт None, если проект не является ремиксом.
uploads list[algo_api.Upload] Файлы, загруженные в проект.
Отображаются только файлы самого проекта, т.е. загруженные картинки или другие файлы в, например, проект Python вы в этом списке не увидите.
url str Ссылка на страницу проекта.

algo_api.RemixedProject

Оригинальный проект ремикса.

При конвертации в int вернёт ID проекта в системе.

При конвертации в str вернёт название (title) проекта.

Атрибуты

Имя Тип Описание
id int ID проекта в системе.
title str Заголовок проекта.
author_name str Имя автора проекта.
url str Ссылка на страницу проекта.

algo_api.PreviewImage

Картинка, показывающаяся в превью проекта.

При конвертации в str вернёт ссылку на картинку (url).

Атрибуты

Имя Тип Описание
name str Название картинки.
auto, если установлена кастомная картинка.
small_url str Ссылка на мини-версию картинки.
url str Ссылка на картинку.

algo_api.Reactions

Реакции, оставленные под проектом.

Атрибуты

Имя Тип Описание
likes int Количество поставленных лайков.
loves int Количество поставленных сердечек.
fires int Количество поставленных огоньков.
you_placed_like bool Поставили ли вы лайк проекту.
you_placed_love bool Поставили ли вы сердечко проекту.
you_placed_fire bool Поставили ли вы огонёк проекту.

algo_api.Upload

Файл, загруженный в проект.

При конвертации в str вернёт ссылку на файл (url).

При конвертации в int вернёт ID файла в системе (id).

Атрибуты

Имя Тип Описание
id int ID файла в системе.
filename str Оригинальное название файла.
url str Ссылка на файл.
created_at datetime.datetime Время загрузки файла.
updated_at datetime.datetime Время последнего обновления файла.

algo_api.Comment

Комментарий, оставленный под проектом.

При конвертации в str вернёт текст комментария (message).

При конвертации в int вернёт ID комментария в системе.

Атрибуты

Имя Тип Описание
id int ID комментария в системе.
message str Текст комментария.
author algo_api.ProfilePreview Автор комментария.
children list[algo_api.Comment] Ответы на комментарий.
created_at datetime.datetime Время создания комментария.