2
Instalasi dan Dependensi
GhostTrack hanyalah satu skrip Python, GhostTR.py, yang bergantung pada dua pustaka pihak ketiga. Karena itu pemasangan hanya butuh git, python3, dan dua paket dari PyPI. Halaman ini memandu urutannya di Linux dan Termux, lalu menunjukkan titik saat menu benar-benar tampil. README menandai rilis yang dipakai di sini sebagai Version 2.2 (README.md:6-71).
Prasyarat sistem
Pemasangan git dan python3 berbeda per platform, tetapi hanya berbeda di nama manajer paket. Tidak ada langkah lain yang dijalankan sebelum clone.
| Platform | Perintah | Sumber |
|---|---|---|
| Linux (deb) | sudo apt-get install git lalu sudo apt-get install python3 | README.md:9-132 |
| Termux | pkg install git lalu pkg install python3 | README.md:15-193 |
Kedua blok perintah itu identik dalam hal hasil: git untuk mengambil repository dan python3 untuk menjalankan skrip.
Dependensi Python
Berkas requirements.txt hanya berisi dua baris, requests dan phonenumbers, tanpa batasan versi (requirements.txt:1-24). Keduanya diimpor di bagian atas GhostTR.py bersama modul standar seperti json, time, dan os (GhostTR.py:9-155). Karena import berada di level atas modul, kedua paket wajib sudah terpasang sebelum skrip dijalankan.
| Paket | Cara masuk ke kode | Dipakai pertama kali di |
|---|---|---|
requests | import requests (GhostTR.py:9-155) | IP_Track memanggil requests.get(f"http://ipwho.is/{ip}") (GhostTR.py:456) |
requests | import requests (GhostTR.py:9-155) | TrackLu memanggil requests.get(url) per social media (GhostTR.py:1547) |
requests | import requests (GhostTR.py:9-155) | showIP memanggil requests.get('https://api.ipify.org/') (GhostTR.py:1718) |
phonenumbers | import phonenumbers dan from phonenumbers import carrier, geocoder, timezone (GhostTR.py:9-155) | phoneGW memanggil phonenumbers.parse(User_phone, default_region) (GhostTR.py:869) |
Tidak ada virtualenv, pipx, atau pengunci versi di repository. Pemasangan memakai pip3 global milik interpreter yang sama dengan yang nanti menjalankan skrip.
⚠️
requirements.txttidak memuat versi paket. Setiap pemasangan mengambil rilis terbaru dari PyPI, sehingga hasilpip3 install -r requirements.txtbisa berbeda antar waktu. Jalankan perintah itu dari akar repository agar berkas rujukannya ditemukan.
Alur dari clone sampai menu tampil
Urutan perintah resmi ada di README, yaitu git clone, cd GhostTrack, pip3 install -r requirements.txt, lalu python3 GhostTR.py (README.md:21-2710). Sesudah itu barulah menu opsi muncul.
graph TD
SYS["sudo apt-get install git / python3<br/>pkg install git / python3"] --> CLONE["git clone https://github.com/HunxByts/GhostTrack.git"]
CLONE --> CD["cd GhostTrack"]
CD --> PIP["pip3 install -r requirements.txt"]
PIP --> DEPS["requests + phonenumbers terpasang"]
DEPS --> RUN["python3 GhostTR.py"]
RUN --> MAIN["if __name__ == '__main__': main()"]
MAIN --> BANNER["option(): clear() dan banner ke stderr"]
BANNER --> MENU["option_text(): daftar opsi tampil"]
MENU --> INPUT["int(input('Select Option'))"]
INPUT --> LOOP["execute_option(opt)"]
style SYS fill:#f59e0b,color:#000
style PIP fill:#f59e0b,color:#000
style DEPS fill:#336791,color:#fff
style MAIN fill:#8b5cf6,color:#fff
style MENU fill:#2d7d46,color:#fff
%% fig: Alur pemasangan GhostTrack
%% desc: Perintah sistem dan pip menyiapkan dependensi, lalu GhostTR.py memanggil main() yang menggambar banner dan menampilkan menu opsi.Skrip tidak punya setup.py atau pyproject.toml; berkas yang dieksekusi langsung adalah GhostTR.py. Entri programnya adalah blok if __name__ == '__main__': yang membungkus main() dengan penanganan KeyboardInterrupt (GhostTR.py:309-31111).
Saat main() berjalan, ia memanggil clear() dan option() sebelum meminta masukan (GhostTR.py:296-30212). option() sendiri membersihkan layar lewat clear() lalu menulis banner ASCII ke stderr dengan stderr.writelines (GhostTR.py:259-26213). Artinya banner dan daftar menu tidak lewat stdout, sehingga urutan tampil di terminal bergantung pada buffer kedua stream tersebut.
Setelah menu tampil
Bila menu sudah terbaca, instalasi selesai dan pekerjaan berikutnya adalah memilih nomor opsi. Validasi nomor, Press enter to continue, dan pengulangan menu dibahas di Validasi Opsi dan Loop Menu, sedangkan asal-usul banner dan dekorator is_option dibahas di Banner dan Dekorator is_option. Penjelasan tiap menu ada di IP Tracker, Show Your IP, Phone Number Tracker, dan Username Tracker.
Bila salah satu paket tidak terpasang, kegagalan terjadi pada baris import di awal berkas, bukan pada saat menu dipilih (GhostTR.py:9-155). Perilaku error dan interupsi setelah program berjalan dijelaskan di Penanganan Error dan Interupsi.