https://old.reddit.com/r/Python/comments/z1ts1n/i_built_an_a...
S̵h̵e̵r̵l̵o̵c̵k̵ ̵u̵s̵e̵s̵ ̵M̵I̵T̵ ̵l̵i̵c̵e̵n̵s̵e̵ ̵a̵n̵d̵ ̵y̵o̵u̵ ̵s̵t̵i̵l̵l̵ ̵h̵a̵v̵e̵n̵'̵t̵ ̵a̵d̵d̵e̵d̵ ̵M̵I̵T̵ ̵l̵i̵c̵e̵n̵s̵e̵ ̵t̵o̵ ̵y̵o̵u̵r̵ ̵r̵e̵p̵o̵.̵
https://github.com/sherlock-project/sherlock
https://github.com/bnkc/handlefinder
With that said, I like the look of the UI you put on top, great work!
Edit: As others have pointed out, the author doesn't need to make their creation MIT as well. I misunderstood the license agreement. They just have to include the notice of the dependencies somewhere. TIL.
They're well within their rights to release their software as MIT or whatever, but they should make that decision on their own or as reflection upon the proper arguments from the community.
Second sentence in the README file on github is "This app is a wrapper around The Sherlock Project" (last edited 5h before posting) and second sentence in the UI is "This project is a wrapper around the Sherlock Project."
Also, it would be nice to show misses -- where the account name hasn't been used.
I have found a few other people out there with the same name, and it would be nice to know what systems I can go to and grab the name I want to use.
Cheers
I quickly cloned the repo and started toying around with it. It didn’t take me long to realize the power of this tool. All I had to do was insert a username, and voila! I was looking at every social media website that was associated with the username. Not only that but direct links to the accounts.
I immediately wanted to turn this into a web app so that everyone could use it. My first challenge was that this was a CLI tool, so I got to work. The Sherlock project makes about 400 requests to various site s to check if your username exists. This was going to be tough... I noticed they were using requests.FutureSession to multithread the result.
I decided to use a multithreaded Web-socket to continuously report out data to the frontend. After ALOT of trial and error I finally got something working. The Issue now though was that it wouldn't run in production due to a multiprocessing error: Daemonic processes are not allowed to have children.
Eventually I learned that you cant use the standard multiprocessing library for this kind of thing, you had to use billiard. Bam! It worked. I quickly hacked together a simple frontend, configured the web socket, and results were pouring in.
Turns out, the web-socket is considered a "long running request" as it makes 400 external requests. Maybe I could use celery to offload this process to a worker and queue it up. I started working on it and realized this was a little out of my skill range.
I then decided to take a look at the logs where I hosted the code and what do i find? CPU, Memory, and bandwidth all reaching a staggering 100% usage. I was using the free tier of Render that only allowed for one instance of my app...duh. I did some rework of my codebase and it started running a little faster.
Needless to say, I learned to take it slow, build tests for my code, and be patient with results.
What do you guys think? Any hard lessons learned in coding? What were your takeaways?
Here is also a link to the repo: https://github.com/bnkc/handlefinder
edit: I thought I should make my feedback less generic. In this case, by neat I mean: no fluff, no useless stuff on the landing page, straight to the point. I appreciate that.
since you mentioned the "trending" repositories on github, i wanted to give the https://github.com/nschloe/github-trends project a shout out.
it's not the same thing at all but also kind of the same thing, although it's actually, at the same time, kinda also not. alright, i'll get real. the most important thing regarding the linked project is the fact that it's got graphs. with lines. in various colors. lines that generally rise upwards, towards the right-hand side of your screen(s). lines that, more often than not, have slopes which vary in intensity and length. lines that are part of, if i may take this chance to kindly reiterate, graphs.
everybody loves graphs, right? i know i do. almost as much as i love search results linking to 37 minute youtube how-to videos for reminders/instructions on how to fix a 37 second problem with absolutely zero transcript in the video description's text area.
anyways. here's a great example of a proper how-to video. https://www.youtube.com/watch?v=py3QKC_OTvI
if you're having a bad day, ignore everything i've said, and just watch the 1st 6 seconds of the above how-to video. :)
A trip down memory lane.
Also got the same false positives with a couple aliases of mine that seem to be actually unique so far. I was a bit annoyed someone had already stole them on HN for a second.
Functionality like this, and more acutely, any kind of cross-service, cross-account stylometrics correlation or de-anonymizing service gives me great concerns for its abuse and the groups that it likely endangers (and the groups it likely empowers).
For sure, I would never have the time to build such a tool. So, yes, some bad actors may have the "ability" as you mention, but I don't think that is the best justification to make querying this tool that easy.
Archive of Our Own
Dribbble
Enjin
Fiverr
HackerNews
Quizlet
Smule
We Heart It
livelib
[ ! ] Checking username q349t8y on:
[ + ] Enjin: Enjin
[ + ] Fiverr: Fiverr
[ + ] HackerNews: HackerNews
[ + ] Instagram: Instagram
[ + ] Quizlet: Quizlet
[ + ] Smule: Smule
[ + ] livelib: livelib
[ X ] End Results: 7
[ + ] TikTok: TikTok
It would be interesting if you could toggle on the not-found list as part of the results. If you get a big positive list, but you'd like to find the sites where the username is not in use yet, there's no quick way to get that info. (Yes you could scrape both lists and use some simple command line scripts to get those results, but it's such a simple thing to add to this tool)
/s if it wasn't obvious.
Cool tool.
Personally I have a specific scheme I follow w my more private usernames. Basically the same username but depending on the website it has a predictable alteration to it so I get different usernames for different sites but don't have to remember them all
Then I have a different username (well, a couple) I use for sites where I don't mind having a public presence that can be tied back together
The following sites gave me errors with my username, and if I changed the username to something unlikely I got the same error. I take this to mean that there's no evidence that username exists on that system. (And, I'm dubious that I'd have signed up at these sites.) * quizlet.com * www.enjin.com * apps.runescape.com * smule.com * livelib.ru
And, fiverr.com's URL for my username just bounces to the homepage, as did any username. (Again, I wouldn't have signed up there.)
Other than that, very cool.
My username here is found on only 50, the other 49 not me.
It might be a useful tool to pre-check names before creating accounts for someone who wants a consistent name everywhere.
Also you have two requiments.txt's FYI.
Mind you, I've never fond these kind of things to be very effective. Bellingcat has a selection of similar tools and the results are always pretty unreliable:
https://docs.google.com/spreadsheets/d/18rtqh8EG2q1xBo2cLNyh...
A warning: an account could be suspended (since many still cannot let you remove it), and by logging in again you end up re-activating.
just be aware