İnstagram ext

İnstagram yardımcı eklenti

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        İnstagram ext
// @namespace   Violentmonkey Scripts
// @match       https://www.instagram.com/*
// @grant       none
// @version     1.5
// @grant       GM_addStyle
// @author      @mmnyldrm
// @description İnstagram yardımcı eklenti
// ==/UserScript==

GM_addStyle(`
      .menuHrefs {
          background-color: #fff;
          top: 60px;
          position: absolute;
          box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.116);
          padding: 20px 30px;
          border-radius: 10px;
          display: none;
          left: -75px;
          border: 1px solid #dfdfdf;
        width: 200px;
        }
      .menuHrefs > .link {
          padding: 8px 12px;
          font-weight: 500;
          font-size: 15px;
          display: flex;
          align-items: center;
          flex-direction: row;
          margin: 0px -15px;
          border-radius: 4px;
          margin-bottom: 4px;
          cursor: pointer;
      }
      .menuHrefs > .link:hover {
          background-color: #eeeeee;
      }
      .menuHrefs > .link > span {
        margin-left: 10px;
        color: #50505a;
      }
      .defBTN {
        padding: 0px;
        background-color: transparent;
        border-width: 0;
        margin: 0px;
      }
      .menuHrefs > .link.active {
        background-color: #5f7beb21;
      }
      .menuHrefs > .link.active:hover {
        background-color: #5f7beb3a;
      }
      .user_profile {
        display: flex;
      }
      .user_profile > img {
        width: 30px;
        height: 30px;
        border-radius: 100%;
        border: 2px solid #dddddd;
      }
      .user_name_username > .welcome {
        font-size: 14px;
        color: #5e5e5e;
      }
      .user_name_username > .name {
        font-weight: 600;
        font-size: 16px;
      }
      .line_head {
        font-weight: 700;
        font-size: 13px;
        color: #a3a4aa;
        letter-spacing: 1px;
        margin-bottom: 12px;
      }
      .success_btn  {
        background-color: #5feb8e21;
        color: #087e1c !important;
      }
      .success_btn:hover {
        background-color: #5feb8e5e !important;
      }
      .s_span {
        color: #087e1c !important;
      }
      .ftayfur {
        margin-left: 10px;
        position: relative;
      }
    .unfollow_area {
      width: 100%;
      background-color: #ffffff;
      box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.116);
      border: 1px solid #dfdfdf;
      padding: 20px 30px;
      margin-bottom: 40px;
      border-radius: 5px;
    }
    .total_list {
      font-size: 15px;
      font-weight: 500;
      display: flex;
    flex-direction: row;
    }
    .total_list > span {
      font-weight: 700;
      font-size: 18px;
      margin-bottom: 10px;
    }
    .flexbtn {
      margin-bottom: 10px;
      display: flex;
      flex-direction: row;
    }
    .flexbtn > button {
      border-width: 0;
      background-color: #3aad73;
      padding: 10px 20px;
      border-radius: 5px;
      font-weight: 500;
      cursor: pointer;
      color: #fff;
      margin-right: 10px;
    }
    .flexbtn > button:first-child {
      background-color: #4679d8;
    }
    #unfollowliststop {
      background-color: #ad5a3a;
    }
    .log {
      max-height: 200px;
      overflow-y: auto;
    }
    .item {
      font-family: "Inter", sans-serif;
      display: flex;
      flex-direction: row;
    }
    .successItem {
      margin-right: 5px;
      color: #087e1c;
    }
    .item > b {
      margin-right: 5px;
    }
    .modal {
      width: 100%;
      height: 100vh;
      position: absolute;
      top: 0;
      background-color: #616161b8;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      z-index: 222222222222;
    }
    .settings {
      width: 400px;
      background-color: #fff;
      border: 1px solid #eee;
      border-radius: 4px;
    }
    .settings > header {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      font-weight: 500;
      font-size: 18px;
      padding: 10px 20px;
      border-bottom: 1px solid #eeeeee;
    }
    .settings > header > button {
      border-width: 0;
      background-color: #dddddd63;
      padding: 7px 7px;
      display: flex;
      flex-direction: row;
      align-items: center;
      border-radius: 4px;
    }
    .settings > header > button:hover {
      background-color: #ddddddc0;
      cursor: pointer;
    }
    .menu_set {
      padding: 10px 20px;
    }
    .menu_set > h4 {
      font-size: 16px;
      font-weight: 600;
      margin: 0px;
      margin-bottom: 5px !important;
    }
    .menu_set > p {
      font-size: 13px;
      margin-top: 0px;
      margin-bottom: 10px;
    }
    .menu_set > input {
      width: calc(100% - 30px);
      border: 1px solid #dddddd;
      padding: 10px 15px;
      outline: none;
      border-radius: 4px;
    }
    .settings > .save {
      width: calc(100% - 40px);
      background-color: #5f68eb;
      color: #fff;
      margin: 10px 20px;
      padding: 10px 0px;
      border-radius: 5px;
      border-width: 0;
      cursor: pointer;
    }
    .settings > .save:hover {
      background-color: #4c56e4;
    }
    .success_modal {
      text-align: center;
      width: calc(100% - 40px);
      margin: 0px 20px;
      margin-bottom: 10px;
      padding: 10px 0px;
      background-color: #15b86c23;
      color: #127245;
      border-radius: 5px;
    }
    #ucount, #yucount {
      margin-left: 15px;
    }
`);

const URL_USER_INFO = "https://www.instagram.com/*/?__a=1";
const URL_HOME = "https://www.instagram.com/";
const URL_UNFOLLOW =
  "https://www.instagram.com/web/friendships/*/unfollow/";
const URL_FOLLOW =
  "https://www.instagram.com/web/friendships/*/follow/";
const URL_LIKE = "https://www.instagram.com/web/likes/*/like/";

let currentUrl = document.location.href;
let otherUserName;
let userId;
let actionTime =
  parseInt(localStorage.getItem("hiz_saniye")) || 3000;
const _cookies = document.cookie.split(";");
const _csrftoken = _cookies
  .find((item) => item.includes("csrftoken"))
  .replace(" csrftoken=", "");
const _userId = _cookies
  .find((item) => item.includes("ds_user_id"))
  .replace(" ds_user_id=", "");
const success_color = "#087e1c";
const inActiveColor = "#bbbcc1";
const successClass = "success_btn";
let unfollow_list = new Array();
let like_list = new Array();
let follow_list = new Array();
let unfollowCursor = 0;
let followCursor = 0;
let likeCursor = 0;
let valueChange = actionTime;

const likeIsSuccess = (successVal, failVal) => {
  const url = "https://www.instagram.com/";
  if (currentUrl === url) {
    return successVal;
  }
  return failVal;
};

let free = [];
let unfollow_count = 0;
let follow_count = 0;
let like_count = 0;
const successMessage =
  '<div class="item"><span class="successItem">Başarılı - </span> <b>*/name*/ </b> */message*/</div>';
const errorMessage =
  '<div class="item"><span class="errItem">Hata - </span> <b>*/type*/ </b> */message*/</div>';

const openOrCloseMenu = () => {
  const menuList = document.getElementById("menu_list");
  const isShow = menuList.dataset.show === "true";
  const styleMenu = menuList.style;
  if (isShow) {
    styleMenu.display = "none";
    menuList.setAttribute("data-show", "false");
  } else {
    styleMenu.display = "block";
    menuList.setAttribute("data-show", "true");
  }
};

const setMenu = () => {
  const className = document.getElementsByClassName("_47KiJ");
  const createElementDiv = document.createElement("div");
  createElementDiv.className = "ftayfur";
  createElementDiv.innerHTML = `<div class="ftayfur"><a id="menu_btn" class="_0ZPOP kIKUG ">
        <svg class="_8-yf5 " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" width="22" height="22">
            <path fill="none" d="M0 0h24v24H0z"/>
            <path d="M3 4h18v2H3V4zm0 7h12v2H3v-2zm0 7h18v2H3v-2z"/>
        </svg>
    </a>
      <div data-show="false" id="menu_list" class="menuHrefs">
        <h4 class="line_head">İşlemler</h4>
        <div id="follow_btn" class="link ">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22">
                <path fill="none" d="M0 0h24v24H0z"/>
                <path fill="${inActiveColor}" d="M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm5.793 8.914l3.535-3.535 1.415 1.414-4.95 4.95-3.536-3.536 1.415-1.414 2.12 2.121z"/>
            </svg>
            <span>Takip</span>
        </div>
        <div id="unfollow_btn" class="link">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22">
                <path fill="none" d="M0 0h24v24H0z"/>
                <path fill="#bbbcc1" d="M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm7 6.586l2.121-2.122 1.415 1.415L20.414 19l2.122 2.121-1.415 1.415L19 20.414l-2.121 2.122-1.415-1.415L17.586 19l-2.122-2.121 1.415-1.415L19 17.586z"/>
            </svg>
            <span>Unfollow</span>
        </div>
        <div id="like_btn" class="link">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22">
                <path fill="none" d="M0 0h24v24H0z"/>
                <path fill="${inActiveColor}" d="M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5C9.5 20 2 16 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm-3.566 15.604c.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 2.944 1.666 5.533 4.645 7.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571z"/>
            </svg>
            <span>Like</span>
        </div>
        <div id="setting_btn" class="link success_btn">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22">
                <path fill="none" d="M0 0h24v24H0z"/>
                <path fill="${success_color}" d="M3.34 17a10.018 10.018 0 0 1-.978-2.326 3 3 0 0 0 .002-5.347A9.99 9.99 0 0 1 4.865 4.99a3 3 0 0 0 4.631-2.674 9.99 9.99 0 0 1 5.007.002 3 3 0 0 0 4.632 2.672c.579.59 1.093 1.261 1.525 2.01.433.749.757 1.53.978 2.326a3 3 0 0 0-.002 5.347 9.99 9.99 0 0 1-2.501 4.337 3 3 0 0 0-4.631 2.674 9.99 9.99 0 0 1-5.007-.002 3 3 0 0 0-4.632-2.672A10.018 10.018 0 0 1 3.34 17zm5.66.196a4.993 4.993 0 0 1 2.25 2.77c.499.047 1 .048 1.499.001A4.993 4.993 0 0 1 15 17.197a4.993 4.993 0 0 1 3.525-.565c.29-.408.54-.843.748-1.298A4.993 4.993 0 0 1 18 12c0-1.26.47-2.437 1.273-3.334a8.126 8.126 0 0 0-.75-1.298A4.993 4.993 0 0 1 15 6.804a4.993 4.993 0 0 1-2.25-2.77c-.499-.047-1-.048-1.499-.001A4.993 4.993 0 0 1 9 6.803a4.993 4.993 0 0 1-3.525.565 7.99 7.99 0 0 0-.748 1.298A4.993 4.993 0 0 1 6 12c0 1.26-.47 2.437-1.273 3.334a8.126 8.126 0 0 0 .75 1.298A4.993 4.993 0 0 1 9 17.196zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/>
            </svg>
            <span class="s_span">Ayarlar</span>
        </div>
      </div>
    </div>`;

  if (className) {
    for (var i = 0; i < className.length; i++) {
      className[i].appendChild(createElementDiv);
    }
  }

  if (document.getElementById("menu_btn")) {
    document
      .getElementById("menu_btn")
      .addEventListener("click", (event) => {
        openOrCloseMenu();
      });
  }

  if (document.getElementById("setting_btn")) {
    document
      .getElementById("setting_btn")
      .addEventListener("click", (event) => {
        openOrCloseMenu();
        const mainReactArea = document.getElementById(
          "react-root",
        );
        const createUnModalDiv = document.createElement("div");
        createUnModalDiv.className = "modal";
        createUnModalDiv.setAttribute("id", "modal_close");
        createUnModalDiv.innerHTML = `
          <div id="setNoti" class="settings">
            <header>
              Ayarlar
              <button id="close_set">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
                  <path fill="none" d="M0 0h24v24H0z"/>
                  <path fill="#818181" d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/>
                </svg>
              </button>
            </header>
            <div class="menu_set">
              <h4>İşlem hızı</h4>
              <p>Saniye başına yapılacak işlem hızı <b>Mili saniye cinsinden</b></p>
              <input id="change_second" type="number" value="${actionTime}" placeholder="3 ( saniye ) * 1000 ( milisaniye ) = 3000" />
            </div>
            <button id="save_set" class="save">Kayıt et</button>
          </div>`;

        if (mainReactArea) {
          mainReactArea.appendChild(createUnModalDiv);
        }

        if (document.getElementById("close_set")) {
          document
            .getElementById("close_set")
            .addEventListener("click", () => {
              document.getElementById("modal_close").remove();
            });
        }

        if (document.getElementById("save_set")) {
          document
            .getElementById("save_set")
            .addEventListener("click", (e) => {
              const mainMArea = document.getElementById(
                "setNoti",
              );
              const createUnSuccessDiv = document.createElement(
                "div",
              );
              createUnSuccessDiv.className = "success_modal";
              createUnSuccessDiv.setAttribute(
                "id",
                "successMessage",
              );

              const newTime = parseInt(
                document.getElementById("change_second").value,
              );
              actionTime = newTime;
              localStorage.setItem("hiz_saniye", newTime);
              createUnSuccessDiv.innerHTML += "Kayıt başarılı";

              if (mainMArea) {
                mainMArea.appendChild(createUnSuccessDiv);
              }
              setTimeout(
                () =>
                  document
                    .getElementById("successMessage")
                    .remove(),
                3000,
              );
            });
        }
      });
  }

  if (document.getElementById("like_btn")) {
    document
      .getElementById("like_btn")
      .addEventListener("click", (event) => {
        openOrCloseMenu();
        const mainArea = document.getElementsByClassName(
          "cGcGK",
        );
        const createUnfollowDiv = document.createElement("div");
        createUnfollowDiv.innerHTML = `
            <div class="unfollow_area">
              <div class="flexbtn">
                <button id="unfollowlistadd">LİSTE EKLE</button>
                <button id="unfollowliststop">DURDUR</button>
                <button id="unf_go">BAŞLAT</button>
              </div>
              <div class="total_list">toplam like listesi: <span id="ucount">${like_list.length}</span></div>
              <div class="total_list">toplam like edilen post: <span id="yucount">${like_count}</span></div>
              <div id="log_unf" class="log"></div>
            </div>`;

        if (mainArea) {
          mainArea[0].insertBefore(
            createUnfollowDiv,
            mainArea[0].childNodes[0],
          );
        }
        if (document.getElementById("unfollowlistadd")) {
          const setLikeList = () => {
            fetch(
              `https://www.instagram.com/graphql/query/?query_hash=e3ae866f8b31b11595884f0c509f3ec5&variables={"cached_feed_item_ids":[],"fetch_media_item_count":12,"fetch_comment_count":4,"fetch_like":3,"has_stories":false,"has_threaded_comments":true ${
                likeCursor
                  ? ',"fetch_media_item_cursor": "' +
                    likeCursor +
                    '"'
                  : ""
              }}`,
            )
              .then((responseJson) => responseJson.json())
              .then((responseJson) => {
                const newList =
                  responseJson.data.user.edge_web_feed_timeline
                    .edges;
                if (
                  likeCursor !== null &&
                  like_list.length <= 80
                ) {
                  like_list = like_list.concat(newList);
                  likeCursor =
                    responseJson.data.user.edge_web_feed_timeline
                      .page_info.end_cursor;
                }
              });

            setTimeout(
              () =>
                (document.getElementById("ucount").innerHTML =
                  like_list.length),
              500,
            );
          };

          document
            .getElementById("unfollowlistadd")
            .addEventListener("click", (event) => {
              var myVar = setInterval(setLikeList, 1000);
              document
                .getElementById("unfollowliststop")
                .addEventListener("click", (event) => {
                  clearInterval(myVar);
                });
            });
          document
            .getElementById("unf_go")
            .addEventListener("click", (event) => {
              like_list.map((item, index) =>
                setTimeout(
                  () => ActionLike(item),
                  actionTime * (index + 1),
                ),
              );
            });
        }
      });
  }

  if (document.getElementById("follow_btn")) {
    document
      .getElementById("follow_btn")
      .addEventListener("click", (event) => {
        openOrCloseMenu();
        const mainArea = document.getElementsByClassName(
          "v9tJq",
        );
        const createUnfollowDiv = document.createElement("div");
        createUnfollowDiv.innerHTML = `
          <div class="unfollow_area">
            <div class="flexbtn">
              <button id="unfollowlistadd">LİSTE EKLE</button>
              <button id="unfollowliststop">DURDUR</button>
              <button id="unf_go">BAŞLAT</button>
            </div>
            <div class="total_list">toplam takip listesi: <span id="ucount">${unfollow_list.length}</span></div>
            <div class="total_list">toplam takip edilen kullanıcı: <span id="yucount">${unfollow_count}</span></div>
            <div id="log_unf" class="log"></div>
          </div>`;

        if (mainArea) {
          mainArea[0].insertBefore(
            createUnfollowDiv,
            mainArea[0].childNodes[0],
          );
        }

        if (document.getElementById("unfollowlistadd")) {
          const setfollowList = () => {
            fetch(
              `https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables={"id":${userId},"include_reel":true,"fetch_mutual":false,"first":20 ${
                followCursor
                  ? ',"after": "' + followCursor + '"'
                  : ""
              }}`,
            )
              .then((responseJson) => responseJson.json())
              .then((responseJson) => {
                const newList =
                  responseJson.data.user.edge_followed_by.edges;
                newList.map((item) => {
                  fetch(
                    URL_USER_INFO.replace(
                      "*",
                      item.node.username,
                    ),
                  )
                    .then((responseJson) => responseJson.json())
                    .then((responseJson) => {
                      const takip_ediliyor =
                        responseJson.graphql.user
                          .followed_by_viewer;
                      const istek_gonderildi =
                        responseJson.graphql.user
                          .requested_by_viewer;
                      if (!takip_ediliyor && !istek_gonderildi) {
                        free.push(item);
                      }
                    });
                });
                if (followCursor !== null) {
                  followCursor =
                    responseJson.data.user.edge_followed_by
                      .page_info.end_cursor;
                }
              });
            if (follow_list.length <= 80) {
              follow_list = follow_list.concat(free);
            }
            setTimeout(
              () =>
                (document.getElementById("ucount").innerHTML =
                  follow_list.length),
              500,
            );
            free = [];
          };

          document
            .getElementById("unfollowlistadd")
            .addEventListener("click", (event) => {
              var myVar = setInterval(setfollowList, 1000);
              document
                .getElementById("unfollowliststop")
                .addEventListener("click", (event) => {
                  clearInterval(myVar);
                });
            });
          document
            .getElementById("unf_go")
            .addEventListener("click", (event) => {
              follow_list.map((item, index) =>
                setTimeout(
                  () => ActionFollow(item),
                  actionTime * (index + 1),
                ),
              );
            });
        }
      });
  }

  if (document.getElementById("unfollow_btn")) {
    document
      .getElementById("unfollow_btn")
      .addEventListener("click", (event) => {
        openOrCloseMenu();
        const mainArea = document.getElementsByClassName(
          "v9tJq",
        );
        const createUnfollowDiv = document.createElement("div");
        createUnfollowDiv.innerHTML = `
            <div class="unfollow_area">
              <div class="flexbtn">
                <button id="unfollowlistadd">LİSTE EKLE</button>
                <button id="unfollowliststop">DURDUR</button>
                <button id="unf_go">BAŞLAT</button>
              </div>
              <div class="total_list">toplam unfollow listesi: <span id="ucount">${unfollow_list.length}</span></div>
              <div class="total_list">toplam unfollow edilen kullanıcı: <span id="yucount">${unfollow_count}</span></div>
              <div id="log_unf" class="log"></div>
            </div>`;

        if (mainArea) {
          mainArea[0].insertBefore(
            createUnfollowDiv,
            mainArea[0].childNodes[0],
          );
        }

        if (document.getElementById("unfollowlistadd")) {
          const setUnfollowList = () => {
            fetch(
              `https://www.instagram.com/graphql/query/?query_hash=d04b0a864b4b54837c0d870b0e77e076&variables={"id":${userId},"include_reel":true,"fetch_mutual":false,"first":20 ${
                unfollowCursor
                  ? ',"after": "' + unfollowCursor + '"'
                  : ""
              }}`,
            )
              .then((responseJson) => responseJson.json())
              .then((responseJson) => {
                const newList =
                  responseJson.data.user.edge_follow.edges;
                if (
                  unfollowCursor !== null &&
                  unfollow_list.length <= 80
                ) {
                  unfollow_list = unfollow_list.concat(newList);
                  unfollowCursor =
                    responseJson.data.user.edge_follow.page_info
                      .end_cursor;
                }
              });
            setTimeout(
              () =>
                (document.getElementById("ucount").innerHTML =
                  unfollow_list.length),
              500,
            );
          };

          document
            .getElementById("unfollowlistadd")
            .addEventListener("click", (event) => {
              var myVar = setInterval(setUnfollowList, 1000);
              document
                .getElementById("unfollowliststop")
                .addEventListener("click", (event) => {
                  clearInterval(myVar);
                });
            });
          document
            .getElementById("unf_go")
            .addEventListener("click", (event) => {
              unfollow_list.map((item, index) =>
                setTimeout(
                  () => ActionUnfollow(item),
                  actionTime * (index + 1),
                ),
              );
            });
        }
      });
  }
};

const ActionUnfollow = (item) => {
  fetch(URL_UNFOLLOW.replace("*", item.node.id), {
    method: "POST",
    headers: {
     "x-csrftoken": _csrftoken,
      "x-instagram-ajax": 1,
      "x-requested-with": "XMLHttpRequest"
    },
  })
    .then((responseJson) => responseJson.json())
    .then((responseJson) => {
      const status = responseJson.status === "ok";
      if (status) {
        unfollow_count++;
        document.getElementById(
          "yucount",
        ).innerHTML = unfollow_count;
        document.getElementById(
          "log_unf",
        ).innerHTML += successMessage
          .replace("*/name*/", item.node.username)
          .replace("*/message*/", "Unfollow edildi");
      } else {
        document.getElementById(
          "log_unf",
        ).innerHTML += errorMessage
          .replace("*/type*/", "Limit")
          .replace("*/message*/", "aşımı");
      }
    })
    .catch((err) => {
      if (err) {
        document.getElementById(
          "log_unf",
        ).innerHTML += errorMessage
          .replace("*/type*/", "Limit")
          .replace("*/message*/", "aşımı");
      }
    });
};

const ActionLike = (item) => {
  fetch(URL_LIKE.replace("*", item.node.id), {
    method: "POST",
    headers: {
      "x-csrftoken": _csrftoken,
      "x-instagram-ajax": 1,
      "x-requested-with": "XMLHttpRequest"
    },
  })
    .then((responseJson) => responseJson.json())
    .then((responseJson) => {
      const status = responseJson.status === "ok";
      if (status) {
        like_count++;
        document.getElementById(
          "yucount",
        ).innerHTML = like_count;
        document.getElementById(
          "log_unf",
        ).innerHTML += successMessage
          .replace("*/name*/", item.node.id)
          .replace("*/message*/", "Beğenildi");
      } else {
        document.getElementById(
          "log_unf",
        ).innerHTML += errorMessage
          .replace("*/type*/", "Limit")
          .replace("*/message*/", "aşımı");
      }
    })
    .catch((err) => {
      if (err) {
        document.getElementById(
          "log_unf",
        ).innerHTML += errorMessage
          .replace("*/type*/", "Limit")
          .replace("*/message*/", "aşımı");
      }
    });
};

const ActionFollow = (item) => {
  fetch(URL_FOLLOW.replace("*", item.node.id), {
    method: "POST",
    headers: {
      "x-csrftoken": _csrftoken,
      "x-instagram-ajax": 1,
      "x-requested-with": "XMLHttpRequest"
    },
  })
    .then((responseJson) => responseJson.json())
    .then((responseJson) => {
      follow_count++;
      document.getElementById(
        "yucount",
      ).innerHTML = follow_count;
      if (responseJson.result === "requested") {
        document.getElementById(
          "log_unf",
        ).innerHTML += successMessage
          .replace("*/name*/", item.node.username)
          .replace("*/message*/", "İstek gönderildi");
      } else {
        document.getElementById(
          "log_unf",
        ).innerHTML += successMessage
          .replace("*/name*/", item.node.username)
          .replace("*/message*/", "Takip edildi");
      }
    })
    .catch((err) => {
      if (err) {
        document.getElementById(
          "log_unf",
        ).innerHTML += errorMessage
          .replace("*/type*/", "Limit")
          .replace("*/message*/", "aşımı");
      }
    });
};

window.onload = () => {
  setMenu();

  let observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      const btnMenu = document.getElementById("menu_btn");
      if (currentUrl != document.location.href && !btnMenu) {
        /* Changed ! your code here */
        currentUrl = document.location.href;
        setMenu();
      } else {
        if (!btnMenu) {
          setMenu();
        }
      }
      if (currentUrl !== URL_HOME) {
        let nowUserName = document.getElementsByClassName(
          "_7UhW9",
        )[0].innerText;
        if (
          otherUserName !== nowUserName &&
          nowUserName !== "Başlarken"
        ) {
          otherUserName = document.getElementsByClassName(
            "_7UhW9",
          )[0].innerText;
          fetch(URL_USER_INFO.replace("*", otherUserName))
            .then((responseJson) => responseJson.json())
            .then((responseJson) => {
              userId = responseJson.graphql.user.id;
            });
        }
      }
    });
  });

  var bodyList = document.querySelector("body");
  var config = {
    childList: true,
    subtree: true,
  };

  observer.observe(bodyList, config);
};