Telefonsendung v2.0. Wiederbelebung der Legende im Telegrammbot

Bild


Dies ist der erste Teil einer zukünftigen Reihe darüber, wie ich eine einmalige Geschichte im Code wiederbelebt habe. In diesem Artikel werde ich die Implementierung der Registrierung in Bezug auf den Wohnsitz beschreiben.



Hintergrund



Zum ersten Mal las ich in einem Fiction-Buch über die Leningrader Telefonsendung. Dann fing ich an, im Internet nach Informationen darüber zu suchen. Ich war erstaunt und ermutigt darüber, wie der Fehler zu einem so einzigartigen sozio-technischen Phänomen führte. Tatsächlich ist dies der erste öffentliche Chat, ein soziales Netzwerk. Nennen Sie es wie Sie wollen, aber stellen Sie sich vor, was es in der UdSSR war! Für diese Zeit und das soziale Regime war es etwas Unvorstellbares.



Was ist das? Wenn möglich einfacher



Es gibt viele Artikel zu diesem Thema im Internet, einen , zwei , aber ich werde versuchen, es einfach zu erklären.



PBXs dieser Zeit hatten einen Fehler - beim Anrufen bestimmter nicht vorhandener Nummern endeten Personen in einem Gruppengespräch, dies wird auch als Audiokonferenz oder "Telefonsendung" bezeichnet. Für diese Zeit war es so cool und ungewöhnlich, dass das Thema ging. Ätherianer Die Menschen lernten sich kennen, trafen sich, redeten und begannen sogar Beziehungen, Familien in "Äther". Das ist Romantik!



Wie ist es ausgegangen



Natürlich gab es Versuche, die Kontrolle darüber zu übernehmen, aber diese Phänomene traten in der gesamten Union auf, und dies war problematisch. Aber die Zeit und die Modernisierung der automatischen Telefonvermittlung ließen den "Telefonie-Äther" in die Geschichte eingehen.



Ich möchte einige Ideen wiederbeleben



weil Ich bin auch ein Romantiker, arbeite mit PBX, VoIP und Programmierung in Python - ich habe beschlossen, die Idee im Code wiederzubeleben.



Das Ergebnis meiner Arbeit war eine Symbiose aus der Idee von "Telephone Ether", VoIP PBX Asterisk und Telegram.

Wenn Sie ein Gefühl dafür bekommen möchten, wie es funktioniert, verwenden Sie den Link .



Implementierung der Registrierung. Stadtbasis



Es ist möglich und sogar notwendig, solche Bots mit einer minimalen Datenmenge zu implementieren, die Benutzer bei der Registrierung eingeben. In meinem Bot haben beispielsweise etwa 20% der Benutzer den Registrierungsprozess nicht abgeschlossen. Ich fordere all diese Daten für zukünftige

Funktionen an, die beispielsweise implementiert werden, wenn mehr Benutzer vorhanden sind



  • Ausstrahlung nach Stadt, Land, Thema (bei der Registrierung wird der Benutzer gebeten, seinen Wohnort anzugeben)
  • Datierung nach Filtern (dazu wird der Benutzer bei der Registrierung aufgefordert, Geschlecht, Alter anzugeben)


Diese Daten im Bot können jederzeit über das Einstellungsmenü geändert werden, niemand stört sich daran, einen Wert anzugeben. Ich habe die Definition des Wohnsitzes bewusst nicht über die Schaltfläche Geolokalisierung senden implementiert, um die Benutzer nicht zu verwirren und ihre Anonymität zu wahren.



In diesem Artikel habe ich beschlossen, den schwierigsten Moment der Registrierung durchzuführen - die Auswahl eines Wohnortes.



Idealerweise benötigen Sie eine Datenbank aller Städte der Welt, um die Registrierung in Bezug auf die Angabe des Wohnorts durchführen zu können. Dies führt zu mehreren Problemen:



  1. Finden Sie eine solche Basis oder erstellen Sie sie selbst.



    Es ist nicht so einfach, eine solche Datenbank kostenlos zu finden, es ist noch schwieriger, sie zu erstellen.
  2. . .
  3. . .
  4. . 1,5 — 2 GB. , vps, ..


Und warum sollten Sie im Allgemeinen die Städte Simbabwes speichern, wenn Ihre Inhalte für die GUS-Länder bestimmt sind?

Alle Datenbanken, die ich nicht veröffentlicht habe, haben keinen der aufgeführten Punkte erfüllt.



Also fuhr ich mein Fahrrad und folgte meinem Hybridweg.



Ich habe beschlossen, die Basis selbst zu schaffen. Erstellen Sie außerdem einen Mechanismus zum weiteren Ausfüllen des automatischen Modus mit Daten, die sich nicht in der Datenbank befinden.



Ich las mehrere Artikel über das Telegrammpublikum und beschloss, eine aktuelle Datenbank in einem halbmanuellen Modus für die Länder Russland, Ukraine, Weißrussland, Usbekistan und die USA zu erstellen.



Wie habe ich das gemacht?



Für die angegebenen Länder habe ich Daten aus Wikipedia über Großstädte genommen, in einer CSV-Datei gespeichert und jeden Wert durch die wunderbare Geopy- Bibliothek geleitet... Die Ergebnisse wurden in einer SQLite-Datenbank gespeichert.

Ich teile die Basis mit der Community. Ich hoffe für jemanden wird es Zeit sparen.



Der Benutzer hat dank meiner Nutzung der Geopy-Bibliothek die Möglichkeit, den Wohnort fehlerhaft oder unter Verwendung der alten Namen der Siedlungen zu betreten. Ich übergebe die vom Benutzer eingegebenen Daten über Geopy und überprüfe dann, ob der entsprechende Datensatz in der Datenbank vorhanden ist. Wenn ein Datensatz in der Datenbank vorhanden ist, weise ich dem Benutzer eine Kennung der Abrechnung zu. Wenn nicht, schreibe ich eine neue Abrechnung in die Datenbank und weise die Kennung erneut dem Benutzer zu.



Daher speichere ich keine unnötigen Abrechnungen in der Datenbank.



In vereinfachter Form lautet der Algorithmus zur Auswahl eines Wohnortes durch einen Kunden bei der Registrierung wie folgt:







So stellte sich meine Hybridschaltung heraus.



Gleichzeitig belegt die Datenbank auf dem Hosting nur 512 KB und wird von den Benutzern selbst dynamisch gefüllt.



All Articles