JavaScriptとChromeブラウザを使用するすべての人に対する代理人の個人的な評価

すぐに、次の候補者に投票する人もいます。 代議員は私たちの代表者であり、私たちに立法上の決定を下す権利を与えます。 これらの条件では、私たちと同様に選択をする人を選択することは論理的です。


議員の投票はvote.duma.gov.ruにあります。 私たちのビジョンに従って重要な法案に投票し、それに基づいて評価を得て、選挙で選択するだけです。


最も安価な方法を選択し、Chrome用のJavaScript拡張機能を作成しました。 ブラウザコンソール(Ctrl + Shift + J)を使用して作業します。 ボーナスとして、プリプロセッサなしでJavaScriptでロシア語のサポートをテストしました。


カットの下に、コメントと記事へのコメントを含むコードがあります。



「vote」フォルダーには、UTF-8エンコード(BOMなし)の3つのファイル「manifest.json」、「insert.js」、「script.js」があります。


コード:


ファイル「manifest.json」:


{ "manifest_version": 2, "name": " ", "description": "       vote.duma.gov.ru", "version": "1.0", "content_scripts": [ { "matches": [ "http://vote.duma.gov.ru/*" ], "js": [ "insert.js" ], "run_at": "document_end" } ], "web_accessible_resources": [ "script.user.js" ] } 

マニフェスト「web_accessible_resources」の一部は、ページにリストされているプラ​​グインファイルをダウンロードして使用するためのアクセスをページに与えます。 「script.js」は、すべてのロジックが含まれるメインスクリプトです。


Chromeは、ページ変数への直接の拡張アクセスを許可しません。 「insert.js」を使用して、ページ自体にスクリプト(「script.js」)を埋め込みます。


ファイル「insert.js」:


 var script = document.createElement('script'); script.type = 'text/javascript'; script.src = chrome.extension.getURL("script.user.js"); script.async = 1; document.head.appendChild(script); 

ファイル「script.user.js」:


 // ==UserScript== // @name   // @description        vote.duma.gov.ru // @author ivan386 // @license MIT // @version 1.0 // @run-at document-end // @include http://vote.duma.gov.ru/* // ==/UserScript== javascript: (function() { 'use strict'; 

 var  = function(  ){ console.log(  ); document.querySelector( "#" ).innerText = ; }; 

 var  = function( _ ) { if ( typeof deputiesData !== 'undefined' ) { /*         localStorage */ var  = JSON.parse( localStorage.getItem( "" ) || "{}" ); /*   deputiesData         . */ deputiesData.forEach( function(  ) { var ls_ = [ .url ]; /*      0 */ . = ( !ls_ ) ? 0 : ls_.; /*   */ . = ( !ls_ ) ? {} : ( ls_. || {} ); /*   */ . = .sortName; /*      . */ if ( typeof( .[ .result ] ) === 'undefined' ) .[ .result ] = 1; else .[ .result ] ++; . = 0; for ( var  in . ) . += .[]; /*        ID    . */ /*     . */ [ .url ] = ; /*        result */ /*     renderer        vote.duma.gov.ru. */ /*  -1   "" */ /*  0   "" */ /*  1   "" */ /*  2   " " */ /*        . */ . += ( .result == _ ) ? 1 : -1; } ); /*      localStorage */ localStorage.setItem( "" , JSON.stringify(  ) ); ( " " + ( _ == -1 ? "" : "" ) + " " ); } else ( "        " ); }; 

 var  = function() { /*  -1   "" */ return ( -1 ); }; 

 var  = function() { /*  1   "" */ return ( 1 ); }; 

 var _ = function(  ) { var __ = []; var  = []; for ( var  in  ) __.push( [  ] ); __.sort( function( ,  ) { /*      */ return . - .; } ); __.forEach( function(  ) { /*     */ .push( . + ": " + . + ( . ? " (" + . + ")" : "" ) ); } ); return .join( "\n" ); }; 

 var _ = function() { var  = JSON.parse( localStorage.getItem( "" ) || "{}" ); ( _(  ) ); }; 

 var _ = function() { var  = JSON.parse( localStorage.getItem( "" ) || "{}" ); var  = {}; for ( var  in  ) { var  = [  ]; var  = [ .factionCode ]; if (  ) { /*      . */ . += .; . ++; } else [ .factionCode ] = { : .faction , : . , : 1 }; } ( _(  ) ); }; 

 var  = (typeof unsafeWindow === 'undefined') ? window : unsafeWindow; document.body.insertBefore( document.createElement( "div" ) , document.body.firstChild ).innerHTML = ' :\n\ <button onclick="()"></button>\n\ <button onclick="()"></button>\n\ <button onclick="_()"> </button>\n\ <button onclick="_()"> </button>\n\ <div id=""></div>'; . = ; . = ; ._ = _; ._ = _; if ( typeof( .deputiesData ) !== 'undefined' ) deputiesData = .deputiesData; ( "() -  \n\ () -  \n\ _() -         \n\ _() -         \n\ " ); })(); void(0); 

設置


  1. 「vote」フォルダをコンテンツとともにローカルドライブにコピーします。
  2. Chromeブラウザで、「chrome://拡張機能/」または「メインメニュー>高度なツール>拡張機能」を開きます。
  3. 「開発者モード」にチェックを入れます
  4. 「解凍された拡張機能をダウンロード...」をクリック
  5. スクリプトで「vote」フォルダを見つけて選択します。
  6. OKをクリックします。

使用する


投票する

  1. 私たちは、 vote.duma.gov.ruの議員の票があるページに行きます。
    例: http : //vote.duma.gov.ru/vote/95967 (リンク先はこちら
  2. ブラウザコンソールを開きます(Ctrl + Shift + J)。
    3.1。 書き込みに反する場合:


     () 

    3.2。 私たちが書く場合:


     () 

  3. Enterを押す

評価を取得します

  1. vote.duma.gov.ruの任意のページに移動します
  2. ブラウザコンソールを開きます(Ctrl + Shift + J)はまだ開いていません。
    3.1。 議員の評価を表示するには:


     _() 

    3.2。 パーティーの評価を表示するには:


     _() 

  3. Enterを押す

または、ページ上部のボタンを使用できます。


結果


その結果、このスクリプトの各ユーザーは、自分の選択と代理人の選択に従って、代理人と関係者の評価を受け取ります。


議員の格付けの例:


   : 5   : 0   : -5 

政党格付けの例(括弧内は代理人の数):


 : 100 (10) : 0 (1) : -100 (1) 

すべての名前とイベントは架空のものです。 一致はランダムです。


おわりに


このスクリプトが、議会の代表者のより多くの情報に基づいた選択をするのに役立つことを願っています。 同時に、政府のウェブサイト上のデータ分析用の拡張機能を作成する例を示します。


プライベートメッセージのエラーについて書いてください。


ソース


  1. Google Chrome用の独自の拡張機能を作成する
  2. ウェブストアストアからではなくChrome拡張機能を実行する方法
  3. ユーザースクリプトの書き方を学ぶ
  4. GitHubスクリプト
  5. 州下院会議での投票結果の分析システム


Source: https://habr.com/ru/post/J306744/


All Articles