SendWhatsppTextByJavaScript
czkawka
Our great sponsors
SendWhatsppTextByJavaScript | czkawka | |
---|---|---|
282 | 361 | |
10 | 17,501 | |
- | - | |
0.0 | 7.7 | |
about 3 years ago | 27 days ago | |
JavaScript | Rust | |
- | 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.
czkawka
- Is there software to compress large but similar files?
- Merge three separate partial libraries from external USB drives
-
Tools to deduplicate files
https://github.com/qarmin/czkawka by far the best of anything iv tried
-
fdupes: Identify or Delete Duplicate Files
I've used Czkawka (https://github.com/qarmin/czkawka) because it does Lanczos-based image duplicate detection, which makes it more practical for me.
-
AllDup suddenly taking forever to process/delete selections
Maybe it's a setting you made or the files, not sure. You can try another software czkawka to see if you get better results with it.
-
Is there a file duplicate finder that works with animated jpegxl-gif?
For static images i used https://github.com/qarmin/czkawka and it works well enough. I think. But when i used it on a folder with gifs and their jxl conversions, it shows nothing. SURELY this could not be user error, rrrright?
-
PhotoPrism: Browse Your Life in Pictures
I used to use DupeGuru which has some photo-specific dupe detection where you can fuzzy match image dupes based on content: https://dupeguru.voltaicideas.net/
But I switched over to czkawka, which has a better interface for comparing files, and seems to be a bit faster: https://github.com/qarmin/czkawka
Unfortunately, neither of these are integrated into Photoprism, so you still have to do some file management outside the database before importing.
I also haven't used Photoprism extensively yet (I think it's running on one of my boxes, but I haven't gotten around to setting it up), but I did find that it wasn't really built for file-based libraries. It's a little more heavyweight, but my research shows that Nextcloud Memories might be a better choice for me (it's not the first-party Nextcloud photos app, but another one put together by the community): https://apps.nextcloud.com/apps/memories
-
Please don't post like 20 similar images to the art sites?
Czkawka can do this.
-
I'm amazed how I find anything & why I have so many dupes!
There's always the well-respected tool, Czkawka. Or, of the CLI is your thing, jdupes is a good option.
- I saw a post regarding crate to delete similar files
What are some alternatives?
curl-impersonate - curl-impersonate: A special build of curl that can impersonate Chrome & Firefox
dupeguru - Find duplicate files
Cobalt - Standalone unofficial fully-featured Whatsapp Web and Mobile API for Java and Kotlin
jdupes - A powerful duplicate file finder and an enhanced fork of 'fdupes'.
DNSlock-PiHole-whitelist
fdupes - FDUPES is a program for identifying or deleting duplicate files residing within specified directories.
Ferdium - Ferdium is a desktop app that helps you organize how you use your favourite apps by combining them into one application.
AntiDupl - A program to search similar and defect pictures on the disk
watomatic - Auto reply app helping you move away from less private messengers like WhatsApp and Facebook Messenger
PhotoPrism - AI-Powered Photos App for the Decentralized Web 🌈💎✨
challenge-bypass-extension - DEPRECATED - Client for Privacy Pass protocol providing unlinkable cryptographic tokens
darktable - darktable is an open source photography workflow application and raw developer