夏には、VKontakteから「ストリーミングAPIコンテスト」というテーマでコンテストが開催されました。 参加することにしましたが、ストリーミングAPIのすべての機能を実装するための通常のアイデアが見つからなかったため、指定されたルールに従ってエントリを表示することにしました。
ルールの詳細をご覧ください。ルールはキーワードのセットであり、オブジェクトのテキストにキーワードが存在するということは、オブジェクトがストリームに分類されることを意味します。 二重引用符なしで単語が示されている場合、検索は簡略化されます(すべての単語形式は大文字と小文字が区別されません)。 正確な出現(大文字と小文字の区別、単語形式など)で検索するには、各単語を二重引用符で囲む必要があります。
詳細は
こちら 。
最初はすべてをNode.Jsに実装することを考えていましたが、VPSサーバーで設定する時間を無駄にしないために、PHPを使用することにしました。
プロジェクトのロジック全体をクライアントに提供することにしましたが、サーバー上ではVK APIとアナライザーを操作するための小さな設定のみです。
興味深いことから始めましょう-主なもの:
上記のコードから明らかになったように、サイトにはすべてのユーザーに対して1つのセッションがあります。 誰かが座ってルールを解析している間、他の人はサイトにアクセスできません。
マイナスがあります1人がルールを作成してニュースを受信する間、もう1人はこれらのルールを確認して削除できます。 コンテストの後、これに遅れて気づいたので、修正しませんでした。
次に、メイン関数
パーサー(event.data)を
分析します。 テンプレートが大好きです。テンプレートは管理が簡単で、操作も簡単です。
たくさんのコード var parser = function(json) { var response = JSON.parse(json); console.log(response); var code = response.code; console.log(code); if (code != 100) return; var tpl_block = document.getElementById("tpl"); var tpl = tpl_block.innerHTML; var main_tpl = tpl_block.innerHTML; var content = document.getElementById("main").innerHTML; var main = document.getElementById("main"); var time = response.event['creation_time']; var date = new Date(time); var type; var cnt = ge("cnt"); var cnt_value = +cnt.innerHTML; cnt.innerHTML = cnt_value + 1; var creation_time = timestampToDate(response.event['creation_time'] * 1000); if (response.event['event_type'] == "post") { type = ""; count['post'] = ++count['post']; } else if (response.event['event_type'] == "comment") { type = ""; count['comment'] = ++count['comment']; } else if (response.event['event_type'] == "share") { type = ""; count['share'] = ++count['share']; } var photo_context; if (response.event.attachments) {
テンプレート自体:
<section id="tpl" class="none"> <div class="template-container block-md_" data-type="{type}" data-num="{cnt}"> <div class="template-header"> <div class="template-title" id="tpl_title"><b>{event_type}</b></div> </div> <div class="template-body"> <div data-body-text="data-body-text-{cnt}">{text}</div> {photo} </div> <div class="template-footer flex"> <div> - {date}</div> <div> <a href="javascript: return;" class="none button-footer-post button-spam" onclick="spam.addMSG({cnt})"></a> <a href="{url}" class="button-footer-post" target="_blank"> </a> </div> </div> </div> </section>
上記のコードで発生します:
1.記録に関する情報(コメント、再投稿、公開)を含むJSONを解析します
2. jsonから受け取った情報に基づいたParsテンプレート
3種類の公開用の1つのテンプレート。 便利に。
プロジェクトは機能し、録音が表示され、すべてがゴージャスですが退屈です。 そのようなプロジェクトをコンテストに引き渡すことは、提出しないことと同じです。 そのため、小さな統計を表示できるレコードで小さなフィルターを作成することにしました。 私は、このレコードまたはそのレコードの数、全体のカバレッジ、[いいね!]ボタンと再投稿、および視聴者の平均年齢と性別の割合に関する情報を取得しました。
コード分析 var analiz = { start: function() {
VKanaliz.php -jsonでデータを返すファイル。 その内容は
ここで見ることができ
ます 。
結果は何ですか? 結果は、出版物、その範囲、フィードバックを分析できる小さなプロジェクトになりました。 以前よりも優れています。
→サンプルは
こちらからご覧ください
→
GitHubで入手可能なソースコード
すべての人に良い!