GreaseMonkeyによるGOST

同僚が最近来て、GOSTページを不親切なサイトhttp://protect.gost.ruから保存することができなかったと私に言った。

「私たちが悲しいなら、老woman」と私は彼女に言った、私は前述のウェブサイトを開いて、 私の腕時計を選び始めた。



「保護」アルゴリズムは非常に単純であることが判明しました。GOSTページのある画像は、透明な画像pixel.gifにcssスタイルで重ねられています。 その結果、Firefoxで「Save Image As ..」を使用して画像を保存しようとすると、必要なGOSTページではなく、pixel.gifを保存します。

「怠azineは進歩のエンジンです」と私は考え、GreaseMonkeyの小さなスクリプトを投げました。これはhabrachitateliと共有しています。

 // ==UserScript== // @name GostRu // @namespace http://protect.gost.ru/* // @description Delete pixel image under Gost // @include http://protect.gost.ru/* // ==/UserScript== var s_l=document.styleSheets.length; for (j=0;j<s_l;j++) { var st=document.styleSheets[j].cssRules, st_l=st.length; for (i=0;i<st_l;i++) { if (st[i].selectorText==='.face') { im=st[i].style.backgroundImage; break; } } } im=im.split('"')[1]; if (im!=='') { var img=document.getElementsByTagName('img'), img_l=img.length; for (i=0;i<img_l;i++) { if (img[i].className==='face') { img[i].src=im; } } }
      
      





スクリプトをインストールした後、必要なページを正確に保存する機会を得ます。

Firefox 3.6.3 + GreaseMonkey 0.8.20100408.6で問題なく動作します



Habrauser nanodustは、 UserScript.orgで同じ機能を持つ既存のスクリプトを提案しました (リンクを短くして申し訳ありませんが、habraparserを「欺く」十分な経験はありません)。



ユーザーdavid_mzは、状態標準仕様の展開用のブックマークレットを作成しました

「稼働中」バージョン:

  javascript:(関数(){var ids = []; for(var i = 0; i <document.links.length; i ++){var a = document.links [i]; if(a.href.indexOf( ' &pageK = ')<0 ||!a.firstChild)continue; ids.push(a.href.substr(a.href.indexOf(' pageK = ')+ 6、36));} document.open(); document.write( '<html> <body> </ body> </ html>'); document.close(); for(var i = 0; i <ids.length; i ++){var img = document.createElement ( 'img'); img.src = "image.ashx?page =" + ids [i]; document.body.appendChild(img);}})(); 




「読み取り可能」バージョン:

  javascript :(
	関数(){
		 var ids = [];
		 for(var i = 0; i <document.links.length; i ++){
			 var a = document.links [i];
			 if(a.href.indexOf( '&pageK =')<0 ||!a.firstChild)continue;
			 ids.push(a.href.substr(a.href.indexOf( 'pageK =')+ 6、36));
		 }
		 document.open();
		 document.write( '<html> <body> </ body> </ html>');
		 document.close();
		 for(var i = 0; i <ids.length; i ++){
			 var img = document.createElement( 'img');
			 img.src = "image.ashx?page =" + ids [i];
			 document.body.appendChild(img);
		 }
	 }
 )(); 


適用方法:実際の作業では、ブックマークレットの一部を「作業中」形式で取得し、URLの代わりにこのコードを持つブラウザーでブックマークを作成する必要があります。 次に、必要なGOSTの任意のページ(つまり、注釈ではなくページ)に移動して、ブックマークをクリックします。 このGOSTのすべてのページは、保護なしで画像の形式で表示されます。



All Articles