AI prompts
base on An OSINT Geolocalization tool for Telegram that find nearby users and groups 📡🌍🔍 # **Geogramint - OSINT Geolocalization tool for Telegram**
<p align="center">
<img src="https://github.com/Alb-310/Geogramint/blob/master/appfiles/Geogramint.png" width="300"/>
</p>
<p align="center"> <img src="https://img.shields.io/badge/version-1.4-orange" /> <img src="https://img.shields.io/badge/PYTHON-03b1fc?style=for-the-badge&logo=python"/> <a href="https://github.com/Alb-310"> <img alt="GitHub" src="https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white"/><a/> <a href="https://twitter.com/Alb_310"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/by-alb310.svg"/><a/> <img src="https://img.shields.io/badge/License-GPLv3-blue.svg"/>
<p align="center"> <a href="https://projetfox.com/"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/fox%20badge.png" width="200"/> <a/>
## The End : 06/09/2024
Pavel Durov, the founder and CEO of Telegram, announced the discontinuation of the "People Nearby" feature. The feature has been non-functional for a week.
<p align="center"> <img src="https://github.com/user-attachments/assets/6315894f-7e31-4599-83e9-2e0f70f86ee5" width="400"/>
The removal of this feature means that Geogramint and other OSINT tools that utilize the API no longer work. As of today, this GitHub repository will be archived.
The popularity of Geogramint began with [this Projet FOX article](https://projetfox.com/en/2022/08/geogramint-an-osint-geolocalization-tool-for-telegram/), where the tool's capabilities were demonstrated in action. It was also showcased at the International Cybersecurity Forum (FIC) in Lille, France, in 2023, which led to this [Projet FOX article](https://projetfox.com/en/2023/07/osint-russian-military-presence-in-belarus/).
Geogramint was used by many journalists, investigators, OSINT practitioners, and others. I personally want to thank everyone who used the tool, and I hope Geogramint was helpful in your investigations!
<p align="right">
<b>- Alb310
</b></p>
<p align="center">
<a href="https://twitter.com/Alb_310">Twitter @Alb_310</a> |
<a href="https://projetfox.com/">Projet FOX's Website</a> |
<a href="https://twitter.com/ProjetFOX">Twitter @ProjetFOX</a> |
<a href="https://discord.com/invite/nxffsWBNRK">Projet FOX's Discord</a> |
<a href="https://www.linkedin.com/company/projetfox">Projet FOX's LinkedIn</a>
</p>
## **About**
Geogramint is an OSINT tool that uses Telegram's API to find nearby users and groups. Inspired by [Tejado's Telegram Nearby Map](https://github.com/tejado/telegram-nearby-map), which is no longer maintained, it aims to provide a more user-friendly alternative.
Geogramint only finds Telegram users and groups which have activated the nearby feature. Per default it is deactivated.
The tool is fully supported on Windows and partially supported on Mac OS and Linux distributions.
<p align="center"> <img src="https://github.com/user-attachments/assets/9b06b204-b23e-4014-a84c-e4188e4d38cb" />
## 🛠️ Installation
**Requirements:** [Python 3.9, 3.10 or 3.11](https://www.python.org/downloads/release/python-3112/)<br>
### On Windows [![Windows](https://img.shields.io/badge/Windows-03b1fc?style=for-the-badge&logo=windows)](https://svgshare.com/i/ZhY.svg)
+ #### With the installer: Click [here!](https://github.com/Alb-310/Geogramint/releases)
+ #### With Github:
```bash
git clone https://github.com/Alb-310/Geogramint.git
cd Geogramint/
pip3 install -r requirements.txt
python3 geogramint.py # for GUI mode
python3 geogramint.py --help # for CLI mode
```
Or depending on your installation :
```bash
git clone https://github.com/Alb-310/Geogramint.git
cd Geogramint/
pip install -r requirements.txt
python geogramint.py # for GUI mode
python geogramint.py --help # for CLI mode
```
### On Mac OS ![macOS](https://img.shields.io/badge/Mac_OS-abbfc7?style=for-the-badge&logo=apple) and Linux ![Linux](https://img.shields.io/badge/Linux-ffffff?style=for-the-badge&logo=linux)
+ #### With Github:
```bash
git clone https://github.com/Alb-310/Geogramint.git
cd Geogramint/
pip3 install -r requirements.txt
python3 geogramint.py # for GUI mode
python3 geogramint.py --help # for CLI mode
```
Or depending on your installation :
```bash
git clone https://github.com/Alb-310/Geogramint.git
cd Geogramint/
pip install -r requirements.txt
python geogramint.py # for GUI mode
python geogramint.py --help # for CLI mode
```
More details in the [Wiki](https://github.com/Alb-310/Geogramint/wiki/Installation-Guide).
## 📡 Example: GUI
1. Start by creating an API key for your Telegram account [here](https://my.telegram.org). You will also need to put a profile picture on your account and, in your `Privacy and Security` settings, enable the profile picture for everyone.
<p align="center"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/privacy_settings.jpg" width="300"/>
2. Launch **Geogramint**
3. In the settings, write your information (api_id, api_hash and phone number), report preference and then `save`
<p align="center"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/Geogramint_settings_1.png" width="500"/> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/Geogramint_settings_2.png" width="500"/>
4. Choose the location where you want to search, either by moving around the map or by using the search feature with coordinates in `lat, lon` format
<p align="center"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/Geogramint_search.png" width="700"/>
5. Telegram will send you a verification code, write it in the pop-up window (+ your two-step verification password if you have one)
<p align="center"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/Geogramint_code.png" width="700"/>
6. Then click `Start Search`
7. All results will be displayed following:
+ green for 500m
+ yellow for 1000m
+ orange for 2000m
+ red for >3000m
(NB: results can also be found in `Geogramint/cache_telegram/` in `json` and `csv` format + profiles pictures)
<p align="center"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/Geogramint_results.png" width="700"/>
8. `Reset` will clear the results and erase the `cache_telegram`
More details in the [Wiki](https://github.com/Alb-310/Geogramint/wiki/Demonstration:-GUI).
## 📡 Example: CLI
1. Start by creating an API key for your Telegram account [here](https://my.telegram.org). You will also need to put a profile picture on your account and, in your `Privacy and Security` settings, enable the profile picture for everyone.
<p align="center"> <img src="https://github.com/Alb-310/Geogramint/blob/master/.github/privacy_settings.jpg" width="300"/>
2. Launch **Geogramint**
![image](https://user-images.githubusercontent.com/52386954/210659094-506e3018-6784-4602-bf4e-e446534f6f15.png)
3. Start with the config, with the command `set-config` set your information (api_id, api_hash and phone number)
![image](https://user-images.githubusercontent.com/52386954/210659472-dbb1804e-dd8a-468e-b0a1-bfcd77652113.png)
4. Start the search feature by using coordinates in `lat lon` format with the command `start-scan` :
![image](https://user-images.githubusercontent.com/52386954/210659762-4fffc2ac-957d-4377-9615-d339dcb17aef.png)
<p align="center"> <img src="https://user-images.githubusercontent.com/52386954/210661716-9a3db8c7-4627-447e-b18b-dcf2c8c54a36.png" width="500"/>
<p align="center"> ⬇ </p>
<p align="center"> <img src="https://user-images.githubusercontent.com/52386954/210661742-7e7a6242-5915-4b0e-a52d-38d4dd779eff.png" width="500"/>
5. All results will be displayed following:
+ green for 500m
+ yellow for 1000m
+ orange for 2000m
+ red for >3000m
(NB: results can be exported depending options used with `start-scan`, by default profile pictures and results in `json` format are present in `Geogramint/cache_telegram/`)
6. `reset-scan` will clear `cache_telegram`
More details in the [Wiki](https://github.com/Alb-310/Geogramint/wiki/Demonstration:-CLI).
## 📖 Wiki
Remember to check the [Wiki](https://github.com/Alb-310/Geogramint/wiki) before posting an issue or asking a question.
## 📝 License
[GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.fr.html)
## 🙏 Thanks to:
+ My teammates at Projet FOX
+ [sergiombd](https://github.com/sergiombd)
", Assign "at most 3 tags" to the expected json: {"id":"5060","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"