Caution
後述の理由でアカウントが失効したため、このプロジェクトはアーカイブ化されました。
以降、脆弱性を含むバグ修正や機能追加は行われません。ご了承ください。
Life is Techよ、永遠に...!
Warning
中学生コースでの教材「情報の技術」での動作のみを確認しています。
「情報Ⅰ全対応コース」や「情報Ⅰ・AIドリル」では恐らく動作しません。
詳しくは対応している教材についてをご覧ください。
Life is Tech! Lessonのユーザーに関する操作を行えるライブラリです。
Token(mozermovie)を用いて取得や操作が可能です。
- ユーザーの取得
- ユーザープロフィールの編集
- ユーザーの作成したWebサイトの追加・取得・編集
- ユーザーの利用教材・教材内のチャプター・レッスン・チェックワークの取得
- チェックワークへの解答
- (1.0.0-beta3より) ユーザーの「オリジナル計測制御システム」の構成の取得
- ユーザーの「オリジナル計測制御システム」の構成の編集
- 将来対応予定。
- レッスンの受講
htmlのhead内にスクリプトを追加します。
JS内でLifeIsTechAPIとしてインポートされます。
<script src="https://cdn.jsdelivr.net/gh/manmen2414/lifeistech-api/dist/lit-api.js"></script> dist/lit-api.jsをダウンロードし、参照してください。
<script src="path/to/lit-api.js"></script> dist/lit-api.jsをダウンロードし、参照してください。
const LifeIsTechAPI = require("./path/to/lit-api.js");VSCodeであれば、dist/lit-api.d.tsをプロジェクトのフォルダにコピーし、スプリクトに以下を追記すると型参照されます。
いつかnpmに公開して自動で型参照されるようにしてみたいですね
/// <reference path="lit-api.d.ts" /> 以下の例は、Chapter5 「オリジナルWebサイト制作」のWebサイトで用いることを想定しています。
ユーザー名とユーザー画像の取得
document.addEventListener("DOMContentLoaded", async () => {
const loginingUser = await LifeIsTechAPI.User.Load(mozermovie);
// キャラ画像の取得
const charactorImages = await LifeIsTechAPI.getCharactorsImage();
// ユーザーのキャラ画像を取得
const charactor = charactorImages[loginingUser.avatarFileName];
// ユーザー名を表示する
const text = document.createElement("div");
text.innerText = loginingUser.nickname;
document.body.append(text);
// キャラ画像を表示する
const image = document.createElement("img");
image.src = charactor;
document.body.append(image);
}); ページを新規作成し、 `Hello, World!`を表示させる
document.addEventListener("DOMContentLoaded", async () => {
const loginingUser = await LifeIsTechAPI.User.Load(mozermovie);
// ページの新規作成
const pageRet = await loginingUser.createPage("lit-api-page", []);
// 作成に成功したか
if (!pageRet.successed) {
alert("作成に失敗しました。");
return;
}
// ページを読込
const page = await pageRet.page.load();
// index.htmlを取得する
const index = page.files.find((file)=>file.name === "index.html");
// 書き換える
index.content = `<html><head></head><body>Hello, World!</body></html>`;
// 保存する
await page.save();
// リンクの提示
const text = document.createElement("a");
text.innerText = "ページをここに作成しました。";
text.href = page.previewUrl;
document.body.append(text);
}); ユーザーのクリア済みレッスン数を取得する
document.addEventListener("DOMContentLoaded", async () => {
const loginingUser = await LifeIsTechAPI.User.Load(mozermovie);
// クリア済みレッスン数を数える
let lessonCleared = 0;
let lessonAll = 0;
// コースの取得
const courses = await loginingUser.getCourses();
courses.forEach((course) => {
course.chapters.forEach((chapter) => {
chapter.lessons.forEach((lesson) => {
// コース > チャプター > レッスンと調べていき、総数とクリア数を調べる
lessonAll++;
if (lesson.status === "cleared") lessonCleared++;
});
});
});
// 整形
const cleared = `あなたは ${lessonCleared}/${lessonAll} レッスンをクリアしています。`;
// 表示する
const text = document.createElement("div");
text.innerText = cleared;
document.body.append(text);
}); npm run buildでJavaScriptを公開用にビルドする (dist/lit-api.js)npm run developBuildでJavaScriptをデバッグ用にビルドする (dist/lit-api.js)- Webpack Bundle Analyzerが作動する。
- (Windows Only)
build:types-winで型宣言ファイルをバンドルする (dist/lit-api.d.ts) - (Mac/Linux Only)
build:typesで型宣言ファイルをバンドルする (dist/lit-api.d.ts) - (Windows Only)
build:all-winでJavaScriptと型宣言ファイルをバンドルする - (Mac/Linux Only)
build:typesでJavaScriptと型宣言ファイルをバンドルする
ほとんどが中学生の「情報の技術」にのみ対応している機能です。
ページ操作に関する項目でのPythonコードのアップロード等には対応していません。
製作者のLifeIsTechアカウントは2026年3月末に失効するため、以降はプロジェクトはアーカイブされ、いずれのIssueもPRもお受けすることができません。
2026年3月末以前であれば、Issue/PRは大歓迎です!
可能な限り対処いたします。
このプロジェクト/ライブラリはMIT Licenseの元公開されています。
このライブラリを用いて発生した損害についてはライセンスの記述に基づき、製作者は責任を負いません。ご了承ください。
また、このライブラリは学習における不正行為を助長するものではないこと、ライフイズテック株式会社に承認されていないライブラリであることに留意してください。