SendWhatsppTextByJavaScript
node
SendWhatsppTextByJavaScript | node | |
---|---|---|
282 | 930 | |
10 | 103,970 | |
- | 0.9% | |
0.0 | 9.9 | |
about 3 years ago | 2 days ago | |
JavaScript | JavaScript | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SendWhatsppTextByJavaScript
-
Selenium WebScraper for WhatsApp to atomatically add People in Group
def __init__(self, group_name=GN): self.group_name = group_name logging.info("Starting WhatsAppGroupManager") options = webdriver.ChromeOptions() options.add_argument("user-data-dir=" + PATH_TO_CHROME_DRIVER_USER_PROFILE) self.driver = webdriver.Chrome(options=options) # self.driver.maximize_window() self.driver.get('https://web.whatsapp.com/') logging.info("Opened WhatsApp Web") def manager_kill(self): self.driver.close() self.driver.quit() def open_group_chat(self): try: # Wait for the chat input field to be visible chat_input = WebDriverWait(self.driver,45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[3]/div/div[1]/div/div[2]/div[2]/div/div[1]/p') ) ) time.sleep(sleep_time) chat_input.click() Logger.info("Clicked on the chat input field on the left side of WhatsApp") time.sleep(sleep_time) # Find the input field again after clicking on it chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[3]/div/div[1]/div/div[2]/div[2]/div/div[1]/p') ) ) chat_input.send_keys(self.group_name) Logger.info("Inserted the group name into the search field") time.sleep(sleep_time) chat_input.send_keys(Keys.ENTER) Logger.info("Pressed ENTER") time.sleep(sleep_time) Logger.info("Opened the group chat") except Exception as e: Logger.error(f"Error: {e}") self.manager_kill() return None def open_group_info(self): try: # open group chat self.open_group_chat() time.sleep(sleep_time) chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[4]/div/header/div[3]/div/div[3]/div/div/span') ) ) chat_input.click() Logger.info("Clicked on the group info button") time.sleep(sleep_time) # Find the input field again after clicking on it chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[5]/div/ul/div/div/li[1]/div') ) ) chat_input.click() Logger.info("In group info menu") time.sleep(sleep_time) except Exception as e: logging.error(f"Error in open_group_info: {e}") self.manager_kill() return None def open_add_telephone_numbers(self): self.open_group_info() time.sleep(sleep_time) try: chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[5]/span/div/span/div/div/div/section/div[7]/div[2]/div[1]/div[2]/div/div') ) ) chat_input.click() Logger.info("Clicked on the add telephone numbers button") time.sleep(sleep_time) except Exception as e: logging.error(f"Error in open_add_telephone_numbers: {e}") self.manager_kill() return None def add_telephone_numbers(self, phone_numbers): if isinstance(phone_numbers, str): phone_numbers = [phone_numbers] # convert string to list self.open_add_telephone_numbers() time.sleep(sleep_time) try: for phone_number in phone_numbers: try: chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div/div[1]/div/div[2]/div[2]/div/div[1]/p') ) ) chat_input.click() Logger.info("Clicked on the search field") time.sleep(sleep_time) # Clear the text field chat_input.send_keys(Keys.CONTROL + 'a') chat_input.send_keys(Keys.DELETE) chat_input.send_keys(phone_number) Logger.info("Inserted the phone number into the search field") time.sleep(sleep_time) # Check if the phone number exists # Not Working try: WebDriverWait(self.driver, 2).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div/div[2]/div/div/div/div[2]/div/div[2]') ) ) Logger.info("Phone Number exist") time.sleep(sleep_time) # Send the ENTER key chat_input.send_keys(Keys.ENTER) Logger.info("Pressed ENTER to add the person into the group") time.sleep(sleep_time) continue except: Logger.info(f"Phone number does not exists: {phone_number}") time.sleep(sleep_time) pass except Exception as e: logging.error(f"Error in open_add_telephone_numbers: {e}") self.manager_kill() return None # Send the ENTER key chat_input.send_keys(Keys.ENTER) Logger.info("Pressed ENTER to add the person into the group") time.sleep(sleep_time) chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div/span[2]/div/div/div/span') ) ) chat_input.click() Logger.info("Clicked on the add telephone numbers button") time.sleep(sleep_time) # Confirm the adding of the telephone numbers chat_input = WebDriverWait(self.driver, 45).until(EC.element_to_be_clickable( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div[2]/div/button[2]/div/div') ) ) time.sleep(5) Logger.info("Should click on the confirmation the add telephone numbers button") chat_input.click() Logger.info("Clicked on Confirmation the add telephone numbers button") time.sleep(4) except Exception as e: logging.error(f"Error in add_telephone_numbers: {e}") self.manager_kill() return None
-
User-facing/client-side tools for internet troubleshooting
Hi everyone. The other day a client of mine's employees started having issues with the "internet not working". After some detective work with traceroute and interviewing them about what sites they were having issues with, I determined that the actual issue was with the web.whatsapp.com service having downtime. I'm mentioning all this because I'm now thinking of making them a small video/article on our intranet about how to troubleshoot problems like this by themselves. Part of that strategy is deploying WinMTR on their machines so they can run it. I still don't know how I'll verify if it's installed, but maybe checking if it's in the target folder (intend to send it to System32 by creating an Intune package with IntuneWinAppUtil.exe) is a good start. There is a Tracert app on the Appstore but it's paid and I have no idea how one can pay for it in bulk without having each employee put in a credit card. Anyways just wanted to ask what you all are doing for this type of scenarios. Cheers. PS: anyone hiring for Intune/sysadmin type jobs or know where one can find remote jobs for non-US citizens?
-
Is WhatsApp Web down in Oman?
I believe web.whatsapp.com is being blocked by local telecom companies in order to protect their duopoly and keep Oman in tech--stone-age. If fewer people know how else the rest of the world uses the internet, then they don't have to make an effort to improve their offerings. Omantel is definitely blocking this web.whatsapp.com.
-
Open Letter to WhatsApp: Need for a Linux Desktop App
What's wrong with https://web.whatsapp.com/ ?
-
Simplistic
{"nightTab":true,"version":"7.3.0","state":{"layout":{"area":{"header":{"width":74,"justify":"center"},"bookmark":{"width":100,"justify":"center"}},"alignment":"center-center","order":"header-bookmark","direction":"horizontal","size":91,"width":99,"padding":49,"gutter":49,"breakpoint":"lg","scrollbar":"none","title":"Launchpad","favicon":"https://cdn-icons-png.flaticon.com/512/7397/7397876.png","overscroll":false},"header":{"item":{"justify":"center"},"greeting":{"show":true,"type":"good","custom":"","name":"Avnes","size":146,"newLine":true},"transitional":{"show":false,"type":"time-and-date","size":100,"newLine":false},"clock":{"hour":{"show":true,"display":"number"},"minute":{"show":true,"display":"number"},"second":{"show":true,"display":"number"},"separator":{"show":true,"text":":"},"meridiem":{"show":false},"hour24":{"show":true},"size":362,"newLine":true},"date":{"day":{"show":true,"display":"word","weekStart":"monday","length":"long"},"date":{"show":true,"display":"number","ordinal":true},"month":{"show":true,"display":"word","length":"short","ordinal":true},"year":{"show":true,"display":"number"},"separator":{"show":true,"text":":"},"format":"date-month","size":121,"newLine":true},"search":{"show":true,"width":{"by":"custom","size":82},"engine":{"selected":"google","custom":{"name":"","url":"","queryName":""}},"text":{"justify":"center"},"size":86,"newLine":true,"newTab":false,"string":"partial derivative symbol"},"order":["greeting","clock","date","search"],"edit":false},"bookmark":{"size":56,"url":{"show":true},"line":{"show":true},"shadow":{"show":true},"hoverScale":{"show":true},"orientation":"bottom","style":"block","newTab":false,"edit":false,"add":false,"show":true,"item":{}},"group":{"area":{"justify":"left"},"order":"header-body","name":{"size":100},"toolbar":{"size":100},"edit":false,"add":false},"toolbar":{"location":"corner","position":"bottom-right","size":76,"accent":{"show":true},"add":{"show":true},"edit":{"show":true},"newLine":false},"theme":{"color":{"range":{"primary":{"h":218,"s":60}},"contrast":{"start":11,"end":68},"shades":14},"accent":{"hsl":{"h":270,"s":100,"l":68},"rgb":{"r":173,"g":92,"b":255},"random":{"active":false,"style":"any"},"cycle":{"active":false,"speed":300,"step":10}},"font":{"display":{"name":"Montserrat","weight":250,"style":"normal"},"ui":{"name":"Montserrat","weight":400,"style":"normal"}},"background":{"type":"image","color":{"rgb":{"r":0,"g":0,"b":0},"hsl":{"h":0,"s":0,"l":0}},"gradient":{"angle":160,"start":{"hsl":{"h":206,"s":16,"l":40},"rgb":{"r":86,"g":104,"b":118}},"end":{"hsl":{"h":219,"s":28,"l":12},"rgb":{"r":22,"g":28,"b":39}}},"image":{"url":"https://source.unsplash.com/random/1920x1080/?landscape,nature,wallpaper","blur":0,"opacity":69,"scale":100,"grayscale":0,"accent":0,"vignette":{"opacity":21,"start":100,"end":90}},"video":{"url":"","blur":0,"opacity":100,"scale":100,"grayscale":0,"accent":0,"vignette":{"opacity":0,"start":90,"end":70}}},"opacity":{"general":0},"layout":{"color":{"by":"theme","blur":6,"opacity":0,"hsl":{"h":195,"s":100,"l":55},"rgb":{"r":26,"g":198,"b":255}},"divider":{"size":0}},"header":{"color":{"by":"custom","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"search":{"opacity":34}},"bookmark":{"color":{"by":"theme","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"item":{"border":1,"opacity":50}},"group":{"toolbar":{"opacity":0}},"toolbar":{"opacity":18},"style":"dark","radius":73,"shadow":171,"shade":{"opacity":1,"blur":0},"custom":{"all":[],"edit":false}},"search":false,"modal":false,"menu":true},"bookmark":[{"name":{"text":"","show":true},"collapse":false,"toolbar":{"openAll":{"show":false},"collapse":{"show":false}},"items":[{"url":"https://web.whatsapp.com/","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"icon","size":48,"letter":{"text":"Whatsapp"},"icon":{"name":"whatsapp","prefix":"fab","label":"What's App"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":121,"s":99,"l":69},"rgb":{"r":98,"g":254,"b":100}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1700054080534},{"url":"https://www.ahaguru.com/signin","display":{"alignment":"bottom-right","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"letter","size":25,"letter":{"text":"AG ©"},"icon":{"name":"","prefix":"","label":""},"image":{"url":""},"shadow":{"size":36}}},"accent":{"by":"custom","hsl":{"h":192,"s":99,"l":56},"rgb":{"r":32,"g":209,"b":254}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1700054310774},{"url":"https://class.ahaguru.com/","display":{"alignment":"bottom-right","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"letter","size":25,"letter":{"text":"AG Ⓛ"},"icon":{"name":"500px","prefix":"fab","label":"500px"},"image":{"url":""},"shadow":{"size":34}}},"accent":{"by":"custom","hsl":{"h":176,"s":98,"l":51},"rgb":{"r":8,"g":253,"b":236}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1700054253962},{"url":"https://artsexperiments.withgoogle.com/periodic-table/","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":12,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"image","size":62,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://cdn-icons-png.flaticon.com/512/4535/4535867.png?ga=GA1.1.677380455.1700120484"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":322,"s":97,"l":72},"rgb":{"r":253,"g":114,"b":202}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":false},"timestamp":1700925270146},{"url":"https://app.raindrop.io","display":{"alignment":"bottom-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"image","size":54,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://miro.medium.com/v2/resize:fit:1024/1*JtxOMEcB0N7yoGiHjFf1Gg.png"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":195,"s":100,"l":61},"rgb":{"r":56,"g":205,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":true},"timestamp":1700491631679},{"url":"https://desmos.com/scientific","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":7},"visual":{"show":true,"type":"icon","size":34,"letter":{"text":""},"icon":{"name":"square-root-alt","prefix":"fas","label":"Alternate Square Root"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":154,"s":72,"l":38},"rgb":{"r":27,"g":167,"b":106}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":false},"timestamp":1701435891254},{"url":"https://unsplash.com","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":30,"name":{"show":true,"text":"","size":7},"visual":{"show":true,"type":"image","size":45,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://cdn.icon-icons.com/icons2/2566/PNG/512/unsplash_icon_153496.png"},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"custom","hsl":{"h":0,"s":8,"l":85},"rgb":{"r":220,"g":214,"b":214},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1701421863143},{"url":"https://mail.google.com/","display":{"alignment":"bottom-right","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":13},"visual":{"show":true,"type":"icon","size":44,"letter":{"text":"GM"},"icon":{"name":"envelope","prefix":"fas","label":"Envelope"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":281,"s":100,"l":64},"rgb":{"r":197,"g":71,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":false},"timestamp":1626298011293},{"url":"https://doc.rust-lang.org/stable/book/","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"image","size":90,"letter":{"text":""},"icon":{"name":"","prefix":"","label":"rust"},"image":{"url":"https://www.fpcomplete.com/wp-content/uploads/2023/04/rust-logo-512x512_white.png"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":0,"s":99,"l":69},"rgb":{"r":254,"g":98,"b":98}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":true},"timestamp":1700491471508},{"url":"https://netaccess.iitm.ac.in/account/login","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"icon","size":36,"letter":{"text":""},"icon":{"name":"wifi","prefix":"fas","label":"WiFi"},"image":{"url":""},"shadow":{"size":46}}},"accent":{"by":"custom","hsl":{"h":220,"s":100,"l":65},"rgb":{"r":77,"g":136,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":true},"timestamp":1700054179807},{"url":"https://chromewebstore.google.com/","display":{"alignment":"top-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":7},"visual":{"show":true,"type":"image","size":41,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Google_Chrome_Web_Store_icon_2015.svg/512px-Google_Chrome_Web_Store_icon_2015.svg.png?20220227092509"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":0,"s":0,"l":100},"rgb":{"r":255,"g":255,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":true},"timestamp":1701422504835}]}]}
-
Best app, like, ever?
Whatsapp (Free) - chat. although some people prefer iMessage and other ones.
-
WhatsApp Mac Client - can I have it installed two times?
use browser for one account https://web.whatsapp.com/ and app for the other
-
Can a PC get infected by Malware or Virus by watching a video via WhatsApp Web?
I've received a video via WhatsApp from an untrusted source. I used my personal PC to open the video (via "WhatsApp Web" website). I should mention that I didn't download the video to my PC, I just opened the video online, watched it then closed the web browser.
-
Unable to link any devices (browser, windows app)
I have recently moved from iPhone to Pixel 8, and when I try to link a device, for example my browser (web.whatsapp.com) or the windows app, the Whatsapp App on the phone crashes and restarts, and the linking process does not succeed.
-
https://web.whatsapp.com/ --- Search is not working
on my chrome browser i have linked device https://web.whatsapp.com/ and when i select search button (magnifying glass) i type a word and i can see search is looking for messages... but the search never completes and no messages are found.
node
-
Day 2: Setting Up Angular Development Environment
Visit the Node.js website and download the latest version of Node.js for your operating system.
-
How to Add Firebase Authentication To Your NodeJS App
Basic knowledge of Node.js and its environment setup. If you don't have Node.js installed on your system, make sure you download and install it from the official Node.js website.
-
Part 2: Setting Up Your Node.js Environment
Node.js can be easily installed from its official website. Depending on your operating system, you can choose the Windows, macOS, or Linux version. Node.js packages come with npm (Node Package Manager), which is essential for managing dependencies in your projects.
-
Announcing Node.js 22.0.0: What’s New and Why It Matters
To get started with Node.js 22.0.0, you can download the latest version from the official Node.js website. For those upgrading from an older version, it is recommended to test your existing applications for compatibility with the new release, particularly if you are using native modules or rely heavily on third-party npm packages.
-
How to Make a VS Code Extension Using TypeScript: A Step-by-Step Guide
Node.js (version 10 or higher)
-
Getting Started with Next.js: Part 1 - Setting Up Your Project
Before we start, ensure that you have Node.js installed on your computer. This is necessary because we will use Node's package manager (npm) to create our Next.js project. If you need to install Node.js, you can download it from the official Node.js website.
-
How to create a react project from scratch
Before starting a new project in react, you need to make sure that you have NodeJS install on your system. You can download the latest version of node at https://nodejs.org. Follow the instructions on the node website to do the installation.
-
The Ultimate Node.js Cheat Sheet for Developers
Installing Node.js: Download and install Node.js from nodejs.org. Choose the version recommended for most users, unless you have specific needs that require the latest features or earlier compatibility.
- Node 22.0.0 Just Released
-
Google Authentication in Nodejs using Passport and Google Oauth
You should have Nodejs installed on your laptop and if not, check the Node.js official website, and download/ install the latest and stable release.
What are some alternatives?
curl-impersonate - curl-impersonate: A special build of curl that can impersonate Chrome & Firefox
Svelte - Cybernetically enhanced web apps
Cobalt - Standalone unofficial fully-featured Whatsapp Web and Mobile API for Java and Kotlin
widevine-l3-decryptor - A Chrome extension that demonstrates bypassing Widevine L3 DRM
DNSlock-PiHole-whitelist
source-map-resolve - [DEPRECATED] Resolve the source map and/or sources for a generated file.
Ferdium - Ferdium is a desktop app that helps you organize how you use your favourite apps by combining them into one application.
sharp-libvips - Packaging scripts to prebuild libvips and its dependencies - you're probably looking for https://github.com/lovell/sharp
watomatic - Auto reply app helping you move away from less private messengers like WhatsApp and Facebook Messenger
nodejs.dev - A redesign of Nodejs.org built using Gatsby.js with React.js, TypeScript, and Remark.
challenge-bypass-extension - DEPRECATED - Client for Privacy Pass protocol providing unlinkable cryptographic tokens
hashlips_art_engine - HashLips Art Engine is a tool used to create multiple different instances of artworks based on provided layers.