İnstagram ext

İnstagram yardımcı eklenti

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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);
};