
Ini adalah seri pertama di masa depan tentang bagaimana saya menghidupkan kembali sejarah kode yang pernah hilang. Dalam artikel ini, saya akan menjelaskan implementasi pendaftaran dalam hal tempat tinggal.
Latar Belakang
Untuk pertama kalinya saya membaca tentang siaran telepon Leningrad di buku fiksi. Kemudian saya mulai mencari informasi tentang ini di internet. Saya kagum dan terdorong oleh bagaimana bug tersebut menyebabkan fenomena sosio-teknis yang unik. Faktanya, ini adalah obrolan publik pertama, jejaring sosial, sebut saja apa yang Anda inginkan, tetapi bayangkan saja apa itu di Uni Soviet! Untuk saat itu dan rezim sosial, itu adalah sesuatu yang tidak terbayangkan.
Apa itu? Jika memungkinkan, lebih sederhana
Ada banyak artikel tentang topik ini di internet, satu , dua , tetapi saya akan mencoba menjelaskannya secara sederhana.
PBX pada masa itu memiliki bug - ketika memanggil nomor tertentu yang tidak ada, orang-orang berakhir dalam percakapan grup, ini juga disebut konferensi audio atau "Siaran telepon". Untuk saat itu, topiknya sangat keren dan tidak biasa.
Bagaimana akhirnya
Tentu saja, ada upaya untuk mengendalikan ini, tetapi fenomena ini muncul di seluruh Union dan ini bermasalah. Tetapi waktu dan modernisasi pertukaran telepon otomatis membuat "Telephony Ether" turun dalam sejarah.
Saya ingin menghidupkan kembali beberapa ide
Karena Saya juga seorang yang
Hasil dari pekerjaan saya adalah simbiosis dari ide "Telephone Ether", VoIP PBX Asterisk dan Telegram.
Jika Anda tertarik untuk mengetahui cara kerjanya, gunakan tautan .
Pelaksanaan pendaftaran. Pangkalan kota
Bot tersebut mungkin dan bahkan perlu diterapkan dengan jumlah data minimum yang dimasukkan pengguna selama pendaftaran. Misalnya, di bot saya, sekitar 20% pengguna tidak menyelesaikan proses pendaftaran. Saya meminta semua data ini untuk
fitur masa depan yang akan diterapkan jika ada lebih banyak pengguna, misalnya
- Mengudara menurut kota, negara, topik (untuk ini, saat mendaftar, pengguna diminta untuk menunjukkan tempat tinggalnya)
- Kencan dengan filter (untuk ini, saat mendaftar, pengguna diminta untuk menunjukkan jenis kelamin, usia)
Data di bot ini dapat diubah kapan saja melalui menu pengaturan, tidak ada yang mau menentukan nilai apa pun. Saya sengaja tidak menerapkan penentuan tempat tinggal melalui tombol kirim geolokasi agar tidak mempermalukan pengguna dan menjaga anonimitas mereka.
Pada artikel ini, saya memutuskan untuk membagikan momen tersulit dalam pelaksanaan pendaftaran - memilih tempat tinggal.
Idealnya, untuk melaksanakan registrasi dalam hal menunjukkan tempat tinggal, Anda perlu memiliki database dari semua kota di dunia, yang menyiratkan beberapa masalah:
- Temukan basis seperti itu atau buat sendiri.
Tidak mudah untuk menemukan database seperti itu secara gratis, bahkan lebih sulit untuk membuatnya. - . .
- . .
- . 1,5 — 2 GB. , vps, ..
Dan secara umum, mengapa menyimpan kota-kota Zimbabwe jika konten Anda ditujukan untuk negara-negara CIS?
Semua database yang saya tidak go public tidak memenuhi poin yang terdaftar.
Jadi saya
Saya memutuskan untuk membuat basis sendiri. Selain itu, buatlah mekanisme pengisian lebih lanjut dalam mode otomatis dengan data yang tidak ada di database.
Saya membaca beberapa artikel tentang audiens telegram dan memutuskan untuk membuat database aktual dalam mode semi-manual untuk negara-negara Rusia, Ukraina, Belarusia, Uzbekistan, dan Amerika Serikat.
Bagaimana saya melakukannya?
Untuk negara-negara yang ditunjukkan, saya mengambil data dari Wikipedia tentang kota-kota besar, menyimpannya ke file csv dan meneruskan setiap nilai melalui perpustakaan geopy yang indah... Hasilnya disimpan dalam database SQLite.
Saya berbagi basis dengan komunitas. Saya berharap untuk seseorang itu akan menghemat waktu.
Pengguna memiliki kesempatan untuk memasuki tempat tinggal dengan kesalahan atau menggunakan nama lama permukiman berkat saya menggunakan perpustakaan geopy. Saya meneruskan data yang dimasukkan oleh pengguna melalui geopy, lalu memeriksa keberadaan catatan yang sesuai di database. Jika catatan ada di database, saya menetapkan pengguna sebuah pengenal penyelesaian; jika tidak, saya menulis penyelesaian baru ke database dan, sekali lagi, menetapkan pengenalnya kepada pengguna.
Jadi, saya tidak menyimpan banyak pemukiman yang tidak perlu di database.
Dalam bentuk yang disederhanakan, algoritme untuk memilih tempat tinggal oleh klien saat pendaftaran adalah sebagai berikut:
Beginilah hasil sirkuit hybrid saya.
Pada saat yang sama, di hosting, database hanya menempati 512 KB dan secara dinamis diisi oleh pengguna itu sendiri.