見出し画像

【無料】X(Twitter)で自動的にいいねするスクリプトを公開するよ

はじめに

最近、Webの分野に興味を持つ人が増えているみたいなの。
でも勉強に高い費用を払っている人も多いみたい。
そこで今回は、X(Twitter)で投稿を自動いいねするスクリプトを無料で公開するよ!!

基本知識とかは他の人がいくつも公開しているから、私は実際に形となっているツールのソースコードを公開するつもり。

今回みんなに公開するものは、あくまでも教育用だから、くれぐれも悪用したり、販売したりしないようにしてね。

イメージはこんな感じよ

機能は下記だよ。
・いいね間隔の時間を変更する
・ランダム間隔(凍結対策)
・いいねする数に上限を設定する
・開始 / 停止

とてもシンプルなソースコードだから、改造しながらJavascriptの勉強に役立ててね。
(noteのスキやフォローをしてくれると、とてもうれしいよ)


スクリプト本体

const existingPopup = document.getElementById('twitterAutoLikeExtensionPopup');
if (existingPopup) {
    existingPopup.remove();
}

function showToast(message) {
    const toast = document.createElement('div');
    toast.style.position = 'fixed';
    toast.style.bottom = '15px';
    toast.style.right = '15px';
    toast.style.padding = '8px 12px';
    toast.style.backgroundColor = '#323232';
    toast.style.color = '#ffffff';
    toast.style.zIndex = '10000';
    toast.style.borderRadius = '3px';
    toast.style.fontSize = '14px';
    toast.style.boxShadow = '0px 0px 10px rgba(0, 0, 0, 0.3)';
    toast.textContent = message;

    document.body.appendChild(toast);

    setTimeout(() => {
        toast.remove();
    }, 3000);
}

const popupDiv = document.createElement('div');
popupDiv.id = 'twitterAutoLikeExtensionPopup';
popupDiv.style.position = 'fixed';
popupDiv.style.bottom = '15px';
popupDiv.style.right = '15px';
popupDiv.style.width = '260px';
popupDiv.style.backgroundColor = '#f7f7f7';
popupDiv.style.border = '1px solid #e1e1e1';
popupDiv.style.zIndex = '9999';
popupDiv.style.padding = '15px';
popupDiv.style.borderRadius = '5px';
popupDiv.style.boxShadow = '0px 0px 10px rgba(0, 0, 0, 0.2)';

const htmlContent = `
    <div style="display: flex; flex-direction: column; gap: 8px;">
        <h4 style="margin:10px 0">自動いいねスクリプト</h4>
        <label for="interval" style="font-size: 14px; color: #333;">いいね間隔 (0.5秒 ~ 10秒):</label>
        <input id="interval" type="number" step="0.5" min="0.5" max="10" value="1" style="padding: 6px 8px; border: 1px solid #ccc; border-radius: 3px; font-size: 14px;">
        <label style="display: flex; align-items: center; font-size: 14px; color: #333;"><input type="checkbox" id="random" style="margin-right: 8px;">ランダム間隔 (5秒 ~ 10秒)</label>
        <label for="limit" style="font-size: 14px; color: #333;">いいね上限数:</label>
        <input id="limit" type="number" min="1" value="100" style="padding: 6px 8px; border: 1px solid #ccc; border-radius: 3px; font-size: 14px;">
        <div style="display: flex; gap: 8px;">
            <button id="startButton" style="flex: 1; padding: 8px 12px; background-color: #4CAF50; color: #ffffff; border: none; border-radius: 3px; font-size: 14px; cursor: pointer;">開始</button>
            <button id="stopButton" style="flex: 1; padding: 8px 12px; background-color: #FF5722; color: #ffffff; border: none; border-radius: 3px; font-size: 14px; cursor: pointer;">停止</button>
        </div>
        <div style="font-size: 14px; color: #333; margin-top: 12px;">いいねした数: <span id="likedCount">0</span></div>
        <div style="font-size: 12px; color: #999; margin-top: 4px;"><a href="https://twitter.com/1tr_j">作成者:ほんねのーと</a></div>
    </div>
`;

popupDiv.innerHTML = htmlContent;
document.body.appendChild(popupDiv);

let isRunning = false;
let likedCount = 0;
const startButton = document.getElementById('startButton');
const stopButton = document.getElementById('stopButton');
const likedCountSpan = document.getElementById('likedCount');
const intervalInput = document.getElementById('interval');
const randomCheckbox = document.getElementById('random');
const limitInput = document.getElementById('limit');

const autoLike = async () => {
    if (!isRunning || likedCount >= parseInt(limitInput.value)) {
        if (likedCount >= parseInt(limitInput.value)) {
            showToast('いいねの上限に達しました!');
        }
        return;
    }

    const likeButtons = [...document.querySelectorAll('div[data-testid="like"]')];
    if (likeButtons.length > 0) {
        likeButtons[0].click();
        likedCount++;
        likedCountSpan.textContent = likedCount;
    } else {
        window.scrollTo(0, document.body.scrollHeight);
        await new Promise(res => setTimeout(res, 2000));
    }

    let interval = parseFloat(intervalInput.value) * 1000;
    if (randomCheckbox.checked) {
        interval = (Math.random() * 5 + 5) * 1000;
    }

    setTimeout(autoLike, interval);
};

startButton.addEventListener('click', () => {
    if (isRunning) return;
    isRunning = true;
    showToast('自動いいねを開始しました。');
    autoLike();
});

stopButton.addEventListener('click', () => {
    isRunning = false;
    showToast('自動いいねを停止しました。');
});

スクリプトの使い方

  1. Twitterにアクセス

  2. ブラウザの開発者ツールを起動する

  3. コンソールのタブを開いて、スクリプトをコピー&ペーストし、エンターキーを押す

  4. ポップアップが右下に表示されるので、設定項目を選んで開始を押す


注意

このスクリプトは、Javascriptの教育用に無償公開しているものです。
スクリプト及び改造済みのスクリプトを第三者に譲渡 / 販売 / 公開 / 配布する行為は禁止とします。
万が一、スクリプトの実行によってアカウントがロック、凍結、シャドバンなどの被害にあったとしても、私は責任をとれませんので、自己責任で実行してください。


最後に

「こんなスクリプトを書いてみて欲しい」
「こんなものを作りたいけど作り方を教えて欲しい」
といった要望があれば、コメントにお願いね。

私が時間のある時に記事にして公開するよ!!

使い方で分からないことがあれば、それも教えるよ。

もし良ければnoteとTwitterのフォローをよろしくね。
Twitter:https://twitter.com/1tr_j

【他の投稿の宣伝】
下記の投稿も是非見てね!!

① 100いいね(スキ)が集まったら、立案者が責任持って実現させる企画を提案するよ。みんなもやってみない?

② 現在98スキ!!あと2スキで実現に動き出すよ!!

③ 渋谷ハロウィンに人を集めないようにする方法を考えたネタ記事だよ~

記事は毎日更新しているよ!!
(体調が悪いときは休むかも)

是非フォローをしていってね。
コメントしてくれた人にはフォローを返しているよ。


この記事が気に入ったらサポートをしてみませんか?