wgetのWeb-gui(ライト)

以前は、このソリューションが必要になる可能性のある状況の説明がありましたが、省略しましょう。 通常のwgetで実行されるリモートダウンロードを便利に作成する機能( psでリストを安全に確認できます)、進行状況の表示は新しいアイデアではありません。 また、 いくつかの ソリューションもありますが、5年以上サポートされていないため、関連性はありません。



トレントの場合、すべてがシンプルで些細なものです-Transmissionまたは同様のクライアントにWeb銃口を付けます。 しかし、単純なファイル/ページへのリンクには、独自のものが必要です。 以下に、私にタスクを書くように促したタスクの短いリストを示します。



好奇心が強い場合は、猫へようこそ:











システム要件



Webインターフェースは、クライアント側のJavascript + css3、およびサーバー側のphp(最も人気のあるものとして選択)に基づいて構築されています。 完全な作業には、次のものが必要です。





サーバー側の機能と設定



上記のように-PHPで記述されたスクリプトはサーバー側として機能します。 次のタスクを実行します。



彼の仕事には、それぞれps、wget、killが必要です。 ダウンロードステータスの値を取得するために(完了率で)、次のアルゴリズムが使用されます。



一時ログファイルのパスは、行 " define 'tmp_path' '/ tmp' ; ";で設定されます。



ダウンロードされたすべてのファイルが保存されるディレクトリへのパスは、「 define 'download_path' BASEPATH '/ Downloads ' ; 」行で設定されます



ps、wget、killへの便利なパスが利用可能です。 これを行うには、行の先頭にあるコメントを削除し、パスを示します。たとえば、「 define 'wget' '/ usr / bin / wget' ;



設定セクションからダウンロード速度に制限を設定することができます。 「 define 'wget_download_limit' '1024' ; 」行がこれを担当しています。 コメントアウトしたままにすると、制限はありません。



GUIから他のタスクから起動されたタスクのリストを決定するために、GUIに固有の特定のフラグが使用されます。 「 define 'wget_secret_flag' '--max-redirect = 4321' ; 」行にインストールされ、必要なく変更する必要はありません。 ちなみに、ターミナルから起動した他のタスクをWebインターフェイスに表示する場合は、このパラメーターを追加するだけです。 しかし、他のパラメーターもいくつかあることを忘れないでください(設定によって異なります)。



リソースに対して最も経済的な態度でシステムへの依存を最小限に抑えて記述しようとしましたが、PHPの経験はあまりないため、最適化の推奨事項に感謝します。



スクリプトは、POST要求とGET要求の両方に応答します。 それらの間に違いはありません。 コマンドラインで渡されたパラメータにも応答します。 例: php ./rpc.php get_list



またはphp ./rpc.php add_task http://goo.gl/5Qi0Xs







POSTリクエストとJSONレスポンスの例:


リクエスト:

192.168.1.2 / wget / rpc。 php action = add_task url = http://mirror.yandex.ru/linuxmint/stable/17/linuxmint-17-cinnamon-dvd-64bit.iso

回答:

{

ステータス 1

msg "タスクが追加されました"

id 10910

}



リクエスト:

192.168.1.2 / wget / rpc.php? アクション = get_list

回答:

{

ステータス 1

msg 「アクティブなタスクリスト」

タスク [

{

url " mirror.yandex.ru/linuxmint/stable/17/linuxmint-17-cinnamon-dvd-64bit.iso"

進捗 95

id 10910

}

]

}



「ps -ax | grep wget "and" cat /tmp/wget{RNDasket.log.tmp ":


データ:〜# ps -ax | grep wget

10910 ? S < s 0:34 wget --progress = bar:force --background --tries = 0 --no-cache --user-agent = Mozilla / 5.0 X11; Linux amd64; rv: 21.0 Gecko / 20100101 Firefox / 21.0 --directory-prefix = / DataVolume /シェア/パブリック/ダウンロード/ --limit-rate = 2048k --output-file = / tmp / wget9720.log.tmp --max-redirect = 4321 http: // mirror .yandex.ru / linuxmint / stable / 17 / linuxmint- 17 -cinnamon-dvd-64bit.iso

11378ポイント/ 0 S + 0:00 grep wget



データ:〜# cat / tmp / wget9720.log.tmp

--2014-08-24 1232 :04-- http: // mirror.yandex.ru / linuxmint / stable / 17 / linuxmint- 17 -cinnamon-dvd-64bit.iso

mirror.yandex.ruの解決... 213.180.204.183、2a02:6b8 :: 183

mirror.yandex.ruへの接続| 213.180.204.183 |80 ...接続されました。

HTTP要求が送信され、応答を待っています... 200 OK

長さ: 1286799360 1.2G [ application / octet-stream ]

保存先: `/ DataVolume /シェア/パブリック/ダウンロード/ linuxmint- 17 -cinnamon-dvd-64bit.iso`



95 [ =================================== ]] 1、225、527、078 1.37M / sイータ35秒

データ:〜#





クライアント側の機能と設定



「新しいhtml5タグ」は使用されませんが、css3プロパティはダウンロードプログレスバーとアダプティブの設計に使用されます。 デザインは画像のないミニマリストスタイルで作られています(例外はファビコンです)。 タスクがない場合は、ページの中央にダウンロードアドレスを追加するためのフィールドがあり、タスクがある場合、このフィールドはページを上に移動し、タスクは下にあります。



すべてのリクエストは非同期です(ページをリロードすることはありません)。 ページデザイン-レスポンシブ:









状態の変化は、タブ(ウィンドウ)のタイトルにも表示されます。





ページの下部にjavascriptブックマーク(「これをダウンロード」)があり、ブラウザのブックマークバーに移動し、ワンクリックで新しいタスクを追加できます(クリックするとアクティブなタブが追加されます。ビデオファイルのあるタブが開いてブックマークバーでクリックされた場合-このビデオファイルをダウンロードするタスクが追加されます):









ドキュメントのすべてのJavaScriptコードは、コアファイルにあります。 js 上部には主な設定があります:



機能のポイントを説明することにはあまり意味がありませんが、機能は論理グループに分割され、スクリプトは縮小されず、コメントがあります。



F5をクリックすると、タスクの強制更新が発生し、ブラウザの更新ボタンをクリックするだけでページがリロードされます。



設置







変更履歴



変更として、この投稿を更新します





期待するもの:







MITライセンス
著作権©2014 Paramtamtam



このライセンスにより、このソフトウェアおよび関連文書(以下「ソフトウェア」と呼びます)のコピーを受け取った個人は、無制限に使用、コピー、修正、追加、公開、配布、サブライセンスおよび/または以下の条件を条件として、本ソフトウェアのコピーの販売、および本ソフトウェアの提供者への販売



上記の著作権表示およびこれらの条件は、このソフトウェアのすべてのコピーまたは重要な部分に含まれている必要があります。



このソフトウェアは「現状有姿」で提供されますが、明示または黙示を問わず、いかなる種類の保証も含まれませんが、これにはシート送付シートの保証が含まれます。 でNO EVENTは、作者または著作権所有者は、または関連TO THE SOFTWAREの結果またはソフトウェアまたはソフトウェアでその他の取引の使用を持っていることから生じた損害、損失、または該当する契約の下で残りの要件、そうでない場合は不法行為OR、の請求を負担しなければなりません。




プロジェクトへのリンク: https : //github.com/tarampampam/wget-gui-light



All Articles