GetIDsBot is a chatbot for the Telegram Messaging Plattform which main purpose is to extract useful informations from messages that are normally hidden and to enhance them. This means...
- converting file_sizes and durations to human readable formats.
- interpolating account creation dates from the users chat_id.
- displaying it all tree(1)'ish'.
Option A: Use the version we host at https://t.me/GetIDsBot
Option B: Host one yourself. You will need a bot token from the BotFather and a server with nodejs and npm installed to run it. Yes, bots are programs and they must run on some computer.
Most people want to use this, so here is a bit of explanation for all of you: Telegram gives each chat (that is users, bots, groups and channels) a globally unique numerical id. These id numbers aren't given out sequentially, so two users signing up at the exact same time will probably have a difference of up to a few millions. Two possible reasons are:
- Sharding: Telegram registrations won't all happen on the same server. To avoid giving out the same id twice, all registration servers reserve a range of ids from the central registry and periodically fetch new ones.
- Obfuscation: You should not be able to guess the signup date from one's id.
This is still speculation, and we don't know for certain, but averaged out over a year or so, the IDs do still increase. There are some exceptions, but guessing is still possible.
We collected a bunch of ids for which we knew the rough creation dates, anonymized the dates and used some dark magic called "maths" to estimate a creation date.
Very whacky and alpha quality. But it somehow works, because it is js.
The original GetIDsBot was written in PHP. After I (Jonas) realized that PHP is horrible for anything other than easy deployment and basic templating, I got the urge to rewrite it in a better language. As you might have already seen, I failed. It is written in javascript. I hate javascript. But my Rust and Elixir skills are just mediocre at the time of writing, so here we go:
- Fork this repo and clone it from your account, so you can crate Pull requests.
- If you want to work on a feature, consider branching. I would consider
feature-xy
orfix-xy
a decent naming sheme. - Run
npm install
in this repo. - Run the bloody thing with
node index.js
- Please use propper commit messages like
adds italian translation
orfixes rounding error
. If you are not a git master like me, sublime merge might save your day.
The following people sinned and wrote javascript for this project or did not stop the others from doing so:
- Jonas (Code)
- YouTwitFace (Code)
- Jan (Did not complain)
MIT for this project, some BSD and Apache License, Version 2.0 for it's dependencies. Copyright 2019 Jonas Zohren & other contributors.