電話放送v2.0。電報ボットの伝説の復活

画像


これは、私がかつてのコードの歴史をどのように復活させたかについての次のシリーズの最初のものです。この記事では、居住の観点から登録の実装について説明します。



バックグラウンド



レニングラードの電話放送について、フィクションの本で初めて読んだ。それから私はネットでこれについての情報を探し始めました。私は、バグがこのような独特の社会技術的現象にどのようにつながったかに驚き、勇気づけられました。実際、これは最初のパブリックチャット、ソーシャルネットワークであり、あなたが望むものと呼んでいますが、USSRで何があったか想像してみてください!その時と社会体制にとって、それは想像を絶するものでした。



それは何ですか?可能であれば、より簡単



そこネット上でこのトピックに関する多くの記事、ある12は、私は単にそれを説明しようとします。当時の



PBXにはバグがありました。存在しない特定の番号に電話をかけると、人々はグループで会話することになりました。これは、音声会議または「電話放送」とも呼ばれます。その間、それはとてもクールで珍しいので、話題は行きました。Etherians人々は、「Ether」でお互いを知り、出会い、話し、さらには関係を始めました。これはロマンスです!



どのように終わりましたか



もちろん、これを制御する試みがありましたが、これらの現象は連合全体で発生し、これは問題でした。しかし、自動電話交換の時代と近代化により、「TelephonyEther」は歴史に名を残しました。



いくつかのアイデアを復活させたい



なぜなら 私はロマンチックで、 PBX、VoIP、およびpythonでのプログラミングに取り組んでいます。コードでアイデアを復活させることにしました。



私の仕事の結果は、「Telephone Ether」、VoIP PBX Asterisk、Telegramのアイデアの共生でした。

それがどのように機能するかを知ることに興味がある場合は、リンクを使用してください



登録の実装。市の拠点



ユーザーが登録時に入力する最小限のデータでこのようなボットを実装することは可能であり、必要ですらあります。たとえば、私のボットでは、ユーザーの約20%が登録プロセスを完了していません。

たとえば、より多くのユーザーがいる場合に実装される将来の機能のために、このすべてのデータを要求します



  • 都市、国、トピック別の放送(このため、登録時に、ユーザーは居住地を指定するよう求められます)
  • フィルタによるデート(このため、登録時に、ユーザーは性別、年齢を指定するように求められます)


ボット内のこのデータは、設定メニューからいつでも変更できます。値を指定する必要はありません。ユーザーを混乱させたり、匿名性を維持したりしないように、ボタン送信ジオロケーションを介して居住地の定義を意図的に実装しませんでした。



この記事では、登録実施の最も困難な瞬間、つまり居住地の選択について説明することにしました。



理想的には、居住地を示すという観点から登録を実装するには、世界のすべての都市のデータベースが必要です。これには、いくつかの問題があります。



  1. そのようなベースを見つけるか、自分で作成してください。



    このようなデータベースを無料で見つけるのはそれほど簡単ではなく、作成するのはさらに困難です。
  2. . .
  3. . .
  4. . 1,5 — 2 GB. , vps, ..


そして、一般的に、コンテンツがCIS諸国を対象としているのに、なぜジンバブエの都市を保存するのでしょうか。

私が公開しなかったすべてのデータベースは、リストされたポイントのいずれも満たしていませんでした。



それで私は自転車乗り、ハイブリッドパスをたどりました。



自分でベースを作ることにしました。また、データベースにないデータを自動モードでさらに入力するためのメカニズムを作成します。



私は電報の聴衆に関するいくつかの記事を読み、ロシア、ウクライナ、ベラルーシ、ウズベキスタン、および米国の国々のために、半手動モードで実際のデータベースを作成することにしました。



どうやってやったの?



示された国について、私は大都市に関するWikipediaからデータを取得し、それをcsvファイルに保存して、それぞれの値をすばらしいgeopyライブラリに渡しました。..。結果はSQLiteデータベースに保存されました。

私はその基盤をコミュニティと共有しています。誰かの時間を節約できることを願っています。



私がgeopyライブラリを使用したおかげで、ユーザーはエラーで居住地を入力したり、集落の古い名前を使用したりする機会があります。ユーザーが入力したデータをgeopyに渡し、データベースに対応するレコードが存在するかどうかを確認します。データベースにレコードが存在する場合は、ユーザーに決済のIDを割り当てます。存在しない場合は、データベースに新しい決済を書き込み、再度、そのIDをユーザーに割り当てます。



したがって、私はデータベースに不要な決済の束を保存しません。



簡略化した形式では、登録時にクライアントが居住地を選択するためのアルゴリズムは次のとおりです。







これが私のハイブリッド回路の結果です。



同時に、ホスティングでは、データベースは512 KBしか占有せず、ユーザー自身によって動的に入力されます。



All Articles