Diffusion téléphonique v2.0. La renaissance de la légende dans le bot télégramme

image


C'est le premier d'une prochaine série sur la façon dont j'ai relancé une histoire autrefois disparue dans le code. Dans cet article, je décrirai la mise en œuvre de l'enregistrement en termes de résidence.



Contexte



Pour la première fois, j'ai lu sur l'émission téléphonique de Leningrad dans un livre de fiction. Ensuite, j'ai commencé à chercher des informations à ce sujet sur le net. J'ai été étonné et encouragé par la façon dont le bogue a conduit à un phénomène socio-technique si unique. En fait, c'est le premier chat public, un réseau social, appelez-le comme vous voulez, mais imaginez ce que c'était en URSS! Pour cette époque et le régime social, c'était quelque chose d'inimaginable.



Ce que c'est? Si possible, plus simple



Il existe de nombreux articles sur ce sujet sur le net, un , deux , mais je vais essayer de l'expliquer simplement.



Les PBX de cette époque avaient un bug - lors de l'appel de certains numéros inexistants, les gens se retrouvaient dans une conversation de groupe, cela s'appelle également une conférence audio ou "diffusion téléphonique". Pour cette époque, c'était tellement cool et inhabituel que le sujet est allé. Etherians Les gens ont appris à se connaître, se sont rencontrés, ont parlé et même commencé des relations, des familles dans "Ether". C'est de la romance!



Comment ça s'est terminé



Bien sûr, il y a eu des tentatives pour en prendre le contrôle, mais ces phénomènes se sont produits dans toute l'Union et cela a posé problème. Mais l'époque et la modernisation du central téléphonique automatique ont fait entrer le «Telephony Ether» dans l'histoire.



Je veux faire revivre quelques idées



Parce que Je suis aussi un romantique, travaillant avec PBX, VoIP et programmation en python - j'ai décidé de relancer l'idée dans le code.



Le résultat de mon travail a été une symbiose de l'idée de «Telephone Ether», VoIP PBX Asterisk et Telegram.

Si vous souhaitez avoir une idée de son fonctionnement, utilisez le lien .



Mise en Ĺ“uvre de l'enregistrement. Base de la ville



Il est possible et même nécessaire de mettre en œuvre de tels robots avec un minimum de données que les utilisateurs saisissent lors de l'inscription. Par exemple, dans mon bot, environ 20% des utilisateurs n'ont pas terminé le processus d'inscription. Je demande toutes ces données pour les

fonctionnalités futures qui seront implémentées s'il y a plus d'utilisateurs, par exemple



  • Airs par ville, pays, thème (pour cela, lors de son inscription, l'utilisateur est invitĂ© Ă  indiquer son lieu de rĂ©sidence)
  • Rencontres par filtres (pour cela, lors de son inscription, l'utilisateur est invitĂ© Ă  indiquer son sexe, son âge)


Ces données dans le bot peuvent être modifiées à tout moment via le menu des paramètres, personne ne se soucie de spécifier une valeur. Je n'ai délibérément pas mis en œuvre la définition de résidence via le bouton envoyer géolocalisation afin de ne pas confondre les utilisateurs et préserver leur anonymat.



Dans cet article, j'ai décidé de partager le moment le plus difficile de la mise en œuvre de l'inscription: choisir un lieu de résidence.



Idéalement, pour mettre en œuvre l'inscription en termes d'indication du lieu de résidence, il faut disposer d'une base de données de toutes les villes du monde, ce qui implique la présence de plusieurs problèmes:



  1. Trouvez une telle base ou créez-la vous-même.



    Il n'est pas si facile de trouver une telle base de données gratuitement, c'est encore plus difficile à créer.
  2. . .
  3. . .
  4. . 1,5 — 2 GB. , vps, ..


Et en général, pourquoi stocker les villes du Zimbabwe si votre contenu est destiné aux pays de la CEI?

Toutes les bases de données que je n'ai pas rendues publiques ne satisfaisaient à aucun des points énumérés.



J'ai donc roulé sur mon vélo et suivi ma voie hybride.



J'ai décidé de créer la base moi-même. De plus, créez un mécanisme pour compléter le mode automatique avec des données qui ne sont pas dans la base de données.



J'ai lu plusieurs articles sur l'audience des télégrammes et j'ai décidé de créer une véritable base de données en mode semi-manuel pour les pays de la Russie, de l'Ukraine, de la Biélorussie, de l'Ouzbékistan et des États-Unis.



Comment ai-je procédé?



Pour les pays indiqués, j'ai pris des données de Wikipédia sur les grandes villes, je les ai enregistrées dans un fichier csv et j'ai transmis chaque valeur à la merveilleuse bibliothèque geopy... Les résultats ont été enregistrés dans une base de données SQLite.

Je partage la base avec la communauté. J'espère que pour quelqu'un cela fera gagner du temps.



L'utilisateur a la possibilité de saisir le lieu de résidence avec des erreurs ou en utilisant les anciens noms des colonies grâce à mon utilisation de la bibliothèque geopy. Je passe les données saisies par l'utilisateur via geopy, puis je vérifie la présence de l'enregistrement correspondant dans la base de données. Si un enregistrement existe dans la base de données, j'attribue à l'utilisateur un identifiant du règlement, sinon, j'écris un nouveau règlement dans la base de données et j'attribue à nouveau son identifiant à l'utilisateur.



Ainsi, je ne stocke pas un tas de règlements inutiles dans la base de données.



Sous une forme simplifiée, l'algorithme de choix d'un lieu de résidence par un client lors de l'inscription est le suivant:







C'est ainsi que mon circuit hybride s'est avéré.



Dans le même temps, sur l'hébergement, la base de données n'occupe que 512 Ko et est remplie dynamiquement par les utilisateurs eux-mêmes.



All Articles