Skip to content
This repository has been archived by the owner on Aug 14, 2024. It is now read-only.

Latest commit

 

History

History
569 lines (356 loc) · 29 KB

reference.md

File metadata and controls

569 lines (356 loc) · 29 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=None, page: int=1, per_page: int=50, sort=algo_api.SORT_LATEST)

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

Если параметр id равен None, вернёт проекты из Зала Славы.

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

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

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

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

get_trending(interval: str)

Возвращает список проектов из секции "Тренды" как список с объектами класса algo_api.Project.

Значение interval должно быть любым из следующей таблицы:

Переменная Описание
algo_api.TRENDS_DAY Тренды за день
algo_api.TRENDS_WEEK Тренды за неделю
algo_api.TRENDS_MONTH Тренды за месяц

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

Если вы не вошли в аккаунт, поднимет ошибку 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.

get_source_code(id: int)

Возвращает исходный код указанного проекта как объект класса str.

Работает только с вашими Python проектами.

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

Если исходный код проекта не найден (в основном это происходит потому что он не принадлежит вам), поднимет ошибку.

change_source_code(id: int, code: str)

Перезаписывает исходный код указанного проекта на новый (code).

Работает только с вашими Python проектами.

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

Если нет доступа к исходному коду проекта (в основном это происходит потому что он не принадлежит вам), поднимет ошибку.

edit_project(id: int, title: str = None, description: str = None)

Изменяет название (title) и/или описание (description) проекта если они указаны.

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 / None Город пользователя.
Вернёт None, если город не указан или не опознан.*
friend_status str / None Текущий статус друга между вами и пользователем.
None - незнакомцы / пользователь подписан на вас
algo_api.RELATIONSHIP_FOLLOW - вы подписаны на пользователя
algo_api.RELATIONSHIP_FRIEND - вы друзья
updated_at datetime.datetime / None Дата и время последнего обновления пользователя.
Вернёт None, если аккаунт слишком стар и не обновлялся до введения данного атрибута.*
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 bool Включена ли геймификация.*
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 Ссылка на страницу проекта.
meta dict Мета-данные проекта. Обычно тут появляются ID проекта в онлайн редакторе кода, ссылки на сторонние сайты и прочее.

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 Время создания комментария.