Misskey API の sinceid と untilidの 大小比較が全く分からないのでコードから調べてみた
Misskey Server は TYPE SCRIPTで動作してるらしいので、GitHubのコードを参考に復号してアルゴリズムを調べてみた
どうやら 種別は Aidらしい
misskey id checker(TypeScript) | ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO
オンラインで試せるサイトがあった。
export const aidRegExp = /^[0-9a-z]{10}$/; const TIME2000 = 946684800000; function getTime(time: number): string { time = time - TIME2000; if (time < 0) time = 0; return time.toString(36).padStart(8, '0'); } function genAid(date: Date): string { const t = date.getTime(); if (isNaN(t)) throw 'Failed to create AID: Invalid Date'; return getTime(t) + '00'; } function parseAid(id: string): { date: Date; } { const time = parseInt(id.slice(0, 8), 36) + TIME2000; return { date: new Date(time) }; } const tString = '7tcw9o2z38'; const date = new Date(); const gotAid = genAid(date); console.log(parseAid(tString)); console.log(parseAid('7tcw9o2zmf')); console.log(gotAid); |
#include <string> #include <time.h> #include <windows.h> using namespace std; const long long TIME2000 = 946684800; long long parseInt36(std::string s){ int _tmain(int argc, _TCHAR* argv[]) |
VC++ に移植してみた
Comments