すぐに、次の候補者に投票する人もいます。 代議員は私たちの代表者であり、私たちに立法上の決定を下す権利を与えます。 これらの条件では、私たちと同様に選択をする人を選択することは論理的です。
議員の投票は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);
設置
- 「vote」フォルダをコンテンツとともにローカルドライブにコピーします。
- Chromeブラウザで、「chrome://拡張機能/」または「メインメニュー>高度なツール>拡張機能」を開きます。
- 「開発者モード」にチェックを入れます
- 「解凍された拡張機能をダウンロード...」をクリック
- スクリプトで「vote」フォルダを見つけて選択します。
- OKをクリックします。
使用する
投票する
- 私たちは、 vote.duma.gov.ruの議員の票があるページに行きます。
例: http : //vote.duma.gov.ru/vote/95967 (リンク先はこちら ) ブラウザコンソールを開きます(Ctrl + Shift + J)。
3.1。 書き込みに反する場合:
()
3.2。 私たちが書く場合:
()
- Enterを押す
評価を取得します
- vote.duma.gov.ruの任意のページに移動します。
ブラウザコンソールを開きます(Ctrl + Shift + J)はまだ開いていません。
3.1。 議員の評価を表示するには:
_()
3.2。 パーティーの評価を表示するには:
_()
- Enterを押す
または、ページ上部のボタンを使用できます。
結果
その結果、このスクリプトの各ユーザーは、自分の選択と代理人の選択に従って、代理人と関係者の評価を受け取ります。
議員の格付けの例:
: 5 : 0 : -5
政党格付けの例(括弧内は代理人の数):
: 100 (10) : 0 (1) : -100 (1)
すべての名前とイベントは架空のものです。 一致はランダムです。
おわりに
このスクリプトが、議会の代表者のより多くの情報に基づいた選択をするのに役立つことを願っています。 同時に、政府のウェブサイト上のデータ分析用の拡張機能を作成する例を示します。
プライベートメッセージのエラーについて書いてください。