Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

manmen2414/lifeistech-api

Repository files navigation

Life is Tech API

Caution

後述の理由でアカウントが失効したため、このプロジェクトはアーカイブ化されました。
以降、脆弱性を含むバグ修正や機能追加は行われません。ご了承ください。
Life is Techよ、永遠に...!

Warning

中学生コースでの教材「情報の技術」での動作のみを確認しています。
「情報Ⅰ全対応コース」や「情報Ⅰ・AIドリル」では恐らく動作しません。
詳しくは対応している教材についてをご覧ください。

Life is Tech! Lessonのユーザーに関する操作を行えるライブラリです。
Token(mozermovie)を用いて取得や操作が可能です。

Things that can

  • ユーザーの取得
  • ユーザープロフィールの編集
  • ユーザーの作成したWebサイトの追加・取得・編集
  • ユーザーの利用教材・教材内のチャプター・レッスン・チェックワークの取得
  • チェックワークへの解答
  • (1.0.0-beta3より) ユーザーの「オリジナル計測制御システム」の構成の取得

Things that cannot

  • ユーザーの「オリジナル計測制御システム」の構成の編集
    • 将来対応予定。
  • レッスンの受講

Usage

In Web - With Jsdelivr

htmlのhead内にスクリプトを追加します。
JS内でLifeIsTechAPIとしてインポートされます。

<script src="https://cdn.jsdelivr.net/gh/manmen2414/lifeistech-api/dist/lit-api.js"></script>  

In Web - With Local File

dist/lit-api.jsをダウンロードし、参照してください。

<script src="path/to/lit-api.js"></script>  

In Node.js

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" />  

Examples

以下の例は、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);  
});  

Scripts

  • 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と型宣言ファイルをバンドルする

Precautions

対応している教材について

ほとんどが中学生の「情報の技術」にのみ対応している機能です。
ページ操作に関する項目でのPythonコードのアップロード等には対応していません。

Contributing

製作者のLifeIsTechアカウントは2026年3月末に失効するため、以降はプロジェクトはアーカイブされ、いずれのIssueもPRもお受けすることができません。
2026年3月末以前であれば、Issue/PRは大歓迎です!
可能な限り対処いたします。

Licence / Disclaimer

このプロジェクト/ライブラリはMIT Licenseの元公開されています。
このライブラリを用いて発生した損害についてはライセンスの記述に基づき、製作者は責任を負いません。ご了承ください。
また、このライブラリは学習における不正行為を助長するものではないこと、ライフイズテック株式会社に承認されていないライブラリであることに留意してください。

About

Life is tech! LessonのオリジナルWebページ内でユーザー情報にアクセスしちゃおう!!

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages