LinkedIn Grow Network.js

To grow LinkedIn network

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

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

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

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

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

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

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @match        https://www.linkedin.com/
// @name         LinkedIn Grow Network.js
// @description  To grow LinkedIn network
// @compatible   chrome
// @author       Dalveer
// @license      MIT
// @version 0.0.1.20240528022703
// @namespace https://greasyfork.org/users/797771
// ==/UserScript==

/* Purpose: To grow LinkedIn network

How To Use: Method 1 (with Extension) (Preferred),
  1. Download any JS Extension for your preferred browser (Extension example: user-JavaScript-and-CSS);
  2. Copy this code (all, or a part of it).
  3. Create new entry in your JS extension for "https://www.linkedin.com", and and paste copied code in it.
  4. Refresh "linkedIn.com" and start browsing, this code will search for users visible on your page and send them a connection request.
  5. In Console, you will see update as "invited users:[count]"

How To Use: Method 2 (Without Extension),
  1. Open LinkedIn.com and login in your browser, and then open console (F12 in Chrome, or google it, "how to open and use console in [browser]).
  2. Copy this code (all, or a part of it), (If you are new to JS, then copy all of it).
  3. Paste copied code in console of your LinkedIn.com tab, and press enter.
  3. Start browsing LinkedIn, this code will search for users visible on your page and send them a connection request.
  4. In Console, you will see update as "invited users:[count]"
  NOTE: In this method, you will need to repeat step[2-3] every time, you page reloads, keep checking step[4].

Extension that I use: https://chromewebstore.google.com/detail/user-javascript-and-css/nbhcbdghjpllgmfilhnhkllmkecfmpld
NOTE: There is a linked weekly limit of 100-200 requests, you can use this every week.

Follow me at: https://github.com/Dalveer-Singh
source: https://github.com/Dalveer-Singh/Utility-Browser-Javascripts/blob/main/LinkedInGrowNetwork.js
*/


let count = 'userInviteCount';
let isM1Running = false;
let isM2Running = false;

if(sessionStorage.getItem(count) == null){
	sessionStorage.setItem(count, 0);
}

function connectWithDiv(){
	if (isM1Running){
		return;
	}
	isM1Running = true;
  // Select all buttons
  var buttons = document.querySelectorAll('div[aria-label]');
  
  // Iterate over the buttons and find the one that matches the pattern
  var matchingButton = null;
  buttons.forEach(function(button) {
      var ariaLabel = button.getAttribute('aria-label');
      if (ariaLabel.startsWith("Invite ") && ariaLabel.endsWith(" to connect")) {
          matchingButton = button;
      }
  });
  
  // Check if the matching button exists and perform an action
  if (matchingButton) {
      // Example action: click the button
      matchingButton.click();
      sessionStorage.setItem(count, parseInt(sessionStorage.getItem(count))+1);
      setTimeout(function() {document.querySelector('button[aria-label="Send without a note"]').click();}, 100);
  }
  isM1Running = false;
} 

function connectWithButton(){
	if (isM2Running){
		return;
	}
	isM2Running = true;
	var buttons = document.querySelectorAll('button[aria-label]');
  var matchingButton = null;
  buttons.forEach(function(button) {
    var ariaLabel = button.getAttribute('aria-label');
    if (ariaLabel.startsWith("Invite ") && ariaLabel.endsWith(" to connect")) {
        matchingButton = button;
        console.log(matchingButton.click());
        sessionStorage.setItem(count, parseInt(sessionStorage.getItem(count))+1);
    }
  });
  isM2Running = false;
}

function startConnecting(){
	connectWithButton();
	connectWithDiv();
	setTimeout(main, 2000);
	console.log("invited users: "+ sessionStorage.getItem(count));
}

// suggestion: Comment below method call, and call it from browserr console of linkedIn.com Tab, to avoid its all the time running.
startConnecting();