Skip to content

Instantly share code, notes, and snippets.

@amu-kuroneko
Last active January 9, 2023 23:55
Show Gist options
  • Save amu-kuroneko/8264b06414c8acd0cc89dd28044646e0 to your computer and use it in GitHub Desktop.
Save amu-kuroneko/8264b06414c8acd0cc89dd28044646e0 to your computer and use it in GitHub Desktop.
omiai で自動的に足跡をつけるスクリプト
/**
* omiai にログインした状態でこのスクリプトを実行する
*
* e.g. Google Chrome
* 1. 開発者ウィンドウを開く (Command + Option + i)
* 2. Console タブを選択
* 3. このスクリプトを Copy & Paste して Return キーを入力
* 動作確認
* * Network タブを選択して、リクエストが増えていたら動作している
*
* 条件を指定する場合は omiai のサイト上の検索条件を指定した状態で
* このスクリプトを実行する
*/
$(() => {
const API_URL = 'https://www.omiai-jp.com/connect/api';
const INTERVAL_TIME = 300;
const LIMIT = 100;
const MAXIMUM_ERROR = 10;
let errorCount = 0;
let start = () => {
console.log('検索を開始します');
search(1);
return;
};
let detail = userId => {
let request = {
url: API_URL,
type: 'POST',
data: {
apiPath: '/member/detail',
apiVersion: 2,
master: true,
to_user_id: userId
}
};
$.ajax(request);
return;
};
let footprint = (userId, referer) => {
let request = {
url: API_URL,
type: 'POST',
data: {
apiPath: '/footprint/leave',
user_id: userId,
referer: referer
}
};
$.ajax(request).done(data => {
let result = JSON.parse(data);
if ('success' in result && result.success != 1) {
++errorCount;
}
}).fail(data => {
++errorCount;
return;
});
return;
};
let search = offset => {
let request = {
url: API_URL,
type: 'POST',
data: {
apiPath: '/search/recommend/results',
apiVersion: 2,
master: true,
limit: LIMIT,
offset: offset,
}
};
$.ajax(request).done(data => {
let result = JSON.parse(data);
if (result && 'footprint_referer' in result && 'number' in result && $.isArray(result.results)) {
if (result.results.length === 0) {
alert('検索結果がありませんでした');
} else {
let referer = result.footprint_referer;
let number = result.number;
let next = () => {
if (MAXIMUM_ERROR <= errorCount) {
alert('エラー許容上限を超えました');
errorCount = 0;
return;
}
setTimeout(() => {
let user = result.results.shift();
if (user) {
detail(user.user_id);
footprint(user.user_id, referer);
next();
} else if (number < offset + LIMIT){
console.log('全ての検索結果に足跡をつけました');
start();
} else {
search(offset + LIMIT);
}
return;
}, INTERVAL_TIME);
return;
};
next();
}
} else if (result && 'error' in result && 'code' in result.error && result.error.code == 3) {
console.log('全ての検索結果に足跡をつけました');
start(0);
} else {
alert('検索でエラーが発生しました');
}
return;
}).fail(data => {
alert('通信エラーが発生しました');
return;
});
return;
};
start();
return;
});
@t1gerk1ngd0m
Copy link

こちらのスクリプトを試してみたところ、検索でエラーが発生しましたが連発しております。
検索で弾かれているのではないでしょうか?

@amu-kuroneko
Copy link
Author

申し訳ございません。こちら既に退会済みのため確認できておりません。
時間ができましたら確認して、必要であれば修正したいと思います。

@t1gerk1ngd0m
Copy link

住みません、こちら時間を置いて再度試してみたところ問題なく動作しました。
ご返答ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment