コンソールで電話のバランスを確認する

私たちはそれぞれ携帯電話を持っていますが、誰かも持っていません。 そして、近親者の携帯電話があります。 お使いの携帯電話の残高を確認するのが難しくない場合、近くにない携帯電話では、これを行うのは困難です。 そのため、モバイル通信に関するすべての費用を1か所に集めて、時間内に補充し、運用の履歴を確認できるようにしたいと考えていました。 はい、もちろん、各携帯電話にカードを取り付けて自動再充電をオンにすることもできますが、個人的には当座貸越に飛び込んだり、携帯電話なしで滞在したりしたくはありません。これは統計収集の問題を解決しません。



数年前、Androidのスマートフォンでバランスロボットプログラムを使用しました。ウィジェットの形式でスマートフォンのバランスが表示されていましたが、スマートフォンを常に再フラッシュするのが好きで、毎回ウィジェットの設定を復元するのは非常に面倒でしたが、この情報も必要でした私だけでなく利用できました。 そして、これらすべての情報をWebページで収集する必要があると判断しました。

私はコンソールでの作業が大好きで、2つのプログラムを作成する必要があると考えました。1つは電話の残高を引き出し、もう1つはデータベースの統計を収集し、レポートでhtmlページを生成します。



正直なところ、これをプログラムと呼ぶことは困難です。実際、curl、sed、awkを使用してオペレーターのWebページにリクエストを送信し、受け取った回答のバランスを解析するスクリプトにすぎません。 スクリプトの最初のバージョンは残高のみを引き出しました。現在、スクリプトは大幅に変更されており、たとえばパスワードが正しく入力されなかった場合にオペレーターページを返すエラーを処理できます。 また、スクリプトは関数に分割され、各演算子には独自の関数と、httpサーバーの応答を処理するためのユーティリティ関数があります。 現時点では、スクリプトはメガホン、MTS、ビーライン、MGTS、Onlime、およびQiwiのバランスを取ることができます。 githubのソースコードはpbalです。 使用するには、自分でクローンを作成し、pbal.shファイルを実行可能にし、オペレータ、電話、パスワードのパラメーターで実行する必要があります。



$ ./pbal.sh mts 9164442211 123456 123.21
      
      





pbal.sh



スクリプト内では、作業タイムアウトとサーバーへのアクセス試行回数が提供されますが、これらはスクリプト起動パラメーターによってオーバーライドできます。 オプション-vがあり、balanceにはオペレーター名とログイン名が表示されるほか、異なるオペレーターで連続してスクリプトを数回実行すると便利です。 また、エラーの場合に何も表示されない-sオプション。 パスワードを入力できない場合、スクリプトは実行時にそれを要求します。



そのようなスクリプトの準備ができた後、統計の収集はすでに非常に簡単でした。 1時間に1回cbalを実行するスクリプトを作成し、pbal.shを実行して、受信した情報をデータベースに書き込み、静的なHTMLページも生成します。 pbalweb.shスクリプトは、githubのWebディレクトリにあります。 まったく使用する必要はありません。独自に作成できます。たとえば、rrdtoolを使用して受信した情報を保存します。 しかし、興味深い場合、pbalweb.shスクリプトはdb変数で指定されたパスに沿ってsqliteデータベースを作成し、「#create some operator」セクションのopタイプをオペレータータイプ、ログイン、およびパスワードに書き込みます(このセクションは、必要に応じてデータベースの作成時に1回実行されます新しい演算子を追加するには、手動でINSERTする必要があります)。 さらに、データベースが存在する場合、opテーブルの各レコードに対してpbal.shが起動され、受信したデータがbalテーブルに書き込まれます。 その後、webdir変数で指定されたディレクトリに静的なHTMLページが生成されます。 これらのページは私のWebサーバー上で生成され、どこにいても自分の携帯電話の残高にアクセスできるようになり、費用の履歴も表示されます。



PS 01/01/2012追加キエフスター



All Articles